Both our native iOS SDK and React Native SDKs support native Apple Pay out of the box.

About this integration

Our SDK requires you to perform the following steps to get set up.

Enable Apple Pay

To enable Apple Pay, head over to your dashboard and then go to Connections -> Catalog -> Apple Pay.

Next, complete and submit the form to create a new Apple Pay service.

Register a certificate

To process Apple Pay in a mobile application you will need to register for an Apple Pay developer account and join the Apple developer program.

Once set up, you can generate a new Apple Pay processing certificate using the Gr4vy dashboard.

Go to Connections -> Apple Pay -> Certificates and click on Add certificate to start the process.

Apple Pay: Add a new certificate

You will be prompted to provide a name and download a Certificate Signing Request (CSR).

Next, visit the Apple developer dashboard to generate a payment processing certificate.

  • Create or select a Merchant ID to associate a payment processing certificate with.
  • In the Apple Pay Payment Processing Certificate section click on Create Certificate.
  • Select Choose File to upload the CSR you downloaded from the dashboard, and then Continue.
  • Verify the certificate details and Download the signed certificate from Apple.

Next, go back to our dashboard and upload the signed certificate.

Add the certificate to your app

In order for your app to accept Apple Pay, you must set the same Apple Merchant ID in your application. In your Xcode project find the Signing & Capabilities in your project editor.

Select the same Merchant ID you used to register your payment certificate. Please ensure your provisioning profiles and signing certificates are updated to contain this ID.

Integrate Apple Pay

Update SDK initialization

Because the Xcode project can be configured with more than one merchant ID, update the initialization of our SDK to pass the applePayMerchantId to the constructor.

import gr4vy_ios

let result = Gr4vy.init(
  gr4vyId: "[GR4VY_ID]",
  token: "[TOKEN]",
  amount: 1299,
  currency: "AUD",
  country: "AU",
  buyerId: nil,
  environment: Gr4vyEnvironment.sandbox,
  applePayMerchantId: "[MERCHANT_ID]"
)

The Gr4vy ID is the unique identifier for your instance. Together with the environment (sandbox or production) it is used to connect to the right APIs.

Test Apple Pay

Apple has an extensive guide on sandbox testing.

Apple Pay requires a sandbox Sandbox Tester account to be able to test transactions in our sandbox. Sandbox Testers can add fake test cards to their account that can then be used in Apple Pay. When a Sandbox Tester account is used in production, Apple Pay may fail for various reasons. Similarly, when a regular Apple account is configured on a Mac or iPhone, Apple Pay may fail to load the payment sheet. This may result in the Apple Pay UI quickly appearing and then disappearing.

Create a Sandbox Tester account

A sandbox tester account can be set up in the User and Access section of a Apple Developer account. If you do not have an Apple Developer account please contact support and they can set you up with a Sandbox Tester account under our Apple Developer account.

To set up an account we need the following details.

  • First and last name: This can be anything really but we recommend using the person's full name.
  • Email: This needs to be a real email address that is not already an Apple account. This needs to be an email that can receive actual emails.
  • App Store Country or Region: This can help with any locale testing.

Setup on Mac/iPhone

Once set up, a sandbox tester account can be added to a Mac or iPhone.

Sign in to iCloud with the sandbox tester on macOS (or iOS). You will need to sign out of your existing iCloud account and sign in specifically with the sandbox account. This will allow you to register the sandbox cards in the Apple Wallet.

On a Mac, it helps to create a second user account so that you don't need to log out of your own iCloud account every time you need to test Apple Pay. One caveat is that only 1 Apple account per Mac can be used to store cards in the vault, so you'd not be able to use Apple Pay in your own account.

Add test cards

Next, add a test card from the Apple Pay docs. On a Mac this can be done by going to System Preferences -> Wallet & Apple Pay -> Add card.

Create sandbox transaction

To make an Apple Pay sandbox transaction the following are required.

  • An Apple device with a Sandbox Tester account on it
  • An app with an Apple merchant ID associated with it
  • A merchant ID with a signed payment processing certificate associated with it
  • Apple Pay enabled in the dashboard
  • The payment processing certificate registered in the dashboard
  • A card processor enabled that can process Apple Pay in the given currency.

For a currency that has a card processor that supports Apple Pay, you should see the payment option in your app. Select Apple Pay and continue with the payment. You should see the Apple Pay sheet appear.

Create production transaction

To make an Apple Pay transaction in production replace the Sandbox Tester account with a regular Apple account with real cards.

Common Issues