Apple Pay is a digital wallet for storing payment details, providing an easy and secure way to pay in iOS applications, websites running on Safari browser and contactless POS terminals. In applications and on websites, users can quickly and securely provide their payment, shipping and contact information to check out with just one touch using Apple’s Touch ID. Apple Pay’s simplicity increases conversion rates and new user adoption that come with it.
Axepta BNP Paribas's Apple Pay solution supports following scenarios:
- Web payments
- In-application payments
Web payments
Apple Pay on the Web enables purchases while using Safari web browser. For shopping on iPhone or iPad, after selecting checkout with Apple Pay, a payment sheet appears, prompting the customer to confirm payment via Touch ID. For shopping on Mac, customers need to have an iOS device in close range, and they'll be prompted on that device to authorize the payment, which will then synchronize to the browser. The latest Mac Book Pro allows customers to authorize payment directly on the Mac Book.
Apple Pay requirements:
- iOS 10. Apple Pay Web payments are supported on all iOS devices with a Secure Element.
- macOS 10.12. Apple Pay Web payments are supported in Safari.
- The user must have an iPhone or Apple Watch that can authorize the payment.
- On the latest Mac Book Pro payments can be authorized directly via Touch ID
- All pages that incorporate Apple Pay must be served over HTTPS.
- Your website must comply with the Apple Pay guidelines. For more information, see Apple Pay on the Web Acceptable Use Guidelines
- Server requirements
Get started
supports Apple Pay in Direct integration. Multiexcerpt include SpaceWithExcerpt EN MultiExcerptName Platform-Name PageWithExcerpt EN:Wording
Direct integration
For merchants requiring full control over Apple Pay UI/UX use the Direct integration. However, this comes with some additional costs and integration efforts.
Implementation steps
Enable Apple Pay
- Create Merchant Identifier with Apple Pay:
- Access your Apple developer account and follow the instructions to create a merchant identifier. The identifier you enter should be a reverse DNS style identifier prefixed with the word
merchant
. Make sure that no umlauts or special characters are present. - Provide the merchant identifier to Axepta BNP Paribas support.
- Access your Apple developer account and follow the instructions to create a merchant identifier. The identifier you enter should be a reverse DNS style identifier prefixed with the word
- Retrieve Certificate Signing Request (CSR):
- With your Apple merchant identifier Axepta BNP Paribas support creates the Apple Pay CSR and provides it you.
- CSR will be needed to create payment processing certificate that is required to sign and encrypt the payment token by Apple during the payment processing.
- Create a payment processing certificate:
- In your Apple developer account follow the instructions to create a payment processing certificate.
- Skip the step to create a certificate signing request. Instead use the CSR provided by
in the next step to create the payment processing certificate.Multiexcerpt include SpaceWithExcerpt EN MultiExcerptName Partner-Name PageWithExcerpt EN:Wording
- Enable Apple pay for your app on Xcode:
- Follow the instructions to Enable Apple pay capability for your app in your Xcode project.
- Create Merchant Identity Certificate: This is a transport layer security (TLS) certificate used to authenticate your merchant sessions with Apple Pay
- Follow the instructions to register, verify your domain and create a merchant identity certificate.
- Integrate Apple Pay in your application or web shop:
- Follow the detailed guidelines documented by Apple to integrate to Apple Pay
- Make sure when creating PKPaymentRequest, request.merchantCapabilities = PKMerchantCapability3DS as
supports only 3DS types.Multiexcerpt include SpaceWithExcerpt EN MultiExcerptName Platform-Name PageWithExcerpt EN:Wording
Add to checkout
- Presenting Apple Pay button:
- Within apps, PassKit provides the API’s that your app will use to determine if it is running on a device with a Secure Element and if the device has been provisioned with payment cards that you support.
- On websites, WebKit provides APIs that allow your website to check if the individual has an Apple Pay capable device and if it is set up.
- If the device is Apple Pay enabled you should present the Buy with Apple Pay button using APIs supplied within PassKit within apps and Webkit within Safari.
- Presenting the payment sheet:
- When the customer selects Apple Pay as the payment method, you create a payment request and communicate with PassKit in apps or Webkit on your website to present the payment sheet to the user. The payment sheet must immediately follow the user tapping the Apple Pay button, without any interim screens or pop-ups except to prompt for necessary product details such as size or quantity.
- Your app specifies the contents of the payment sheet but it does not control the user’s interaction with the sheet. You must decide if it makes sense to present shipping and billing information, shipping method and other line items to the user. You should only request the information necessary to process the transaction.
- Processing payment:
Once authorized by the customer with Face ID/Touch ID (and bank PIN code in China), your app receives a payment token from PassKit/Webkit.
The payment token encapsulates the information needed to complete a payment transaction, including the device-specific account number, the amount, and a unique, one-time-use cryptogram.
Submit the payment token to Axepta BNP Paribas via Create payment (
paymentMethods.integrationType=DIRECT
) inpaymentMethods.applePay.token
parameter along with other payment information.Code Block "paymentMethods": { "integrationType": "DIRECT", "type": "APPLEPAY", "applePay": { "merchantIdentifierOfPublicKey": "merchant.com.demo_store", "token": "{ \"paymentData\": { \"data\": \"GiZiyzsI6r6lnPYUeceR6itk2PDyBozl2Xy77c5u2X8Ze7l5EasyyH4Q6BoAevrvBfe0FnUNARBEXRySLwqqnpUHO6Du/amZEECRXxlrH91wFqH4oXry2CTDRu7TaIlmnR+s3ien5JI8iWo9hoEW7hyJOE7QGaS6rfR1CtQ4DWJEUq/tFnW98tj3kwKU6iOAAvE467boopMDGBS1fK5HzGXs4hH/6r+LPRfSOKBi1L5VWAexs9Bzw3ByyG69i52doRuFb1xOcMOJbmPg40hap13IjBW6dnj1phbsqP2i/JxvWPV3EcuqpuIoVZr5w53w//pPsl54kmeXNddIjVD5dIhhOKZ8AznD4eL2dbzkp6bic8xScBf3G8hrKXTRTL7V+KT2S+TQliHN0SNXrFu6B6o=\", \"signature\": \"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\",\n \"header\": {\n \"publicKeyHash\": \"OgiD2qBTWYf/a+LDshFeQcPq6tOmePu0epHpP4ZkNicc=\",\n \"ephemeralPublicKey\": \"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEc/HxA3lJZrC+B0ITom0Iji+gFdn7ivGtpI+fl2u8n8XByPgBaVK2b44qUvsGigoNd0OFLNXo0Q07R2B54eIdS3A==\", \"transactionId\": \"156632b2aadf355d4958d9051a42bf62e07aea5716e72083aa64247944f6e3e14d\" }, \"version\": \"EC_v1\" }, \"paymentMethod\": { \"displayName\": \"MasterCard 0063\", \"network\": \"MasterCard\", \"type\": \"debit\" }, \"transactionIdentifier\": \"156632B2AAD12F355D4958D9051A42BF62E07AE5716E720AA6424794F6E3E14567D\"}" } }
- The encrypted payment token will be decrypted by Axepta BNP Paribas and submitted to the acquirer as part of the payment process.
Info |
---|
Apple Pay transactions are essentially card transactions but tokenized. Hence all the post processing actions such as refunds, captures and reversals use the same workflow as card transactions. |