Sagepay; No shopping basket provided - omnipay

Am using Omnipay with the Paypal and Sagepay gateways. Got it working well, all for except one area - the setItems basket!
I am using the setItems method and adding my name, descriptions and qty for each line item before I send my purchase request.
Works fine with Paypal, however Sagepay does nothing? When I log into Sagepay and view the transaction I just see 'No shopping basket provided'. I assume this does not work for Sagepay then?
Thanks, Dean.

You are correct, there is no support for shopping basket items in the omnipay-sagepay gateway. That's not to say that you couldn't add that support if it's supported by SagePay but there is not any current support for it in Omnipay.

The dev-master branch of https://github.com/thephpleague/omnipay-sagepay now supports the basket (aka items). It supports negative item prices, which appear in the basket as discounts.
Be aware that the costs in the live Sage Pay gateway should add up to the total cost being authorised. I say "should" because the documentation says it must, but the test gateway does not enforce this, so I'm not sure whether the live gateway enforces this either.
I have a few more tests to add, then will make an omnipay-sagepay release with the XML basket support.

Related

How can I get tax details from my personal webserver and display on the checkout page in shopify?

I want to create a shopify app that can fetch tax and HS code details from my website and display that to checkout page of the user as soon as user adds a product to cart. How can I build this?
You can use an App Proxy at the cart level to show off information. The proxy serves as a secure way of contacting your server and returning results. In checkout itself, you can offer up information too, with checkout scripts post-purchase.
Note that without integrating a tax service into Shopify itself and using that, none of the tax data or numbers you show off will have any use in the actual order calculations, meaning all your work is simple convenience of showing off an estimation to customers. The tax numbers the customers may actually see will be done by Shopify and/or the integrated tax solution your merchant account uses.

Big Commerce Integration for custom Email Invoice

I've looked into different ways to put or get order info from BC to different systems including the BC API, BC Webhooks, Zapier, and other systems like Shipworks.... in the end what I need to do is this:
We need orders placed on BigCommerce to send out a special invoice to the customer. The items that the customer purchased will have custom attributes, a "Tier" and a separate "Unit QTY" which is not the same as the item quantity.
We need to group the items by Tier, and show subtotals of the Unit Qty and Cost. Send this in an invoice as soon as the order is placed on the website.
We are already syncing to Quickbooks online, which does not have the functionality.
Looking for suggestions on different platforms/languages/email services like mailgun/and even shipping integration tools like shipworks, ordoro etc. that might have the ability to code a custom email template like this.
My customer is keeping bigcommerce, no option to switch this out.
I am mainly a Salesforce developer so my strong suit would be to sync the orders to SFDC and code in apex, send the invoice. But before investing in the time, wanted to see if I'm missing some quick potential solutions.
Anyone use Zapier Javascript/Python code platform?
Apologies if this is too open-ended. I feel that this could be a good reference for others in the community about options and best practices.
Hmm your question is pretty broad. Maybe a few links to API documentation could help?
Bigcommerce API - https://developer.bigcommerce.com/api
Ordoro API - https://www.ordoro.com/developer
Send this in an invoice as soon as the order is placed on the website.
I think what you need is a Bigcommerce webhook for store/order/created. See https://developer.bigcommerce.com/api/webhooks-getting-started.
Alternatively, you could set up a cron job that polls BigCommerce for new orders and then sends the email notification.

How to test "Payment Gateway" without making real payments?

I want to perform rigrous testing on Payment Gateway(2checkout) and Pay Pal. For testing, I need to simulate a large number of successful, failed and halted transactions (transaction stopped due to system crash/reboot). But I don't want to make actual payments.
1. Is there any way I can make a test transaction on payment gateway, using fake card numbers or something else.
2. What are the possible advance testing scenarios for Payment Gateway testing?
For example:
Changing the amount, unmask CVV or card from Inspect
element.
List item
There are two options :
Using the PayPal Sandbox (Application Testing), or
Using Dependancy Injection (Unit Testing).
Both would work but I would suggest a Dependancy Injection approach. Assuming you have a separate object that only interacts with PayPal and then other objects that do your actual application logic (and error handling, etc) then you can just create a dummy version of the PayPal interaction object (that always returns true, or conditionally returns false, whatever) and then test your various application classes in detail.
I would suggest you only one solution, look at this Git PayPal-Android SDK and go through the README.md file. Last link tells you how to create a sandbox PayPal account to create dummy transactions across your sandboxed account developer account.
If you have doubts, you can refer Part 1 and Part 2 of AndroidHive tutorial for this.

