【问题标题】:Firefox - ReferenceError: PaymentRequest is not definedFirefox - ReferenceError:PaymentRequest 未定义
【发布时间】:2020-10-21 11:55:21
【问题描述】:

我正在尝试在网站上实施 google pay。 google pay 的外部库是从 pay.google.com 加载的。在这个 google 脚本中,他们调用浏览器 api PaymentRequest()。该 api 内置于 Safari、Chrome 等流行浏览器中。

我可以使用 google pay,但它不适用于 Firefox。加载外部脚本时,它会调用 PaymentRequest 并在控制台中显示以下错误: ReferenceError: PaymentRequest 未定义

链接到谷歌支付脚本 https://pay.google.com/gp/p/js/pay.js

Mozilla Firefox 官方网页声明 PaymentRequest 在安全上下文中受支持。 https://developer.mozilla.org/en-US/docs/Web/API/Payment_Request_API/Using_the_Payment_Request_API

我只复制和粘贴官方来源提供的相同代码

从我的角度来看,Firefox 不支持 PaymentRequest 并且不起作用。我错过了什么?

查看 chrome 和 safari 的控制台。

【问题讨论】:

    标签: firefox google-pay payment-request-api


    【解决方案1】:

    Google Pay 在 macOS 上的 Firefox 78.0.1 上为我工作,使用以下内容:https://jsfiddle.net/fw5t6caL/

    是的,它确实在控制台的以下代码中记录了一个错误:

      google.payments.api.UseCanMakePaymentResultFromPayjs && (new PaymentRequest([{
        supportedMethods: [
          'https://google.com/pay'
        ]
      }
      ], {
        total: {
          label: 'Estimated Total Price',
          amount: {
            currency: 'USD',
            value: '10'
          }
        }
      })).canMakePayment().then(function (a) {
        return ef = a
      }).catch (function () {
        return ef = !1
      });
    

    ...但它确实有效。您可以尝试使用上面链接的 JSFiddle 吗?

    此外,作为仅供参考,我们最近released a React and Web Component 以简化 Google Pay 集成流程。考虑使用它作为替代方案,因为它应该更容易集成。

    JSFiddle 输出截图:

    【讨论】:

    • 我正在尝试将该功能集成到现有应用程序 - Magento 中。我拥有的模块实际上具有完全开发的功能,但是它不能正常工作 - 在 Firefox 上。模块中的代码旨在查看是否可以调用 PaymentRequest,如果不能调用,则不显示按钮。我删除了它并出现了按钮,但是我无法完成结帐。您是否测试过付款是否通过?
    • JSFiddle 在 Firefox 中对我有用,对你有用吗?选择支付方式会在控制台输出支付数据。我将在原始答案中包含屏幕截图。
    • 感谢您的回答,我相信我的问题是特定于应用程序的,您已经回答了我的问题。
    猜你喜欢
    • 2014-02-25
    • 2023-03-15
    • 2019-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-17
    相关资源
    最近更新 更多