我正在使用Stripe在网上设置Apple Pay,并希望使用我们在iTunes Connect中设置的Sanbox Tester帐户在Safari中的iOS和macOS上进行测试。
在测试设备(2017 iPad)上,我已使用Sandbox Tester帐户登录iCloud,并使用added a test card在设置应用中登录电子钱包。在我的开发网站上,Apple Pay按钮显示,交互正常。
我在MacBook Pro上创建了一个新帐户(Retina,2015年中),并使用相同的Sandbox Tester帐户再次登录iCloud。但是,当我在此处查看我的开发网站时,checkAvailability
函数始终返回false:
Stripe.applePay.checkAvailability(function(available) {
alert(available);
...
}
据推测,这是因为我需要进一步设置Apple Pay才能工作。但是对于我的生活,我无法让macOS合作。在阅读了一些文档后,我认为这些点是相关的:
我是否可以使用切换功能在macOS上使用我的沙箱用户启用测试付款,如果是这样,我错过了哪些步骤?
window.ApplePaySession.canMakePayments()
会返回false
两个设备上的步骤outlined here都已到位。当我在MacBook上打开Safari并导航到某个页面时,多任务屏幕上会显示切换图标,反之亦然,当我在iOS Safari中打开一个标签时,切换图标会显示在停靠栏的左侧。 出现切换正在按预期工作。
此外,Universal Clipboard正在双向工作。
注意:在同一台MacBook上的另一个(非沙盒)iCloud帐户上,使用不同的iPad进行切换,付款选项会在Safari中按预期显示。
答案 0 :(得分:10)
显然,使用iPad无法通过切换在网上使用Apple Pay。唯一兼容的设备是:
2012年或之后推出的支持Apple Pay的Mac型号 iPhone或Apple Watch
这直接来自Apple。可以在this page找到非常明确的详细信息。
答案 1 :(得分:5)
莱昂纳多编辑:只支持iPhone和iWatches才能使用ApplePay进行切换。
查看条带checkAvailability
方法的来源也可能有助于解决问题。
Stripe.applePay.checkAvailability = function (callback) {
if (location.protocol !== 'https:') {
return callback(false);
}
var canMakePayments = window.ApplePaySession && ApplePaySession.canMakePayments()
if (/^pk_test_/.test(Stripe.key || Stripe.publishableKey)) {
callback(canMakePayments)
} else if (canMakePayments) {
var merchantId = "merchant." + window.location.hostname + ".stripe"
ApplePaySession.canMakePaymentsWithActiveCard(merchantId).then(callback)
} else {
callback(false)
}
}
鉴于您说它正在使用您的iPad,我假设您的域名已经在使用ssl和正确的密码套件。
由于您正在测试,canMakePaymentsWithActiveCard
甚至不应该被调用,因为您的条带键应该是测试密钥,如果您查看canMakePayments
documentation,可以看出他们明确规定:
它不会验证用户是否在电子钱包中有任何配置的卡片。
要确保您的设备真正支持它,您应该直接从控制台执行
window.ApplePaySession.canMakePayments()
并确保返回true
,如果这意味着该问题属于Stripe配置而非Apple Pay。
我看到的另一件可能导致问题的是Mac的操作系统版本。你的iPad很新,因此已经有了最新的版本,但是在2015年买了你的MacBook并不是必要的,这意味着你升级到了使用ApplePay所需的Sierra(macOS 10.12)。
我确定您可能已经尝试过所有这些事情,我只是确保我们没有忘记任何事情。
由于似乎需要HandOff,请确保您还检查了所有these requirements。