我正在尝试通过以下代码更新使用新值保存在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标记信用卡时更新现有的帐单邮寄地址?
答案 0 :(得分:2)
我在Braintree工作。如果您需要任何其他帮助,请随时通过support@braintreepayments.com与我们联系。
致电tokenizeCard
时,电话中包含的信用卡和帐单邮寄地址信息不会添加到您的保管库中。因此,updateExisting
不应使用,并且在尝试对卡进行令牌化时会返回错误。
要更新现有的信用卡,您需要将收到的随机数传递到服务器,然后进行Braintree_PaymentMethod::update()
调用以更新信息。您在拨打此电话时需要确保拥有原始信用卡的令牌(在您第一次拨打Braintree_PaymentMethod::create()
或Braintree_CreditCard::create())
时会返回。