PayPal IPN侦听器无法正常工作

时间:2012-08-29 02:20:10

标签: c# asp.net paypal

所以,我已经阅读了IPN文档,并且我已经阅读了大量我发现的示例。我已经尝试了一些不同的解决方案,并且在它们无法工作之后,I've simply copy and pasted exactly what is documented on the PayPal IPN page.因此,它仍然无法正常工作。我的IPN历史记录显示它正在继续重新发送消息。下面的代码 - 缺少什么?

protected void Page_Load(object sender, EventArgs e)
    {
        const string postUrl = "https://www.paypal.com/cgi-bin/webscr";
        var req = (HttpWebRequest)WebRequest.Create(postUrl);

        //Set values for the request back
        req.Method = "POST";
        req.ContentType = "application/x-www-form-urlencoded";
        var param = Request.BinaryRead(HttpContext.Current.Request.ContentLength);
        var strRequest = Encoding.ASCII.GetString(param);
        var ipnPost = strRequest;
        strRequest += "&cmd=_notify-validate";
        req.ContentLength = strRequest.Length;

        //for proxy
        //WebProxy proxy = new WebProxy(new Uri("http://url:port#"));
        //req.Proxy = proxy;

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

        // ReSharper disable AssignNullToNotNullAttribute
        var streamIn = new StreamReader(req.GetResponse().GetResponseStream());
        // ReSharper restore AssignNullToNotNullAttribute
        var strResponse = streamIn.ReadToEnd();
        streamIn.Close();

        // logging ipn messages... be sure that you give write
        // permission to process executing this code
        //

        if (strResponse == "VERIFIED")
        {
            //check the payment_status is Completed
            //check that txn_id has not been previously processed
            //check that receiver_email is your Primary PayPal email
            //check that payment_amount/payment_currency are correct
            //process payment
            var mailer = new Emailer();
            mailer.SendMail("from@domain.com", "to@domain.com", "Thank you!",
                            "Thank you for your sponsorship. Good luck on your results!<br /><br />" + ipnPost);
        }
        else if (strResponse == "INVALID")
        {
            //log for manual investigation
        }
    }

1 个答案:

答案 0 :(得分:0)

原来我的电子邮件发件人错误了。我发送的地址未在我的AWS账户中验证。

相关问题