Stripe.applePay.checkAvailability 在移动 Safari 中返回 false
Posted
技术标签:
【中文标题】Stripe.applePay.checkAvailability 在移动 Safari 中返回 false【英文标题】:Stripe.applePay.checkAvailability returns false in mobile Safari 【发布时间】:2017-03-08 23:33:13 【问题描述】:按照条纹文档,我正在尝试在网络上设置 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
唯一的事情是条带 API,我们仍在使用旧 API,因为有重大更改,我们还没有尝试升级
但是,我们已经成功地使Apple Pay 与我们正在使用的API 版本一起工作。
【问题讨论】:
您是否已登录您的 iTunes Connect 沙盒帐户?如果你不是,这将永远发生。 @korben 是的,但它有问题。不是一直返回 true。 也许值得向 Apple Pay 开发者支持提交。 checkAvailability() 方法实际上只是包装了 Apple Pay JS,并没有添加任何额外的逻辑,afaik。单独使用 Apple Pay JS 是否看到相同的结果? @korben 我没有单独尝试 Apple Pay JS。但我会做更多的挖掘。将发布我在这里找到的任何内容。 我遇到了类似的问题,但直接使用ApplePaySession
,而不是通过 Stripe。我当时的一些观察在这里:***.com/questions/39728878/…
【参考方案1】:
一些调试技巧可以帮助开发者登陆这里尝试让 Apple Pay 和 Stripe 工作:
确保设备的区域设置设置为支持 Apple Pay 的国家/地区(撰写本文时为美国、英国或加拿大) 在开发过程中让浏览器开发工具控制台保持打开状态,因为第 3 方库有时会在此处记录指示性错误消息。查看并调试控制台中记录的所有错误。 检查页面是否通过 HTTPS 提供(Apple Pay 要求)。考虑使用代理服务,例如 fwd/ngrok/etc。在您的开发环境中。 确认checkAvailability
函数正在运行。尝试将alert('inside checkAvailability');
调用作为回调函数的第一行。
确认available
的值符合预期,再次使用alert(...)
。
在使用任何 Stripe.applePay
功能之前,请检查 stripe.js
是否包含在页面中。
检查是否为环境(测试或生产)正确设置了 Stripe API 密钥
更新到最新的 ios 和/或 macOS 以确保 Safari 版本支持 Apple Pay。
【讨论】:
以上是关于Stripe.applePay.checkAvailability 在移动 Safari 中返回 false的主要内容,如果未能解决你的问题,请参考以下文章