2016-11-10 7 views
0

有,当我试图在我的测试,以创建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; 
}; 

这里是关于测试的代码:下面的代码创建有关交易

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'); 
    }); 
}); 

当我运行的第一次测试,日测试将通过。但是,如果我运行这个测试多次,本次测试将无法通过,交易结果显示我的留言:?“网关拒绝:复制”

我怎样才能解决这个问题

回答

1

我已经在braintree支持团队的帮助下找到了解决方案:

错误Gateway Rejected: duplicate不是因为您使用测试随机数值,而是因为您在沙盒帐户中启用了重复事务检查选项(默认情况下启用)。重复事务检查可防止事务请求意外处理多于onc的事务即如果客户刷新您的结账页面或点击发布新的API请求的按钮,就会发生这种情况。为了禁用或配置该选项,我邀请您登录您的Braintree控制面板并转至设置>处理>编辑或在重复交易设置下禁用