如何在Safari中测试Apple Pay?

时间:2017-04-25 13:03:07

标签: safari stripe-payments applepay

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

  • 在我的iPad的电子钱包& Apple Pay设置没有"允许在Mac上付款"随时随地选择
  • 没有钱包&我的macOS设置应用中的付款选项
  • 在macOS Safari设置,隐私标签
  • 中没有提及Apple Pay
  • 在Mac上启用了切换功能

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

更新

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

更新2

两个设备上的步骤outlined here都已到位。当我在MacBook上打开Safari并导航到某个页面时,多任务屏幕上会显示切换图标,反之亦然,当我在iOS Safari中打开一个标签时,切换图标会显示在停靠栏的左侧。 出现切换正在按预期工作。

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

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

2 个答案:

答案 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