braintree - TokenizeCard不工作

时间:2015-04-30 13:47:42

标签: javascript php braintree

我正在尝试通过以下代码更新使用新值保存在braintree保险库中的信用卡: -

var data = {
        cardholderName: $('#cardholder_name').val(),
        expirationDate: $('#expiration_date').val(),
        cvv: $('#cvv').val(),
        billingAddress: {
            firstName: $('#firstName').val(),
            lastName: $('#lastName').val(),
            streetAddress: $('#streetAddress').val(),
            locality: $('#city').val(),
            region: $('#state').val(),
            postalCode: $('#postalCode').val(),
            countryName: $('input[name="country"]').val(),
        }
    };
    if($('#number').prop('disabled') == false) {
        data.number = $('#number').val();
    }
    data.billingAddress['options'] = { updateExisting: true };

var client = new braintree.api.Client({clientToken: "<?=$client_token?>"});
client.tokenizeCard(data, function (err, nonce) {
});

当我删除

时,上面的代码工作正常
data.billingAddress['options'] = { updateExisting: true };

如果我包含上述行,则会收到错误无法令牌。如何通过javascript标记信用卡时更新现有的帐单邮寄地址?

1 个答案:

答案 0 :(得分:2)

我在Braintree工作。如果您需要任何其他帮助,请随时通过support@braintreepayments.com与我们联系。

致电tokenizeCard时,电话中包含的信用卡和帐单邮寄地址信息不会添加到您的保管库中。因此,updateExisting不应使用,并且在尝试对卡进行令牌化时会返回错误。

要更新现有的信用卡,您需要将收到的随机数传递到服务器,然后进行Braintree_PaymentMethod::update()调用以更新信息。您在拨打此电话时需要确保拥有原始信用卡的令牌(在您第一次拨打Braintree_PaymentMethod::create()Braintree_CreditCard::create())时会返回。