Leo*_*lis 16 safari stripe-payments applepay
我正在使用Stripe在网上设置Apple Pay,并希望使用我们在iTunes Connect中设置的Sanbox Tester帐户在Safari中的iOS和macOS上进行测试.
在测试设备(2017 iPad)上,我使用Sandbox Tester帐户登录iCloud,并在设置应用程序中将测试卡添加到电子钱包中.在我的开发网站上,Apple Pay按钮显示,交互工作正常.
我在MacBook Pro(Retina,2015年中)创建了一个新帐户,并使用相同的Sandbox Tester帐户再次登录iCloud.但是,当我在此处查看我的开发网站时,该checkAvailability函数始终返回false:
Stripe.applePay.checkAvailability(function(available) {
alert(available);
...
}
Run Code Online (Sandbox Code Playgroud)
大概这是因为我需要进一步设置Apple Pay才能工作.但对于我的生活,我无法让macOS合作.在阅读了一些文档后,我认为这些点是相关的:
我是否可以使用切换在macOS上使用我的沙箱用户启用测试付款,如果是这样,我错过了哪些步骤?
window.ApplePaySession.canMakePayments()在控制台中运行返回false此处列出的步骤均适用于两台设备.当我在MacBook上打开Safari并导航到某个页面时,多任务屏幕上会显示切换图标,反之亦然,当我在iOS Safari中打开一个标签时,切换图标会显示在停靠栏的左侧.它似乎切换工作正常.
此外,Universal Clipboard正在双向工作.
注意:在使用不同iPad切换的同一台MacBook上的另一个(非沙盒)iCloud帐户上,付款选项会按预期显示在Safari中.
来自Leonardo的编辑:只支持iPhone和iWatches才能使用ApplePay进行切换.
查看Stripe 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)
}
}
Run Code Online (Sandbox Code Playgroud)
鉴于你说它正在使用你的iPad,我假设你的域名已经在使用ssl和正确的密码套件了.
由于您正在测试,canMakePaymentsWithActiveCard因为您的条带键应该是测试键,因此甚至不应该调用它,如果您查看canMakePayments 文档,您可以看到它们明确规定:
它不会验证用户是否在电子钱包中有任何配置的卡.
要确保您的设备真正支持它,您应该直接从控制台执行
window.ApplePaySession.canMakePayments()
Run Code Online (Sandbox Code Playgroud)
并确保返回true,如果这样做意味着问题属于Stripe配置而不是Apple Pay.
我看到的另一件可能导致问题的是你的mac的操作系统版本.你的iPad很新,因此已经有了最新版本,但是在2015年买了你的MacBook并不一定意味着你升级到使用ApplePay所需的Sierra(macOS 10.12).
我相信你可能已经尝试了所有这些东西,我只是确保我们没有忘记任何事情.
由于似乎需要HandOff,请确保您还检查了所有这些要求.
| 归档时间: |
|
| 查看次数: |
1753 次 |
| 最近记录: |