Express Checkout
Express Checkout puts a payment provider’s own checkout buttons, such as PayPal, on your product or basket page. The customer signs in with the provider, approves a payment or a payment method, and can pick a shipping address the provider holds for them, without filling in your forms. It is meant for guest customers: a customer who is already logged in to your platform is better served by Checkout.
Express Checkout is delivered by shuttle.js 1.3 or later. The script and the API call it authenticate (Shuttle.authenticate, and the AUTHENTICATE features on a gateway), and older pages call it Authenticate.
How it works
Section titled “How it works”- You load shuttle.js with your shared key and the merchant’s instance key in the URL. Shuttle builds that script for the merchant, with the express checkout code of each connected payment provider that supports it.
- You tell shuttle.js which element to use. It renders each supporting provider’s buttons there, one under another. If none of the merchant’s providers supports Express Checkout, nothing is rendered.
- The customer completes the provider’s flow, and shuttle.js calls your
on_successfunction with the customer’s details, the shipping address if you asked for one, and agateway_dataobject. - Your server passes
gateway_datato the Payments API or the Payment Methods API. Until it does, no money moves and nothing is created in Shuttle.
Which payment providers support it
Section titled “Which payment providers support it”| Payment provider | What the customer sees | Notes |
|---|---|---|
| PayPal Commerce | PayPal buttons, with Venmo and Pay Later where PayPal offers them and the merchant has not turned them off | Returns the customer’s details, a shipping address and a payment token. Saving a payment method (TOKENISE) needs Enable Reference Transactions (required to save card) on the merchant’s PayPal connection: without it, PayPal shows no buttons for TOKENISE. |
| Sandbox | A 3rd Party Express Checkout button that opens a simulated provider window | For testing your integration without a live provider. |
Three ways to use it
Section titled “Three ways to use it”| You want to | action |
Then your server calls |
|---|---|---|
| Take a payment for a basket whose total you already know | AUTHORISE |
Create a payment, for the amount the customer approved |
| Collect a payment method now, and charge it once you know the final total (after adding shipping or tax, for example) | TOKENISE |
Create a payment, for the final amount |
| Save a payment method for later, with no payment now | TOKENISE |
Create a payment method |
In all three, set payment_token to true so that on_success returns the gateway_data you pay with.
With AUTHORISE, create the payment for the same amount and currency the customer approved. PayPal refuses a payment for a different amount, so if the total can still change, use TOKENISE.
Integrating
Section titled “Integrating”Load shuttle.js with your keys, add an element and your options, handle the callbacks, then create the payment on your server. Each step is set out in the Express Checkout integration guide, and every option and callback field in Express Checkout options.
Reference
Section titled “Reference”Was this page helpful?
What went wrong?
Thanks for telling us.