データを送り返す際に、私はINVALID
という応答をPayPalから受け取り続けます。私はこれまで助けてくれなかったので、他にも多くの記事を読んできました。これは私が確認できるものです:IPN通知拒否INVALID
- paramsの順番は同じです。
- データは、リクエストに先行する
cmd=_notify-validate&
を除いて同じです。
これは、最大データをポストするためにいくつかの簡単なハックのコードです:
using (WebClient client = new WebClient())
{
var nvc = new NameValueCollection { {"cmd", "_notify-validate"} };
foreach (var f in formCollectionData.AllKeys)
nvc.Add(f, formCollectionData[f]);
try
{
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
client.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
var response = client.UploadValues(_urls[payPalResponse.test_ipn], "POST", nvc);
var result = System.Text.Encoding.UTF8.GetString(response); //returns "INVALID"
}
catch (Exception e)
{
;
}
}
formCollectionData
は(MVCを使用して)私の行動に通って供給されるデータです。これが正しいことをRequest.Form.ToString()
のデータを見て確認しました。
私はいくつかの方法を使って投稿を試みましたが、同じINVALID
の結果を得ました。
私はpaypal設定の言語エンコーディングをUTF-8
に変更しましたが、IPNシミュレータを使用していますので、これがどのように適用されるかはわかりません。
私は円で回っているようで、何をすべきかわかりません。私はちょうどIPNの歴史に入ると1を再送信し、それが正常に働いていることで、私のサンドボックスのPayPalアカウントからこれを試してみた
EDIT。私は検証済みのステータスを取得します。
これは、IPNシミュレータが正しく動作しないため、エンコーディングと関係があると想定しています。シミュレータのエンコーディングをUTF-8に表示/変更することは可能ですか?
問題をPayPal(https://www.paypal-techsupport.com/)に報告したい場合があります。私の経験に基づいて、IPNシミュレータは、受信したIPNデータに互換性のないエンコーディングが原因で問題を引き起こしました – vandershraaf