2013-12-17 93 views
0

我正在使用一個簡單的Web API控制器來接受客戶端處理付款的請求。 Payflow支付請求在新任務中啓動,我立即向客戶端返回狀態,同時等待交易在我的任務中完成。Payflow API在多個異步請求上返回空響應

但是,在測試中,如果我連續發送兩個請求到我的API,第二個請求將收到來自Payflownet API的SubmitTransaction方法的空響應。這是爲什麼發生?

這裏是我的方法,進行調用

private NameValueCollection SubmitTransaction(NameValueCollection pfpParams) 
{ 
    string transactionString = GetTransactionString(pfpParams); 
    string pfpResponse = _pfNetApi.SubmitTransaction(transactionString, PayflowUtility.RequestId); 
    return HttpUtility.ParseQueryString(pfpResponse); 
} 

這裏是我在傳遞給SubmitTransaction方法在兩種情況下transactionString的值(虛擬信用卡信息):

ACCT=4111111111111111&EXPDATE=0115&COMMENT1=&COMMENT2=&CVV2=123&NAME=Joshua Dixon&STREET=123 x st&TENDER=C&ZIP=12345&AMT=5.00&TRXTYPE=S&USER=test&PWD=xxxx&PARTNER=Verisign&VENDOR=test 

每當我用該字符串發送單個請求時,響應是正確的和預期的。但是,每當我用該字符串發送兩個異步請求時,如果第一個未完成,第二個響應始終爲空。

+0

顯示你的代碼,你到目前爲止嘗試過什麼 –

+0

好吧,我剛剛發佈了我的方法,使得調用。我測試了所有周圍的代碼,以確保一切都如預期。即使發送的請求形式完全相同,pfpResponse字符串也始終爲空。 –

回答

1

OP的同事,如果有其他人有這個問題,回答這個問題。

這似乎是一個線程安全問題。雖然文檔指出,PayflowNETAPI.SubmitTransaction似乎不是線程安全的。通過爲每個事務使用一個新的PayflowNETAPI實例解決了這個問題。

相關問題