Ответ Paypal не приходит на странице notify_url в Paypal IPN - PullRequest
4 голосов
/ 31 марта 2012

Я пытаюсь протестировать свое приложение PayPal и указал мой PayPal notify_url как www.xx.com/paypal.aspxЯ должен получить ответ от PayPal песочницы.Но я ничего не получаю на странице paypal.aspx.Код обработки моего ответа:

protected void Page_Load(object sender, EventArgs e)
    {
        string connStr = ConfigurationManager.ConnectionStrings["MainConnStr"].ConnectionString;
        con = new SqlConnection(connStr);
        con.Open();
        //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(HttpContext.Current.Request.ContentLength);
        string strRequest = Encoding.ASCII.GetString(param);
        strRequest += "&cmd=_notify-validate";
        req.ContentLength = strRequest.Length;


StreamWriter streamOut = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII);
    streamOut.Write(strRequest);
    streamOut.Close();
    StreamReader streamIn = new StreamReader(req.GetResponse().GetResponseStream());
    string strResponse = streamIn.ReadToEnd();
    streamIn.Close();

    if (strResponse == "VERIFIED")
    {
       //Insert statement
    }


else if (strResponse == "INVALID")
    {
        //UPDATE YOUR DATABASE

        StreamWriter swr = new StreamWriter(Server.MapPath("Textfile.txt"));
        swr.WriteLine("---- not verified(" + DateTime.Now.ToString() + ")--");
        swr.Dispose();
    }
    else
    {  //UPDATE YOUR DATABASE

        //TextWriter txWriter = new StreamWriter(Server.MapPath("../uploads/") + Session["orderID"].ToString() + ".txt");
        //txWriter.WriteLine("Invalid");
        ////log response/ipn data for manual investigation
        //txWriter.Close();
    }

Платеж обработан полностью.Я также направлен на страницу благодарности.Пожалуйста, ПОМОГИТЕ

Спасибо

1 Ответ

0 голосов
/ 14 апреля 2012

Во-первых, вы должны убедиться, что URL-адрес, который вы передаете PayPal в качестве значения notify_url, является общедоступным и разрешаемым URL-адресом. Это означает, что вы не отправляете ему внутренний сетевой URL-адрес или имя компьютера (то есть localhost, my_computer_name, mypcname.mynetwork.com). Простой способ проверить это и убедиться, что вы не создали дурное имя или у вас неверная конфигурация сети, это взять любой URL, который вы отправляете в PayPal, в качестве значения notify_url, и попытаться получить доступ к другу, внешнему по отношению к вашей сети. URL в их браузере. Если они получат сообщение об ошибке подключения, вам придется переосмыслить конфигурацию или наименование сети, прежде чем вы сможете заставить PayPal увидеть ваш компьютер.

Во-вторых, если вы выполняете приведенный выше код в Visual Studio с помощью отладчика и встроенного веб-сервера, вы можете ограничиться тем, что он будет отвечать только на запросы, если запрошенное имя сайта - "localhost". См. Следующую статью Microsoft о том, как настроить код для запуска в реальном экземпляре IIS.

http://msdn.microsoft.com/en-us/library/58wxa9w5.aspx

...