シンプルな Web API コントローラーを使用して、クライアントからの要求を受け入れて支払いを処理しています。Payflow 支払い要求が新しいタスクで開始され、タスクでトランザクションが完了するのを待っている間、すぐにクライアントにステータスを返します。
ただし、テストでは、API に 2 つのリクエストを続けて送信すると、2 番目のリクエストはSubmitTransaction
Payflownet API のメソッドから null 応答を受け取ります。なぜこうなった?
これが呼び出しを行っている私のメソッドです
private NameValueCollection SubmitTransaction(NameValueCollection pfpParams)
{
string transactionString = GetTransactionString(pfpParams);
string pfpResponse = _pfNetApi.SubmitTransaction(transactionString, PayflowUtility.RequestId);
return HttpUtility.ParseQueryString(pfpResponse);
}
どちらの場合もメソッドに渡す transactionString の値は次のSubmitTransaction
とおりです (ダミーのクレジット カード情報)。
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
その文字列で単一のリクエストを送信するたびに、応答は正しく、期待どおりです。ただし、その文字列を使用して 2 つの非同期要求を送信するたびに、最初の要求が完了していない場合、2 番目の応答は常に null になります。