【问题标题】:Apple Payment sheet not displaying in iOS13 when Apple Pay is invoked from a Safari browser从 Safari 浏览器调用 Apple Pay 时,Apple 付款表未显示在 iOS13 中
【发布时间】:2020-02-07 06:18:21
【问题描述】:

我正在使用 Apple Pay JS。我为我的网站创建了 Apple Pay 功能,它在 iOS 设备的 Safari 浏览器中运行良好,但在将 iOS 更新到最新版本 iOS13 后停止运行。

问题是 Apple Pay 表不再出现在 iOS13 上。 我在日志中看不到任何错误。它启动 Apple Pay 会话,但不调用 onvalidatemerchant 和任何发布的内容。

点击Apple Pay按钮我有以下方法

function makePayment()
{
    var applePayRequest = sampleRequest;
    var applePaySession = new ApplePaySession(1, applePayRequest)

    applePaySession.onvalidatemerchant = function(event) {
      log('validate merchant called');

       // api service call with event.validationUrl to get the session data
    };

    applePaySession.onPaymentAuthorized = function(event) {
      log('on payment authorized called');

       // get payment token and call api service with details for
      // payment processing 
    };

    log('begin Apple Pay session');
    applePaySession.begin();

    log('Apple Pay session called');

 }

打印以下日志 '开始 Apple Pay 会话' 'Apple Pay 会话已调用'

这意味着 onvalidatemerchant 甚至没有被调用。 在 iOS 12 设备上,我还会另外获得“验证商家调用”的日志。

有什么建议吗?

【问题讨论】:

    标签: javascript mobile-safari ios13 applepayjs


    【解决方案1】:

    我也有同样的问题。 正如您在文档中看到的,最新版本是 6。

    https://developer.apple.com/documentation/apple_pay_on_the_web/applepaysession/1778014-supportsversion

    但我检查了版本 window.ApplePaySession.supportsVersion(8) 并且它可用。

    替换后的版本

    var applePaySession = new ApplePaySession(1, applePayRequest)
    

    var applePaySession = new ApplePaySession(8, applePayRequest)
    

    成功了!

    【讨论】:

    • 我确实尝试过更改版本,但没有任何影响。令人惊讶的是,大约 2 周后,它开始使用相同的代码正常工作。不确定 Apple 的非产品系统是否存在问题。大约在同一时间,Apple 列出的一些用于非产品测试的信用卡号码也无法正常工作。我向 Apple 提出了这个问题,发现万事达卡有问题。
    猜你喜欢
    • 2017-05-13
    • 2019-04-05
    • 2018-12-31
    • 2014-12-19
    • 2019-04-14
    • 2020-04-16
    • 1970-01-01
    • 1970-01-01
    • 2014-12-20
    相关资源
    最近更新 更多