我正在尝试通过以下代码使用新值更新保存在 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 标记信用卡时,如何更新现有的帐单地址?
最佳答案
我在布伦特里工作。如果您需要任何其他帮助,请随时联系我们 [email protected] .
调用 tokenizeCard
时,调用中包含的银行卡和帐单地址信息不会添加到您的保管库中。因此,不应使用 updateExisting
,并且在尝试对卡进行 token 化时会返回错误。
要更新现有信用卡,您需要将收到的随机数传递到服务器,然后执行 Braintree_PaymentMethod::update()
调用来更新信息。进行此调用时,您需要确保拥有原始信用卡的 token (当您首次调用 Braintree_PaymentMethod::create()
或 Braintree_CreditCard::create() 时返回该 token )
.
关于javascript - Braintree - TokenizeCard 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29969491/