Apple Pay with QuickStream REST API
Our QuickStream REST API allows you to create a Payment Request Button in your payment form with QuickStream-API.js.
Getting started
This page explains how to add Apple Pay to your existing QuickStream REST API integration. If you haven't done this integration yet, refer to our API reference and the QuickStream-API.js library reference.
Before starting your Apple Pay integration:
- Make sure that you have received your Publishable and Secret REST API keys for our QuickStream REST API.
- Register each domain via which you will accept Apple Pay payments and follow the instructions.
- Create a payment form that you want to add an Apple Pay button to. Your payment form is a webpage that you will display to your customers when they choose their payment method.
- Serve your application over HTTPS. This is required for test and production environments. You can use a service like ngrok to do this.
- Set up your back-end implementation to take a payment using the Transactions API.
How to implement Apple Pay in your payment form
-
Add the QuickStream-API.js library to your payment form.
<script type="text/javascript" src="https://api.quickstream.westpac.com.au/rest/v1/quickstream-api-1.0.min.js"></script>
-
Add the Payment Request Button Container to your payment form that will drop-in the Apple Pay button on supported Apple devices.
<div data-quickstream-api="paymentRequestButtonContainer"></div>
-
Initialise QuickStream-API.js with your Publishable API key for your QuickStream facility.
QuickstreamAPI.init( { publishableApiKey: "PUBLISHABLE_API_KEY" } );
-
Create the PaymentRequestConfigObject for your customer.
var config = { supplierBusinessCode: "SUPPLIER_CODE", // This is required details: { total: { label: "Your company name", amount: { value: "10.00", currency: "AUD" } } } };
-
Create the Payment Request Button with the PaymentRequestConfigObject.
Handle errors or retrieve the
singleUseTokenId
property from the PaymentRequestResponseObject.QuickstreamAPI.paymentRequestButton.createButton(config, function(errors, paymentResponse) { if (errors) { // Handle errors here } else { console.log("singleUseTokenId is " + paymentResponse.singleUseTokenId); // perform the payment on your server here before calling below. paymentResponse.complete("success"); } });
Take a payment
-
After obtaining the
singleUseTokenId
pass this to your server. -
From your server, request POST
/v1/transactions
using your Secret REST API key, specifying:singleUseTokenId
: ThepaymentResponse.singleUseTokenId
from thecreateButton
function.
POST / HTTP/1.1 Host: https://api.quickstream.westpac.com.au/rest/v1/transactions Authorization: Basic A8d8sdk938damcheyt7= Idempotency-Key: a8f4bd70-5435-11ea-8d77-2e728ce88125 Content-Type: application/json { "transactionType" : "PAYMENT", "singleUseTokenId": "dec2075f-da92-49df-8a92-f7e494f89c22", "supplierBusinessCode": "SUPPLIER_CODE", "principalAmount": 10.00, "currency" : "AUD", "eci": "INTERNET", "ipAddress" : "192.168.1.1" }
See Process a transaction using a single-use-token for more.
The response contains the result of the payment.
Present the result
Use the status
that you received in your transaction response to present the result to your payer by updating the Payment Sheet using the PaymentRequestResponseObject complete
function.
QuickstreamAPI.paymentRequestButton.createButton(config, function(errors, paymentResponse) {
if (errors) {
// Handle errors here
} else {
// provide success or fail to present the result to the client
paymentResponse.complete("success");
}
});
Testing Apple Pay with QuickStream
The QuickStream test environment is linked to the Apple Pay test environment. You can test the payment process using the Apple Pay Sandbox Testing page.
- You require an Apple account to use for Apple Pay Sandbox Testing with test cards. Real cards in an Apple Wallet will not work. The Apple Pay payment sheet will reject before it reaches QuickStream's servers.
- Register each domain via which you will accept Apple Pay payments. You do not need to host the domain verification file in test.
Refer to:
- QuickStream REST API reference for testing, duplicate payments and error handling requirements.
- Apple Pay Marketing Guidelines.
- Apple Pay Human Interface Guidelines.
Go Live
Once you are ready to go live you must:
- Create an Apple account to add real cards to your Apple Wallet. You cannot use test cards in Production.
- Sign in to QuickStream and register each domain via which you will accept Apple Pay payments and follow the instructions verify your domain with Apple Pay.
- Complete your integration with the QuickStream REST API in the production environment.