2016-11-10 9 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控制面板並轉至設置>處理>編輯或在重複交易設置下禁用