水雨田*_*水雨田 4 testing transactions braintree
当我尝试fake-valid-nonce在测试中创建事务时出现问题。
这是有关创建事务的代码:
const createTransaction = (price, nonceFromTheClient, customerBrainTreeId) => {
const transactionToken = new Promise((resolve, reject) => {
gateway.transaction.sale(
{
amount: price,
customerId: customerBrainTreeId,
paymentMethodNonce: nonceFromTheClient,
options: {
submitForSettlement: true
}
},
(error, result) => {
if (error) {
logger.error(`create transaction error: ${error}`);
reject(error);
} else {
resolve(result);
}
});
});
return transactionToken;
};
Run Code Online (Sandbox Code Playgroud)
这是关于测试的代码:
it(‘**************************', () => {
return PaymentService.createTransaction("104.0", 'fake-valid-nonce', null)
.then(result => {
expect(result.success).to.be.true;
expect(result.transaction.status).to.be.equals('submitted_for_settlement');
expect(result.transaction.type).to.be.equals('sale');
});
});
Run Code Online (Sandbox Code Playgroud)
当我第一次运行测试时,这个测试会通过。但是,如果我多次运行此测试,此测试将无法通过,并且交易结果会显示消息:“网关被拒绝:重复”。
我怎么解决这个问题?
我已经在 Braintree 支持团队的帮助下找到了解决方案:
Gateway Rejected: duplicate触发该错误 不是因为您使用了测试随机数值,而是因为您在 Sandbox 帐户中启用了重复交易检查选项(默认情况下启用)。重复事务检查可防止事务请求意外处理多次。如果客户刷新您的结帐页面或单击发出新 API 请求的按钮,就会发生这种情况。为了禁用或配置该选项,我邀请您登录到您的 Braintree 控制面板,然后转到设置 > 处理 > 编辑或禁用重复交易设置下。
| 归档时间: |
|
| 查看次数: |
909 次 |
| 最近记录: |