Apple Pay 在 Safari 上点击没反应是怎么回事?
我在网页里集成了 Apple Pay,用的是官方的 ApplePaySession API,在 iOS 模拟器和真机上测试时,点击支付按钮完全没反应,控制台也没报错。是不是我漏了什么配置?
我已经在 Apple Developer 后台启用了 Apple Pay,并且域名也通过了验证,前端代码大致是这样:
if (window.ApplePaySession && ApplePaySession.canMakePayments()) {
const session = new ApplePaySession(3, {
countryCode: 'US',
currencyCode: 'USD',
total: { label: 'My Store', amount: '10.00' },
supportedNetworks: ['visa', 'masterCard', 'amex'],
merchantCapabilities: ['supports3DS']
});
session.begin();
}
但点击后既不弹出支付界面,也没有任何错误提示,感觉像是被静默拦截了,这到底啥原因啊?
apple-developer-merchantid-domain-association文件正确放置在网站根目录。另外检查下 merchant ID 配置,有时候后台设置好了,代码里用的 merchant ID 不对也会导致这种情况。记得在创建 ApplePaySession 时传入正确的 merchantIdentifier 参数。
还有个常见问题是 HTTPS 配置不完整,确保整个支付流程都在安全连接下运行,连静态资源都要走 HTTPS,不然有些浏览器会直接静默失败。改一下这些配置应该就差不多了。