簡體   English   中英

Braintree-過帳付款方式

[英]Braintree - What to post for paymentMethodNonce

我剛剛開始使用Braintree,並在PHP中使用它的API。

我碰到了一件事,從HTML文件發布的“ paymentMethodNouce”。

我的問題是,這需要包括什么? 即我們是否通過此處發布發送信用卡,賬單信息? 表格需要包含哪些內容? 即應該是這樣的:

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

如果這是不正確的,那么實際將什么傳遞給paymentMethodNonce以及如何處理信用卡詳細信息?

讓我描述一下程序

付款方式隨機數

付款方式現時是客戶端SDK返回的表示付款方式的string 此字符串是對您在付款表格中提供的客戶付款方式詳細信息的引用,應將其發送到服務器,在此可以與服務器SDK一起使用以創建新的交易請求

設置braintree

  1. 首先配置環境和API憑據

    Braintree_Configuration :: environment('sandbox'); Braintree_Configuration :: merchantId('use_your_merchant_id'); Braintree_Configuration :: publicKey('use_your_public_key'); Braintree_Configuration :: privateKey('use_your_private_key');

  2. 通過來自服務器的Ajax調用獲取客戶端令牌

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

  3. 使用從braintree返回的客戶端令牌來設置您的表單。 僅當您有客戶端令牌可用時,表單才可見

  4. 現在,您的表單將在您的客戶端上呈現。 用戶填寫所有信息並提交表格。

  5. 如果一切順利,braintree將為該用戶返回付款方式隨機數
  6. 付款方式隨機數存儲在您的服務器上。

    $ nonce = $ _POST [“ payment_method_nonce”]

  7. 使用該付款方式隨機數在以后執行交易。

    $ result = Braintree_Transaction :: sale([['amount'=>'100.00','paymentMethodNonce'=> nonceFromTheClient]);

除了WitVault的答案外 ,您還可以從第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步將允許您檢索令牌。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM