Quantcast
Channel: Active questions tagged paypal - Stack Overflow
Viewing all articles
Browse latest Browse all 468

Paypal Rollback / Refund IPN if database update fails? [closed]

$
0
0

I am wondering how I should handle a situation where a customer was billed for digital goods, so then the IPN is called and I deliver the digital good. What happens if something goes wrong in the delivery process? How should this case be handled? Is there something I can do to cancel / refund in this case?

I'm basing my IPN code off of a sample I found

protected void Page_Load(object sender, EventArgs e){    //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;    //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        //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    }    else    {  //UPDATE YOUR DATABASE    }}

What if my updating of the database fails?


Viewing all articles
Browse latest Browse all 468

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>