你如何在Safari中测试Apple Pay?

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合作.在阅读了一些文档后,我认为这些点是相关的:

  • 在我的iPad的电子钱包和Apple Pay设置中,没有"允许在Mac上付款"选项
  • 我的macOS设置应用中没有"电子钱包和付款"选项
  • 在macOS Safari设置,隐私选项卡中没有提到Apple Pay
  • 在Mac上启用了切换功能

我是否可以使用切换在macOS上使用我的沙箱用户启用测试付款,如果是这样,我错过了哪些步骤?

更新

  • 我的macOS Sierra版本是10.12.4(16E195)
  • window.ApplePaySession.canMakePayments()在控制台中运行返回false

更新2

此处列出的步骤均适用于两台设备.当我在MacBook上打开Safari并导航到某个页面时,多任务屏幕上会显示切换图标,反之亦然,当我在iOS Safari中打开一个标签时,切换图标会显示在停靠栏的左侧.它似乎切换工作正常.

此外,Universal Clipboard正在双向工作.

注意:在使用不同iPad切换的同一台MacBook上的另一个(非沙盒)iCloud帐户上,付款选项会按预期显示在Safari中.

Leo*_*lis 10

显然,使用iPad进行切换的Apple Pay是不可能的.唯一兼容的设备是:

2012款或更高版本推出的Mac型号,配备支持Apple Pay的iPhone或Apple Watch

这直接来自Apple.在此页面上可以找到非常明确的详细信息.


Bal*_*zar 5

来自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,请确保您还检查了所有这些要求.