如何在 Safari 中测试 Apple Pay?
How do you test Apple Pay in Safari?
我正在使用 Stripe 在 Web 上设置 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
函数总是 returns false:
Stripe.applePay.checkAvailability(function(available) {
alert(available);
...
}
大概是因为我需要进一步设置 Apple Pay 才能正常工作。但是对于我的生活,我无法让 macOS 合作。在阅读了一些文档后,我认为有一些相关的要点:
- 在我的 iPad 的电子钱包和 Apple Pay 设置中,任何地方都没有 "Allow payments on Mac" 选项
- 我的 macOS 设置应用中没有“钱包与支付”选项
- macOS Safari 设置、隐私选项卡中没有提及 Apple Pay
- 已在 Mac
上启用切换
我是否可以使用 handoff 在 macOS 上与我的沙箱用户启用测试支付,如果可以,我缺少哪些步骤?
更新
- 我的 macOS Sierra 版本是 10.12.4 (16E195)
- 运行
window.ApplePaySession.canMakePayments()
在控制台中 returns false
更新 2
步骤outlined here在两台设备上都已到位。当我在 Mac 图书上打开 Safari 并导航到一个页面时,切换图标显示在多任务屏幕上,反之亦然,当我在 iOS Safari 中打开一个选项卡时,切换图标显示在码头的左边。 似乎 切换工作正常。
另外,通用剪贴板是双向工作的。
注意:在同一本 Mac图书上的不同(非沙盒)iCloud 帐户上,该图书使用不同 iPad 的切换,支付选项按预期显示在 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)
}
}
鉴于你说它正在与你的 iPad 一起工作,我假设你的域已经在使用 ssl 和正确的密码套件。
由于您正在测试,甚至不应该调用 canMakePaymentsWithActiveCard
因为您的条带键应该是测试键,如果您查看 canMakePayments
documentation ,您可以看到他们明确规定:
It does not verify whether or not the user has any provisioned cards in Wallet.
为确保您的设备真正支持它,您应该直接从控制台执行
window.ApplePaySession.canMakePayments()
并确保 returns true
,如果是,则表示问题属于 Stripe 配置而不是 Apple Pay。
我发现可能导致问题的另一件事是 OS 版本的 mac。您的 iPad 非常新,因此已经拥有最新版本,但是在 2015 年购买 MacBook 并不意味着您升级到 Sierra (macOS 10.12),这是需要使用 ApplePay。
我确定您可能已经尝试过所有这些方法,我只是确保我们没有忘记任何事情。
由于 HandOff 似乎是必需的,请确保您也已检查所有 these requirements。
显然,iPad 无法使用 handoff 进行网络上的 Apple Pay。唯一兼容的设备是:
A Mac model introduced in 2012 or later with an Apple Pay-enabled
iPhone or Apple Watch
这直接来自 Apple。可以在 this page.
上找到非常明确的详细信息
我正在使用 Stripe 在 Web 上设置 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
函数总是 returns false:
Stripe.applePay.checkAvailability(function(available) {
alert(available);
...
}
大概是因为我需要进一步设置 Apple Pay 才能正常工作。但是对于我的生活,我无法让 macOS 合作。在阅读了一些文档后,我认为有一些相关的要点:
- 在我的 iPad 的电子钱包和 Apple Pay 设置中,任何地方都没有 "Allow payments on Mac" 选项
- 我的 macOS 设置应用中没有“钱包与支付”选项
- macOS Safari 设置、隐私选项卡中没有提及 Apple Pay
- 已在 Mac 上启用切换
我是否可以使用 handoff 在 macOS 上与我的沙箱用户启用测试支付,如果可以,我缺少哪些步骤?
更新
- 我的 macOS Sierra 版本是 10.12.4 (16E195)
- 运行
window.ApplePaySession.canMakePayments()
在控制台中 returnsfalse
更新 2
步骤outlined here在两台设备上都已到位。当我在 Mac 图书上打开 Safari 并导航到一个页面时,切换图标显示在多任务屏幕上,反之亦然,当我在 iOS Safari 中打开一个选项卡时,切换图标显示在码头的左边。 似乎 切换工作正常。
另外,通用剪贴板是双向工作的。
注意:在同一本 Mac图书上的不同(非沙盒)iCloud 帐户上,该图书使用不同 iPad 的切换,支付选项按预期显示在 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)
}
}
鉴于你说它正在与你的 iPad 一起工作,我假设你的域已经在使用 ssl 和正确的密码套件。
由于您正在测试,甚至不应该调用 canMakePaymentsWithActiveCard
因为您的条带键应该是测试键,如果您查看 canMakePayments
documentation ,您可以看到他们明确规定:
It does not verify whether or not the user has any provisioned cards in Wallet.
为确保您的设备真正支持它,您应该直接从控制台执行
window.ApplePaySession.canMakePayments()
并确保 returns true
,如果是,则表示问题属于 Stripe 配置而不是 Apple Pay。
我发现可能导致问题的另一件事是 OS 版本的 mac。您的 iPad 非常新,因此已经拥有最新版本,但是在 2015 年购买 MacBook 并不意味着您升级到 Sierra (macOS 10.12),这是需要使用 ApplePay。
我确定您可能已经尝试过所有这些方法,我只是确保我们没有忘记任何事情。
由于 HandOff 似乎是必需的,请确保您也已检查所有 these requirements。
显然,iPad 无法使用 handoff 进行网络上的 Apple Pay。唯一兼容的设备是:
A Mac model introduced in 2012 or later with an Apple Pay-enabled iPhone or Apple Watch
这直接来自 Apple。可以在 this page.
上找到非常明确的详细信息