Payflow API在多个异步请求上返回空响应

时间:2013-12-17 23:00:32

标签: c# asp.net-web-api payflowpro

我使用简单的Web API控制器接受来自客户的处理付款的请求。 Payflow付款请求在新任务中启动,当我等待我的任务中的事务完成时,我立即向客户端返回状态。

但是,在测试中,如果我将两个请求背靠背发送到我的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

每当我使用该字符串发送单个请求时,响应都是正确的并且是预期的。但是,每当我使用该字符串发送两个异步请求时,如果第一个没有完成,则第二个响应始终为空。

1 个答案:

答案 0 :(得分:1)

OP的同事,如果其他人有这个问题,请回答这个问题。

这似乎是线程安全的问题。虽然文档另有说明,PayflowNETAPI.SubmitTransaction似乎不是线程安全的。通过为每个事务使用PayflowNETAPI的新实例来解决该问题。