1

我正在使用 IPN 模拟器测试我的 IPN 侦听器。在 IPN 模拟器上发送 IPN 后,我的日志显示我的 IPN 侦听器收到了 IPN,但是当它发送回添加了 cmd=_notify-validate 的消息时,沙箱没有响应。IPN 模拟器上显示的错误是“IPN 传递失败:500 内部服务器错误”。我的监听器向沙箱发送消息后遇到以下错误:“连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立连接失败,因为连接的主机未能响应 173.0.82.77:443 ”。

当我使用实时 PayPal URL 测试我的监听器时,它会以“INVALID”消息响应 - 这表明我的监听器工作正常。

在与我的网络托管公司核实后,他们建议 PayPal 沙箱 IP 没有被阻止,问题应该出在 PayPal 沙箱上。请告知 PayPal 是否有可能阻止了源 IP,因此没有响应。如果是这样,我该如何解除对源 IP 的阻止?任何帮助表示赞赏。谢谢。

我正在使用 PayPal 为我的 IPN 侦听器提供的示例 ASP.NET C# 代码,并且我的日志在“向 PayPal 发送请求...”处停止。

SSLogger.logger.Info("IPN Invoked");

//Post back to either sandbox or live
string strSandbox = "https://www.sandbox.paypal.com/cgi-bin/webscr";
string strLive = "https://www.paypal.com/cgi-bin/webscr";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(strSandbox);

//Set values for the request back
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
byte[] param = Request.BinaryRead(Request.ContentLength);   //get request values
string strRequest = "cmd=_notify-validate&" + Encoding.ASCII.GetString(param);

//set request values
req.ContentLength = strRequest.Length;
SSLogger.logger.Info("sb: " + Encoding.ASCII.GetString(param));
SSLogger.logger.Info("strRequest: " + strRequest);

//Send the request to PayPal and get the response
SSLogger.logger.Info("Sending request to PayPal...");
StreamWriter streamOut = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII);
streamOut.Write(strRequest);
streamOut.Close();
SSLogger.logger.Info("Request sent out to PayPal.");
StreamReader streamIn = new StreamReader(req.GetResponse().GetResponseStream());
string strResponse = streamIn.ReadToEnd();
streamIn.Close();
SSLogger.logger.Info("Response from PayPal received.");

SSLogger.logger.Info(strResponse);
4

1 回答 1

0

试试这个:

req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
byte[] param = Request.BinaryRead(HttpContext.Current.Request.ContentLength);
string strRequest = Encoding.ASCII.GetString(param);
strRequest += "&cmd=_notify-validate";
req.ContentLength = strRequest.Length;
于 2014-07-04T04:26:39.803 回答