使用托管字段时如何处理现有客户付款方式?

How to process existing customer payment method when using hosted fields?

我正在使用 Braintree 托管字段来处理付款,但是我在查找或查找有关如何为客户提交现有付款方式的示例时遇到问题。使用 braintree_customer_id 我可以检索客户信息,包括包含最后 4 位数字的 creditCards 数组、cardType、token 和其他信息。由于我使用的是托管字段,因此我使用的 javascript 看起来像:

braintree.setup("<?= $clientToken ?>", 'custom', {
  id: 'my-form',
  hostedFields: {
    styles: {
      'input': {
        'font-family': '"Helvetica Neue", Helvetica, Arial, sans-serif',
        'font-size': '14px',
      },
      '::-moz-placeholder': { 'color': '#999' },
      ':-ms-input-placeholder': { 'color': '#999' },
      '::-webkit-input-placeholder': { 'color': '#999' },
    },
    number: {
      selector: '#hosted-fields-number',
      placeholder: 'Credit Card Number'
    },onFieldEvent: handleFieldEvent,
    cvv: {
      selector: '#hosted-fields-cvv',
      placeholder: 'CVV'
    },
    expirationDate: {
      selector: '#hosted-fields-expiration',
      placeholder: 'Expiration Date'
    }
  }, onPaymentMethodReceived: function (obj) {
        var nonce = obj.nonce;
        console.log(obj);
        if(nonce){
            final_checkout(nonce);
        }
    },
    onError: function (){
        alert('wrong details');
    }
});

我如何获得能够执行我的付款流程所需的付款方式随机数?下面的示例使用托管字段,我如何使用 customer_id 和令牌处理现有客户?

完全披露:我在 Braintree 工作。如果您还有任何问题,请随时contact support.

向特定客户的付款方式收费所需的全部是 paymentMethodToken。由于此信息不是 PCI 敏感数据,您可以将其直接传递到您的服务器并进行 Braintree_Transaction::sale 调用。这可以在托管字段流之外完成。您可以让客户指定特定的付款方式或输入新付款方式的信息。