Braintree sandbox transaction.sale gives error: "Sale Customer ID has already been taken"
Braintree sandbox transaction.sale gives error: "Sale Customer ID has already been taken"
我正在使用 Drop-in 功能在沙盒模式下试用 Braintree。
我正在使用现有的 customerID
创建一个客户端令牌。但是当我用这个 customerId
和选项 storeInVault = true
进行 transaction.sale
调用时,它给出了以下错误:
Sale Customer ID has already been taken.
根据文档,它应该使用付款随机数更新客户。
代码如下:
gateway.transaction.sale({
amount: '10.00',
paymentMethodNonce: nonceFromTheClient, // Generated nonce passed from client
customer: {
id: 232057823, //this customer exist in the vault
email : user.emails[0].address
},
options: {
submitForSettlement: true,
storeInVault: true
//storeInVaultOnSuccess: true
}
}, function (err, result) {
if (err) {
console.log(err);
} else {
if (result.success) {
return result.success;
} else {
console.log('ERR Sale '+result.message);
return result.success;
}
}
});
我在 patrickml:braintree
.
包中使用 Meteor
您似乎在使用 Braintree Transaction Sale API Call,其中包含了 storeInVault: true 选项。这是在用包含的付款方式 nonce 创建交易并尝试创建客户 ID 232057823,这就是您遇到该错误的原因。
如果您的目标是简单地更新现有客户,您会希望使用 Customer Update API call。
我正在使用 Drop-in 功能在沙盒模式下试用 Braintree。
我正在使用现有的 customerID
创建一个客户端令牌。但是当我用这个 customerId
和选项 storeInVault = true
进行 transaction.sale
调用时,它给出了以下错误:
Sale Customer ID has already been taken.
根据文档,它应该使用付款随机数更新客户。
代码如下:
gateway.transaction.sale({
amount: '10.00',
paymentMethodNonce: nonceFromTheClient, // Generated nonce passed from client
customer: {
id: 232057823, //this customer exist in the vault
email : user.emails[0].address
},
options: {
submitForSettlement: true,
storeInVault: true
//storeInVaultOnSuccess: true
}
}, function (err, result) {
if (err) {
console.log(err);
} else {
if (result.success) {
return result.success;
} else {
console.log('ERR Sale '+result.message);
return result.success;
}
}
});
我在 patrickml:braintree
.
您似乎在使用 Braintree Transaction Sale API Call,其中包含了 storeInVault: true 选项。这是在用包含的付款方式 nonce 创建交易并尝试创建客户 ID 232057823,这就是您遇到该错误的原因。
如果您的目标是简单地更新现有客户,您会希望使用 Customer Update API call。