Apple pay as a payment method is not working when using Adyen PSP

Hi,

For one of my projects, I am using the Web Drop-in component of Adyen PSP on a Salesforce B2B Commerce site. One of the payment methods is Apple Pay. The payment method is rendered, but the Apple Pay button is not clickable. We tried debugging it but could not identify the root cause. Could you advise how this issue can be fixed?

Thanks

Answered by DTS Engineer in 893905022

Hi @tkardile,

You wrote:

One of the payment methods is Apple Pay. The payment method is rendered, but the Apple Pay button is not clickable. We tried debugging it but could not identify the root cause. Could you advise how this issue can be fixed?

"Renders but not clickable" is a very specific symptom. It means:

  • The ApplePaySession availability check passed (device/browser is eligible)
  • Adyen successfully initialized the Apple Pay component
  • Something is blocking the click event or preventing ApplePaySession.begin() from being called

This could be due to Content Security Policy (CSP) blocking from Salesforce B2B Commerce, as they are known for enforcing strict CSP headers. If so, that means Adyen's Apple Pay Drop-in makes calls to Apple's servers during the merchant validation step, and Saleforce's CSP may silently block these requests. To resolve this, review the support channels for Salesforce to learn how to add CSP trusted sites. I'd recommend adding the domains mentioned below (in addition to any Adyen Checkout domains required as well):

  • apple-pay-gateway.apple.com (Global, Production)
  • cn-apple-pay-gateway.apple.com (China Region, Production)
  • apple-pay-gateway-cert.apple.com (Global, Sandbox)
  • cn-apple-pay-gateway-cert.apple.com (China Region, Sandbox)

Setting Up Your Server

https://developer.apple.com/documentation/applepayontheweb/setting-up-your-server

Additionally, please confirm that the Apple Pay merchant domain verification was completed for the Salesforce storefront domain. The verification file must be accessible at:

https://[your-storefront-domain]/.well-known/apple-developer-merchantid-domain-association

Lastly, ensure ApplePaySession.begin() is called synchronously within a user gesture handler (e.g., a direct click event). Any async operation between the click and begin() will silently prevent the Apple Pay session from starting.

If all of the above is valid, please verify the logic within onvalidatemerchant and confirm the Adyen validation step is also performed as expected from their end.

Cheers,

Paris X Pinkney |  WWDR | DTS Engineer

Hi @tkardile,

You wrote:

One of the payment methods is Apple Pay. The payment method is rendered, but the Apple Pay button is not clickable. We tried debugging it but could not identify the root cause. Could you advise how this issue can be fixed?

"Renders but not clickable" is a very specific symptom. It means:

  • The ApplePaySession availability check passed (device/browser is eligible)
  • Adyen successfully initialized the Apple Pay component
  • Something is blocking the click event or preventing ApplePaySession.begin() from being called

This could be due to Content Security Policy (CSP) blocking from Salesforce B2B Commerce, as they are known for enforcing strict CSP headers. If so, that means Adyen's Apple Pay Drop-in makes calls to Apple's servers during the merchant validation step, and Saleforce's CSP may silently block these requests. To resolve this, review the support channels for Salesforce to learn how to add CSP trusted sites. I'd recommend adding the domains mentioned below (in addition to any Adyen Checkout domains required as well):

  • apple-pay-gateway.apple.com (Global, Production)
  • cn-apple-pay-gateway.apple.com (China Region, Production)
  • apple-pay-gateway-cert.apple.com (Global, Sandbox)
  • cn-apple-pay-gateway-cert.apple.com (China Region, Sandbox)

Setting Up Your Server

https://developer.apple.com/documentation/applepayontheweb/setting-up-your-server

Additionally, please confirm that the Apple Pay merchant domain verification was completed for the Salesforce storefront domain. The verification file must be accessible at:

https://[your-storefront-domain]/.well-known/apple-developer-merchantid-domain-association

Lastly, ensure ApplePaySession.begin() is called synchronously within a user gesture handler (e.g., a direct click event). Any async operation between the click and begin() will silently prevent the Apple Pay session from starting.

If all of the above is valid, please verify the logic within onvalidatemerchant and confirm the Adyen validation step is also performed as expected from their end.

Cheers,

Paris X Pinkney |  WWDR | DTS Engineer

Apple pay as a payment method is not working when using Adyen PSP
 
 
Q