按照 stripe 文档,我正在尝试在网络上设置 Apple Pay。
但是 Stripe 提供的函数返回可用性为 false。
Stripe.applePay.checkAvailability(function(available) {
if (available) {
document.getElementById('apple-pay-button').style.display = 'block';
} else {
document.getElementById('apple-pay-button').style.display = 'none';
}
});
我正在开发环境中进行测试,并在我的移动 safari 中使用 ngrok 连接到服务器。
有人有使用它的经验吗?
更新:
所以我最后一次尝试是
- 使用带指纹识别器的 2016 macbook(因此我不需要进行切换)
- 在 safari、ngrok、最新的 MacOS 中...
checkAvailability
被调用并且available
返回false
- 唯一的问题是 stripe API,我们仍在使用旧 API,因为有重大更改,我们还没有尝试升级
- 但是,我们已经成功地让 apple pay 与我们正在使用的 api 版本一起工作。
最佳答案
一些调试技巧可能会帮助开发人员登陆此处,尝试让 Apple Pay 和 Stripe 正常工作:
- 确保设备的区域设置设置为支持 Apple Pay 的国家/地区(撰写本文时为美国、英国或加拿大)
- 在开发过程中让浏览器开发工具控制台保持打开状态,因为第 3 方库有时会在其中记录指导性错误消息。查看并调试控制台中记录的所有错误。
- 检查页面是否通过 HTTPS 提供(Apple Pay 要求)。考虑使用代理服务,例如 fwd/ngrok/etc。在您的开发环境中。
- 确认
checkAvailability
功能正在运行。尝试将alert('inside checkAvailability');
调用作为回调函数的第一行。 - 再次使用
alert(...)
确认available
的值符合预期。 - 在使用任何
Stripe.applePay
功能之前检查页面中是否包含stripe.js
。 - 检查是否为环境(测试或生产)正确设置了 Stripe API key
- 更新到最新的 iOS 和/或 macOS 以确保 Safari 版本支持 Apple Pay。
关于stripe-payments - Stripe.applePay.checkAvailability 在移动版 Safari 中返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42683954/