Rails: Using Paypal to faciliate marketplace transactions (parallel or chained?)

I want to build a marketplace site where my application connects a 'buyer' and a 'seller' and takes a commission (%) in the process.
I've checked out Adaptive payments API on Paypal and have seen 'parallel payments' as well as 'chained payments'.
However, what I would like to do is make it seem like the buyer is interacting directly with the seller, with my application taking a commission.
I know with parallel payments (Adaptive Payments API) it's possible for the 'sender' to see the 'primary recipient' which in this case would be the seller. In chained payments the buyer would see my application as the 'middle man' (and as the middle man I could take commission). So what I'm kind of looking for is something of a mix between the two. Any ideas?
My other idea is to use a parallel payment and have my application as the second recipient (taking % commission)?
How do marketplace sites do this? Any rails-specific tips would be much appreciated too - i've seen there is a Paypal Adaptive Gem which I could use?
I'm a rails noob and this is my first project.
Adaptive Payments allows you to separately specify who pays the fees and who the primary receiver is. In a chained payment flow, only the primary receiver is shown to the buyer.
In short; yes, Adaptive Payments will perfectly suit your needs.
You can get additional info from PayPal directly by filing a ticket with Developer Technical Services at https://www.paypal.com/dts/
Found this gem which let's you use Paypal's adaptive payments in your Rails application.
To make it seem like the buyer is interacting directly with the seller, I've discovered you need to do a 'chained payment' and specify the seller as the 'primary receiver'.
Your 'business/application' can take it's commission by acting as a secondary receiver. To do so you simply add it as a receiver but set :primary => false. When the buyer tries to make a purchase, it'll show the seller's Paypal email address so it looks like you're buying directly. Take a look at the documentation for the gem and you'll see it's pretty straightforward.
The amount sent by the buyer is split up between the receivers (which you can specify in your code). Hope this helps.

Easiest way to sell stuff and track inventory

on my website I sell unique items. I have programmed it so that on the selling page, users can select any amount of these items, and it calculates the cost. The key is that I only have 1 of each of these items. So I need the shopping cart system to not allow the payment to go through unless it is available.
I've been searching for a good quick/easy/cheap solution and can't find one. I don't expect this site to make a lot of money (the transactions are a few bucks), so I didn't want to need a ssl certificate.
The only way I know of not needing an ssl certificate would be to use paypal or google checkout. However, I do not think there is a way of using these services and making paypal's server run a script to check how many are available on the site. Any solution?
Thanks
I was thinking about it more, and I think the problem is that once the user gets to the paypal payment screen, I have no control. I guess I could do something like they click the buy it now link, a php script updates it to sold, then they go to the paypal screen, but then they might not continue the purchase...
If you use PayPal Website Payments Standard (using a cart rather than 'Buy Now' Buttons) then you could use IPN or PDT (see the paypal docs here) to get PayPal to call back to you with the status of the payment.
The work flow would then be to set status to reserved when the item is added to the cart, and then wait for the IPN/PDT call to come back with the payment status, and mark the item as sold.
You would still need to check and reset to available any item that had been reserved for longer than say 2 Hours. (You could do this before serving a page to a user so that they have the latest availability and you don't need a cron job or long running process)
If you could provide a little more information about how you have implemented ur shopping card, it would have been more easier for other to assist! If you are using any ecommerce solution then it should be there already in the track inventory section. But Provided that you have implemented d shopping cart manually, why don't you add little bit of codes that checks the inventory status first before letting your customers check out?