2012-03-24 4 views
2

Ich versuche, die Antwort von Paypal auf meiner Seite zu verarbeiten. Ich habe diesen Code von der Paypal-Dokumentation selbst gefunden. Wenn die Antwort gültig ist, müssen einige Parameter wie txn_id und payment_completed verarbeitet werden. Wie soll ich das machen? der Code wie folgtPaypal IPN Integration Probleme

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; 

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

     //Send the request to PayPal and get the response 
     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") 
     { 

      //UPDATE YOUR DATABASE 

      //TextWriter txWriter = new StreamWriter(Server.MapPath("../uploads/") + Session["orderID"].ToString() + ".txt"); 
      //txWriter.WriteLine(strResponse); 
      //txWriter.Close(); 

      //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 
     } 
     else if (strResponse == "INVALID") 
     { 
      //UPDATE YOUR DATABASE 

      //TextWriter txWriter = new StreamWriter(Server.MapPath("../uploads/") + Session["orderID"].ToString() + ".txt"); 
      //txWriter.WriteLine(strResponse); 
      ////log for manual investigation 
      //txWriter.Close(); 
     } 
     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(); 
     } 
    } 

einige Eingaben Geben Sie mir bitte. Dank

Antwort

4

Nachdem Sie die Antwort bekommen, und Sie wissen, dass gültig ist, sind die Parameter, um Sie auf dem Laufenden und können die .Form Zum Beispiel mit bekommen:

if (strResponse == "VERIFIED") 
{ 
    // Now All informations are on 
    HttpContext.Current.Request.Form; 
    // for example you get the invoice like this 
    HttpContext.Current.Request.Form["invoice"] 
    // or the payment_status like 
    HttpContext.Current.Request.Form["payment_status"] 
} 
else 
{ 
    //log for manual investigation 
} 
+0

Vielen Dank für Ihre Hilfe .. –