Testing 在测试中使用伪有效nonce创建事务时,事务结果会显示消息:“quot;拒绝网关:重复”;
当我试图在测试中使用Testing 在测试中使用伪有效nonce创建事务时,事务结果会显示消息:“quot;拒绝网关:重复”;,testing,transactions,braintree,Testing,Transactions,Braintree,当我试图在测试中使用伪有效nonce创建事务时出现问题 以下是有关创建事务的代码: const createTransaction = (price, nonceFromTheClient, customerBrainTreeId) => { const transactionToken = new Promise((resolve, reject) => { gateway.transaction.sale( { amount: price,
伪有效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;
};
下面是关于测试的代码:
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');
});
});
当我第一次运行测试时,此测试将通过。但是,如果我多次运行此测试,此测试将不会通过,并且事务结果会显示消息:“Gateway Rejected:duplicate”
如何解决此问题?在braintree支持团队的帮助下,我已经找到了解决方案: Gateway Rejected:duplicate错误被触发,不是因为您使用了一个test nonce值,而是因为您在沙盒帐户中启用了duplicate Transaction Checking选项(默认情况下已启用)。重复事务检查可防止事务请求意外处理多次。如果客户刷新您的签出页面或单击发出新API请求的按钮,则可能会发生这种情况。为了禁用或配置该选项,我请您登录到Braintree控制面板并转到设置>过程essing>在重复事务设置下编辑或禁用