我看到有一种方法“onSubmitEncryptForm”可以在以前版本的 Braintree 中使用 ajax 提交付款表单:

  var braintree = Braintree.create("CLIENT_SIDE_KEY");
    braintree.onSubmitEncryptForm('payment-form-id', ajax_submit_function);

但是今天,当我尝试集成新版本(v2 或 v.zero)时,我没有在 PHP(服务器端)和 javascript(客户端)的文档中找到任何关于 ajax 提交的内容。

我需要仅使用信用卡集成付款。此外,它说“如果你正在用你的表单做更复杂的事情,比如你自己的提交回调或自定义验证,我们建议使用较低级别的集成。为此,创建一个 Braintree 客户端并使用它来标记卡片数据:”。
 var client = new braintree.api.Client({clientToken: "CLIENT-TOKEN-FROM-SERVER"});
    client.tokenizeCard({number: "4111111111111111", expirationDate: "10/20"}, function (err, nonce) {
      // Send nonce to your server
    });

我没有得到任何线索如何进一步使用该随机数。

如果有人帮助我克服这个问题,我将不胜感激。提前致谢。

最佳答案

您可以使用 tokenizeCard 的回调向后端发送 XHR 请求,就像使用 onSubmitEncryptForm 一样。这是一个带有基本 PHP 后端的示例:

客户端 ( documentation )

var client = new braintree.api.Client({clientToken: "<%= @client_token %>"});

// use the card details to request a nonce, passing in the callback we define below:
client.tokenizeCard({number: "4111111111111111", expirationDate: "10/20"}, onCardTokenization);

function onCardTokenization (err, nonce) {
    if (err) { return; }

    // we've gotten the nonce
    // let's go ahead and send it to our backend
    // to process the transaction
    $.post('/checkout', {
      nonce: nonce,
    })
    .success(function () {
        document.body.innerHTML = 'success.'
    })
}

服务器端 ( documentation )
$nonce = $_POST["nonce"]

$result = Braintree_Transaction::sale(array(
  'amount' => '100.00',
  'paymentMethodNonce' => $nonce
));

关于javascript - 没有像 'onSubmitEncryptForm' 这样的方法可以像以前的版本一样在 Braintree Payment v2 中通过 ajax 提交付款表格吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25036140/

10-14 14:33
查看更多