javascript - BrainTree 托管字段 onPaymentMethodReceived 函数无法返回随机数

标签 javascript braintree

我很难弄清楚为什么托管字段中的 onPaymentMethodReceived 没有返回任何值。 `

  <form action="" id="my-form" method="post">
      <label for="a">Amount</label>
      <div id="amount"> 
          <input type="text" name="amount" value="400" id="amount" />
      </div>

      <label for="card-number">Card Number</label>
      <div id="card-number"> 
          <input type="text" name="cardNumber" value="4111111111111111" id="cardNumber" />
      </div>

      <label for="cvv">CVV</label>
      <div id="cvv">
          <input type="text" name="CVV" value="020" id="cv-v" />
       </div>
      <label for="expiration-month">Expiration Month</label>
      <div id="expiration-month">
          <input type="text" name="expirMonth" value="10" id="expirMonth" />
       </div>

      <label for="expiration-year">Expiration Year</label>
      <div id="expiration-year">
          <input type="text" name="expirYear" value="20" id="expirYear" />
      </div>
      <input type="submit" value="Pay" id="btn_submit"/>
  </form>

 <script>
  var nonce0 ;
  braintree.setup(clientToken, "custom", 
    {
      id: "my-form",
      hostedFields: {
            number: {
              selector: "#card-number"
            },
            cvv: {
              selector: "#cvv"
            },
            expirationMonth: {
              selector: "#expiration-month"
            },
            expirationYear: {
              selector: "#expiration-year"
            },
      },
      onPaymentMethodReceived:function(nonce){
          console.log("in onPaymentMethodReceived");
          console.log(nonce);
          nonce0 = nonce;
          alert('OnPaymentMR');
          console.log(JSON.stringify(nonce));
          return false;
      },
      onError :function(obj){
          alert('onError');
          console.log(JSON.stringify(obj));
     }
   }); 
    console.log('BTree = '+ nonce0);
  </script>

` 我想存储返回的随机数,但什么也没发生,console.log 没有显示任何值。甚至 onError 也没有做任何事情。
使用断点,我可以知道隐藏的随机数正在返回,但回调函数没有被触发。
我用 Dropin-UI 尝试过,它确实有效,我可以从 onPaymentMethodReceived 获取随机数。 不确定我做错了什么。

最佳答案

全面披露:我是 Braintree 的开发人员

使用托管字段时,表单应仅包含 div container for each payment field 。您的实现将如下所示:

<form action="" id="my-form" method="post">
  <label for="a">Amount</label>
  <div id="amount"></div>

  <label for="card-number">Card Number</label>
  <div id="card-number"></div>

  <label for="cvv">CVV</label>
  <div id="cvv"></div>

  <label for="expiration-month">Expiration Month</label>
  <div id="expiration-month"></div>

  <label for="expiration-year">Expiration Year</label>
  <div id="expiration-year”></div>

  <input type="submit" value="Pay" id="btn_submit"/>
</form>

Braintree 设置脚本随后将渲染 iframe 来处理支付字段输入。如果您仍然遇到问题,可以随时联系Braintree support .

关于javascript - BrainTree 托管字段 onPaymentMethodReceived 函数无法返回随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36503816/

相关文章:

c# - 交易搜索始终为空

javascript - https可调用云函数不返回值

paypal - 布伦特里拆分付款 Paypal

javascript - Aurelia 如何在自定义元素及其自己的命名空间中添加绑定(bind)行为?

javascript - 如何使用 columns().every() 检索仅包含过滤元素的列

javascript - 外部 Javascript 文件 - 查询字符串信息可用吗?

javascript - Braintree 多个设置调用在多个 onPaymentMethodReceived 事件中产生

javascript - 如何在 KeystoneJS 中以编程方式从页面添加项目

javascript - JavaScript 中的递归函数 - 未正确调用它

ios - Paypal 快速结帐 - iOS