Braintree - 发布payMethodNonce的内容

时间:2016-02-10 09:20:51

标签: php paypal braintree

我刚开始使用Braintree并在PHP中使用它的API。

我遇到过一件事,即从HTML文件发布的“paymentMethodNouce”。

我的问题是,这需要包括什么?即我们发送信用卡,账单信息通过这里发布?表格需要包含哪些内容?即应该是这样的:

    <form> 
      <input type="text" name="payment['creditcard']" value="124214124" />
      <input type="text" name"payment['billingaddress']" value="12312313"/>
   </form>

如果这不正确,实际上会传递给paymentMethodNonce以及信用卡详细信息是如何处理的?

2 个答案:

答案 0 :(得分:6)

让我描述一下程序

付款方式现时

付款方式nonce是客户端SDK返回的string,用于表示付款方式。此字符串是对您的付款表单中提供的客户付款方式详细信息的引用,应该发送到您的服务器,可以与服务器SDK一起使用,以创建新的交易请求

设置braintree

  1. 首先配置环境和API凭据

    Braintree_Configuration ::环境(&#39;沙盒&#39); Braintree_Configuration :: MERCHANTID(&#39; use_your_merchant_id&#39); Braintree_Configuration ::公钥(&#39; use_your_public_key&#39); Braintree_Configuration ::专用密钥(&#39; use_your_private_key&#39);

  2. 通过服务器的ajax调用获取客户端令牌

    echo($ clientToken = Braintree_ClientToken :: generate());

  3. 使用braintree返回的客户端令牌来设置表单。只有在您有客户端令牌的情况下,您的表单才会可见

  4. 您的表单现在将在您的客户端呈现。用户填写所有信息并提交表格。

  5. 如果eveything一切正常,braintree将为该用户返回付款方式现场
  6. 付款方式现时存储在您的服务器上。

    $ nonce = $ _POST [&#34; payment_method_nonce&#34;]

  7. 使用付款方式nonce 来执行该交易。

    $ result = Braintree_Transaction :: sale([       &#39;量&#39; =&GT; &#39; 100.00&#39 ;,       &#39; paymentMethodNonce&#39; =&GT; nonceFromTheClient     ]);

答案 1 :(得分:0)

除了WitVault's answer之外,您还有几个解决方案可以从第5步到第6步。您可以通过AJAX调用发送它或在表单中创建隐藏输入:

<input type="hidden" name="payment_method_nonce">

当生成令牌时,将后者设置为input元素的值,然后提交表单:

var form = document.querySelector('#payment_form');
form.addEventListener('submit', function (event) {
   event.preventDefault();
   hostedFieldsInstance.tokenize(function (tokenizeErr, payload) {
      document.querySelector('input[name="payment_method_nonce"]').value = payload.nonce;
      form.submit();
   });
}, false);

然后步骤6将允许您检索令牌。