For most stores, the best way to accept Apple Pay with WooCommerce is via WooPayments. However, Apple Pay can also be enabled with some 3rd party payment gateways like Stripe, Square, and Authorize.net. Depending on the gateway, the setup for Apple Pay can be straight-forward, or it can be arduous. You may need the help of a developer to get up and running with Apple Pay when not using Apple Pay via WooPayments. Setting up Apple Pay for 3rd party gateways other than WooPayments is also not covered by our support policy, so the server certification process must be completed by you or your developer independently before Apple Pay can be enabled within a plugin. This document provides a guide for developers to set up Apple Pay. If you are not sure if you can do this on your own, please see the section on Generating Apple Certificates. If you cannot complete this section independently, you should work with a professional to assist you with this setup process. Unfortunately, there’s no way to simplify this process for these 3rd party payment processors.
Supported 3rd Party Gateways
↑ Back to top- Stripe for WooCommerce
- Square for WooCommerce
- Authorize.Net
- CyberSource
- Moneris
- PayPal Powered by Braintree
- PayPal Payments
Gateway feature comparison
While there are many similarities to how Apple Pay is handled between the 3rd party supported gateways, there are some differences:AuthNet | CyberSource | Moneris | Braintree | PayPal Payments | Stripe | WooPayments | |
---|---|---|---|---|---|---|---|
Available on Cart Page | yes | yes | yes | yes | yes | yes | yes |
Available on Checkout page | yes | yes | yes | yes | yes | yes | yes |
Available “Buy Now” for simple products | yes | yes | yes | yes | yes | yes | yes |
Enable Apple Pay Locations Individually | yes | yes | yes | yes | yes | no | no |
Requires manual certificate generation | yes | yes | yes | no | no | no | no |
Requires PEM file on server | yes | yes | yes | no | yes | no | no |
Supported locations / currencies | USA | USA | USA, CA | USA | See full list here | All Apple Pay locations | All Apple Pay locations |
Supports Woo Subscriptions | no | no | no | no | yes | yes | yes |
Requirements
↑ Back to top- Your entire site must be served over HTTPS with a valid SSL certificate.
- Your server must support the TLS 1.2 protocol.
- (Not required with Stripe) You must create an Apple Developer Account ($99 per year)
- Authorize.Net and CyberSource only:
- The individual who generates certificates must use MacOS to generate them, as Keychain access is required.
- Your merchant account provider must support tokenization (includes Chase Paymentech, Global Payments, First Data). If you’re not sure if you meet this requirement, please check with your Authorize.Net or CyberSource representative.
Verify Store Domain
↑ Back to top- Create a new (or use an existing) Merchant ID via the Apple developer center under “Certificates, IDs, and Profile” > Merchant IDs.
- Edit the merchant ID to add a new domain.
- Download the verification file and SSH into to your server while leaving this open.
- Verify your domain by placing your verification file below your root at
/.well-known/payment-processing-cert
and verify with Apple.
Payment Gateway Setup
↑ Back to topAuthorize.Net
↑ Back to top- Sign up for Apple Pay in your payment gateway account using your new Apple Developer Merchant ID.
- Generate a new Certificate Signing Request (CSR) via your account and download it.
CyberSource
↑ Back to topMoneris
↑ Back to topGenerating Apple Certificates
↑ Back to top.pem
file you can upload to your server.
This file must be stored above your webroot in a non-public, readable location. If you use shared hosting, you may not have access to this area
- Back in your Apple Developer account, create a new Payment Processing Certificate by uploading your processor’s CSR.
- Create a new Merchant Identity Certificate and follow the steps to use Keychain Access to create a new CSR, which you will then upload.
- When finished, a
merchant_id.cer
file will download. - Double-click the new certification file to add to your Keychain Access app
- Right-click on its entry (named “Merchant Identity…”) and click “Export….”. This will generate a .p12 file.
- Using OpenSSL, convert that to a .pem file using a terminal command similar to
openssl pkcs12 -in apple-pay-cert.p12 -out apple-pay-cert.pem -nodes -clcerts
- Upload that PEM file to your server, above the web root, in a non-public location that’s readable by PHP. Some hosts already have a dedicated directory for this — for example, Pagely servers have a
/users/
directory above the webroot that can be used for this purpose. - Set the full server path for that PEM file in the plugin settings.
Plugin Settings Configuration
↑ Back to topadd_filter( 'wc_payment_gateway_authorize_net_cim_activate_apple_pay', '__return_true' );CyberSource
add_filter( 'wc_payment_gateway_cybersource_activate_apple_pay', '__return_true' );Moneris
add_filter( 'wc_payment_gateway_moneris_activate_apple_pay', '__return_true' );Once this filter is active on the site, Apple Pay settings are enabled. The settings are located under WooCommerce > Payments > Apple Pay.
- Enable / Disable – Enable this to make Apple Pay available to customers using eligible devices
- Allow Apple Pay on – Select the locations for which Apple Pay should be available:
- Single products – Shows the Apple Pay button as a “Buy Now” option on single product pages above the “Add to cart” button. Only shown for simple products currently.
- Cart – Shows the Apple Pay button on cart pages before the “Proceed to Checkout” button as an express checkout option.
- Checkout – Shows Apple Pay button below the “Order Review” section and above the other available payment options.
- Button Style – Determines which Apple Pay button is shown to customers.
- Apple Merchant ID – Enter the Merchant ID you’ve generated in your Apple Developer Account
- Certificate Path – Enter the full path to the PEM file on your server (remember, this should be above your webroot for security)
- Test Mode – Enable this to put the Apple Pay gateway in test mode for processing test orders.
Purchasing with Apple Pay
↑ Back to topThe Gateway’s Role
The Apple Pay Touch ID process is only meant to verify that the customer’s card is valid, then encrypt its data. From there, Apple Pay does not actually do anything to process the payment, it’s just securing the payment data for sending. From that point, the payment gateway takes over the transaction, formatting the data to send it to the processor for approval, decline, etc., sending it in place of standard card details. Because the transaction is handled by the processor at that point after the payment details have been passed securely, this means that other gateway features, such as captures and refunds from WooCommerce, will work as they usually do.Testing Apple Pay
↑ Back to topEligible Devices
In order to use Apple Pay, the purchaser must use an eligible device and browser. iPhone 6 or newer, iPad Pro, iPad Air 2, iPad mini 3 or newer, and MacBooks from 2012 or newer using MacOS 10.12 with an Apple Pay device — these devices can use Apple Pay. Apple Pay on the web can only be used with Safari, so customers using Chrome, Firefox, or other browsers cannot check out with Apple Pay. Please review Apple’s list of eligible devices to ensure you or your customer is using a supported device, version, and browser.Frequently Asked Questions
↑ Back to topTroubleshooting
↑ Back to topApple Pay buttons do not appear at any location
↑ Back to top- Ensure you’re using an eligible device with the Safari browser. Please note that you cannot use Apple Pay in Google Chrome, Firefox, or with a non-Apple device — the button is automatically hidden.
- Ensure Apple Pay is enabled under the settings, and that you’ve saved settings.
- Ensure your PEM file is in a readable location. Check your settings screen for notices to ensure the plugin can read this file.
- Ensure your entire site is served over HTTPS.
- Run back through the verification and certification steps to ensure you’ve completed each properly, as your certificate may not be properly generated or converted to a PEM file.
Apple Pay buttons do not appear at a specific location
↑ Back to top- Please ensure your entire site is served over HTTPS; buttons will not appear at a location if that location is not served over HTTPS.
- If you’re looking for “Buy Now” buttons, note that these only show up for simple products (not simple subscriptions or any other product type).
Orders are missing product details
↑ Back to topOther Issues
↑ Back to top- Please enable logging under your payment gateway’s credit card settings.
- Attempt an Apple Pay transaction and review the logs.
- If you see certification errors, please work with your host to upgrade your server so it meets the Apple Pay requirements (ie upgrade cURL and ensure TLS 1.2 compatibility).
- If you see other errors or only generic payment errors, please get in touch with support and provide logs for review.
Get Help or Support
↑ Back to top- If you need assistance getting Apple Pay set up for your site and payment processing account, we recommend filling out the development request form to hire a developer to assist you with this process.
- If you have Apple Pay set up already and experience other issues, please submit a help request with your logs and we’d be happy to troubleshoot further.
Hire a Developer
↑ Back to topSet up Apple Pay for my WooCommerce store
Project details
I would like a developer to assist me in verifying my domain with Apple, generating a processing certificate, and placing this certificate on the appropriate location on my server so that I can process payments with Apple Pay via my WooCommerce payment gateway.