Paypal:IPN侦听器未收到IPN消息

时间:2016-07-26 12:29:51

标签: asp.net-web-api paypal paypal-ipn paypal-sandbox

我有一个使用paypal作为付款选项的在线交易网站。结帐和paypal侧的购物车计算正在运行,但我没有从paypal沙箱收到任何IPN消息。写完日志后,我发现参数 formdata 为空。即使使用IPN历史记录进行检查,它也会将IPN消息的状态显示为正在重试... IPN通知网址也已设置。 下面是监听器代码。

[Route("IPN")]
    public IHttpActionResult IPN(FormDataCollection formData)
    {

        var formVals = new Dictionary<string, string>();
        formVals.Add("cmd", "_notify-validate");

        string response = GetPayPalResponse(formVals, formData);

        if (response.ToUpper().Trim() == "VERIFIED")
        {

            //entry into database

            }
            else
            {

                return InternalServerError();
            }

        return InternalServerError();
    }

string GetPayPalResponse(Dictionary<string, string> formVals, FormDataCollection formData)
    {

        string paypalUrl = GetPayPalURL();
        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(paypalUrl);

        // Set values for the request back
        req.Method = "POST";
        req.ContentType = "application/x-www-form-urlencoded";

        Encoding encoding = Encoding.UTF8;

        StringBuilder sb = new StringBuilder();
        foreach (var entry in formData.ToList())
        {
            sb.AppendFormat("{0}={1}&", entry.Key, encoding.GetString(encoding.GetBytes(entry.Value)));
        }

        string strRequest = sb.ToString();
        strRequest += "cmd=_notify-validate";
        req.ContentLength = strRequest.Length;

        //Send the request to PayPal and get the response
        StreamWriter streamOut = new StreamWriter(req.GetRequestStream());
        streamOut.Write(strRequest);
        streamOut.Close();

        StreamReader streamIn = new StreamReader(req.GetResponse().GetResponseStream());
        string strResponse = streamIn.ReadToEnd();
        streamIn.Close();

        return strResponse;
    }

之前有效,但不知道是什么阻止了它。 作为paypal支付网关的新手,任何帮助都将受到高度赞赏。

2 个答案:

答案 0 :(得分:1)

自昨天起,paypal出现了一些问题。我希望这是一个临时问题,它将尽快修复。我自己也遇到沙箱问题,但之前也发生过。

答案 1 :(得分:0)

我也遇到了沙箱模式的问题......还有其他人可以确认吗?我正在使用.NET SDK和自适应支付...... 编辑:今天全部工作;)