Ich versuche, meine Paypal-Anwendung zu testen und meine paypal notify_url als www.xx.com/paypal.aspx angegeben. Ich sollte Antwort von der Sandbox Paypal bekommen. Aber ich bekomme nichts auf der paypal.aspx Seite. Mein Repsode-Code lautet:Paypal Antwort kommt nicht auf der Seite notify_url in Paypal IPN
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();
}
Die Zahlung wird vollständig verarbeitet. Ich werde auch auf die Dankeseite verwiesen. Bitte helfen
Dank
Vor allem der offenen der Datenbank und Sie vergessen, es zu benutzen und es zu schließen. Warum hast du es hier trotzdem? Zweitens, was ist eigentlich das Problem an diesem Code? da du sagst, dass das gar nicht angerufen wird, ist das Problem, auf welche URL du paypal sendest. Woher erwartest du das? von Ihrem lokalen Computer hinter asdn rooter, vom Server auf einer statischen IP? wovon ? – Aristos
Ich habe die Datenbankverbindung geöffnet. Der Code ist nicht das Problem, das ist die Seite, auf der ich die IPN-Antwort bekommen sollte. Aber ich habe gerade den IPN-Verlauf überprüft und der Status ist dort fehlgeschlagen, obwohl meine Transaktionen stattfinden. Es tut mir leid für die schlechte Fragestellung. Es ist vom Server anzurufen. – vini
Sie öffnen die Datenbank auf falsche Weise, und Sie vergessen, es zu schließen - schlechter Code darauf. Nun, wird diese Seite angerufen oder nicht? – Aristos