【问题标题】:Square payment form cannot execute requestCardNonce() to get nonce in Firefox 48.0.2Square 支付表单在 Firefox 48.0.2 中无法执行 requestCardNonce() 来获取 nonce
【发布时间】:2019-02-26 19:44:57
【问题描述】:

我还向 Square 支持提交了请求,希望很快能收到回复。

复制步骤

期待

  • 所有字段都应以红色突出显示以表明它们是必需的。

观察

  • Firefox 无法触发事件 requestCardNonce() 因为它没有被定义。 Firefox 控制台中的错误消息:

    ReferenceError: event is not defined
    requestCardNonce()    payment:121
    onclick()    payment:1
    
  • 表单以 nonce = ""(空字符串或 NULL)提交到服务器。

【问题讨论】:

    标签: firefox square-connect


    【解决方案1】:

    很遗憾,我们在正在处理的文档中发布了一个错误。 Firefox 需要将事件作为参数传递给函数,而 chrome 和 safari 则不需要。如果您编辑从示例中复制的 requestCardNonce 的定义,改为如下所示,它应该适合您:

    function requestCardNonce(event) {
      event.preventDefault();
      paymentForm.requestCardNonce();
    }
    

    注意事件参数。那是您必须添加的部分。对困惑感到抱歉。我们将修复文档。

    已编辑以包含截至 2016 年 8 月 31 日 17:04:43 的当前屏幕截图。这是脚本中您需要将事件参数添加到函数定义的位置,然后您需要将事件参数提供给提交按钮上的函数调用。

    在两个地方都添加了事件,使用 Firefox,我在你的测试表单中得到了以下信息:

    【讨论】:

    • 我进行了更改,但仍然没有生成随机数,并且仍然提交了表单。这是控制台错误消息:TypeError: event is undefined test.html:6:1158 requestCardNonce() test.html:6 onclick() test.html:1
    • 我看到文档已经更新,并且我相应地更新了我的测试表单,但仍然有一些东西阻止它在 Firefox 中工作。 Square 的某个人可以在 Firefox 中测试它并激活 Web 开发人员检查器并观察控制台以复制问题吗? wideningwontwork.org/test.html 我有五个不同的 Firefox 用户报告了同样的问题。我必须在我的生产付款表单上放置通知才能使用不同的浏览器。
    • 啊哈!在两个地方!文档只在一个地方更新了它。它现在可以在 Firefox 中使用。 @tristansokol 在docs.connect.squareup.com/articles/adding-payment-form/… 的文档中,您能否更新表单的输入以传递事件? <input type="submit" onclick="requestCardNonce(event)">谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-17
    相关资源
    最近更新 更多