Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
Introduction
Apple Pay enables customers with iOS devices or Macs to pay using payment methods stored in their wallet-app. Merchants need to display an Apple Pay button to eligible customers, who then get presented a payment sheet for easy review of the order and payment. Merchants can configure the look and feel of both buttons and payment sheet, but should adhere to the Apple guidelines.
Availability
Countries | Payment Methods | Currencies |
---|---|---|
| All currencies that are also supported by the PAYONE platform |
UI Text Box | ||
---|---|---|
| ||
Please make sure you only make payment methods available for Apple Pay which are part of your contract with us. |
Clearingtype / Clearingsubtype
clearingtype | wallettype |
---|---|
wlt | apl |
Requests
These Requests and Usecases are applicable:
Request | Comment |
---|---|
Preauthorization | |
Capture | only after preauthorization |
Authorization | |
Debit | only with amount<0 to initiate a refund |
Refund |
Sequence Diagram
draw.io Diagram | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Prerequisites
Onboarding
Merchants who want to offer Apple Pay must take these preparatory steps:
UI Steps | ||||||||
---|---|---|---|---|---|---|---|---|
|
Apple Pay on Your Website
How Apple Pay Works
Like other payment buttons, Apple Pay aims to skip the usual checkout steps and presents a complete payment sheet to the customer.
source: Apple
Initiating The Payment Session
For info on how to display the buttons and initiating the payment session, please refer to the Apple documentation: https://developer.apple.com/documentation/apple_pay_on_the_web/displaying_apple_pay_buttons and https://developer.apple.com/documentation/apple_pay_on_the_web/apple_pay_js_api/creating_an_apple_pay_session
UI Text Box | ||
---|---|---|
| ||
Head to https://applepaydemo.apple.com/ for a nice overview and some demo code. |
Please make sure to correctly configure your payment request for your merchant account capabilities. For example, a basic request for a merchant who can use mastercard and visa in live mode could look like this:
Code Block | ||
---|---|---|
| ||
{ "countryCode": "DE", "currencyCode": "EUR", "merchantCapabilities": [ "supports3DS" ], "supportedNetworks": [ "visa", "masterCard" ], "total": { "label": "Demo (Card is not charged)", "type": "final", "amount": "1.99" } } |
Forwarding the Data to the Payone API
After the customer has completed the payment sheet and authenticated themselves by biometric means (TouchID, FaceID), you'll receive an Apple Pay Object like this:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "token":{ "paymentData":{ "version":"EC_v1", "data":"3+f4oOTwPa6f1UZ6tG...CE=", "signature":"MIAGCSqGSIb3DQ...AAAA==", "header":{ "ephemeralPublicKey":"MFkwEK...Md==", "publicKeyHash":"l0CnXdMv...D1I=", "transactionId":"32b...4f3" } }, "paymentMethod":{ "displayName":"Visa 1234", "network":"Visa", "type":"debit" }, "transactionIdentifier":"32b...4f3" }, "billingContact":{ "addressLines":[ "1 Street", "" ], "administrativeArea":"", "country":"United Kingdom", "countryCode":"GB", "familyName":"Appleseed", "givenName":"John", "locality":"London", "postalCode":"AB12 3CD", "subAdministrativeArea":"", "subLocality":"" }, "shippingContact":{ "addressLines":[ "1 Street", "" ], "administrativeArea":"", "country":"United Kingdom", "countryCode":"GB", "familyName":"Appleseed", "givenName":"John", "locality":"London", "postalCode":"AB12 3CD", "subAdministrativeArea":"", "subLocality":"", "phoneNumber":"01234 567890", "emailAddress":"john.appleseed@apple.com" } } |
Many contents of this object can be mapped to existing Server API parameters.
Section | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
However, the actual payment part of the object is encrypted and has to be sent to the PAYONE API in special parameters.
API Requests
Overview of Special Parameters
Apple Pay specific parameter Values | ||||||||||||||||||||||||||||||||||
API Parameter | Required | Comments | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
clearingtype | + |
| ||||||||||||||||||||||||||||||||
wallettype | + |
| ||||||||||||||||||||||||||||||||
cardtype | + |
| ||||||||||||||||||||||||||||||||
Apple Pay Token Values | ||||||||||||||||||||||||||||||||||
add_paydata[paymentdata_token_version] | + |
| ||||||||||||||||||||||||||||||||
add_paydata[paymentdata_token_data] | + |
| ||||||||||||||||||||||||||||||||
add_paydata[paymentdata_token_signature] | + |
| ||||||||||||||||||||||||||||||||
add_paydata[paymentdata_token_ephemeral_publickey] | + |
| ||||||||||||||||||||||||||||||||
add_paydata[paymentdata_token_publickey_hash] | + |
| ||||||||||||||||||||||||||||||||
add_paydata[paymentdata_token_transaction_id] | + |
| ||||||||||||||||||||||||||||||||
Table of Contents | ||||||
---|---|---|---|---|---|---|
|