2013-12-17 59 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实例解决了这个问题。

相关问题