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的主要内容,如果未能解决你的问题,请参考以下文章