public static void SavePartialPayment(CLayer.Transaction data) { DataLayer.Transaction t = new DataLayer.Transaction(); t.SavePartialPayment(data); }
public static void SaveCancelTrans(CLayer.Transaction data) { DataLayer.Transaction t = new DataLayer.Transaction(); t.SaveCancelTrans(data); }
public static bool SendPayPalRefund(CLayer.Transaction tranToRefund) { try { string url = BLayer.Settings.GetValue(CLayer.Settings.PAYPAL_TOKEN_URL); WebRequest rqst = HttpWebRequest.Create(url); rqst.Method = "POST"; string user, pwd, signature, returnurl, cancelurl; //authorization details for transaction user = BLayer.Settings.GetValue(CLayer.Settings.PAYPAL_USER); pwd = BLayer.Settings.GetValue(CLayer.Settings.PAYPAL_PWD); signature = BLayer.Settings.GetValue(CLayer.Settings.PAYPAL_SIGNAUTRE); returnurl = BLayer.Settings.GetValue(CLayer.Settings.PAYPAL_RETURNURL); cancelurl = BLayer.Settings.GetValue(CLayer.Settings.PAYPAL_CANCELURL); string[] PyId = tranToRefund.PaymentId.Split('&'); string postdata = "METHOD=RefundTransaction&VERSION=109.0"; postdata = postdata + "&USER="******"&PWD=" + pwd + "&SIGNATURE=" + signature; postdata = postdata + "&RefundType=Full" + "&TransactionID=" + tranToRefund.TransactionId; postdata = postdata + "&PAYERID=" + PyId[0]; postdata = postdata + "&AMT=" + tranToRefund.TryAmount.ToString("F2") + "&CURRENCYCODE=USD"; if (!String.IsNullOrEmpty(postdata)) { rqst.ContentType = "application/x-www-form-urlencoded"; byte[] byteData = UTF8Encoding.UTF8.GetBytes(postdata); rqst.ContentLength = byteData.Length; using (Stream postStream = rqst.GetRequestStream()) { postStream.Write(byteData, 0, byteData.Length); postStream.Close(); } } ((HttpWebRequest)rqst).KeepAlive = false; System.IO.StreamReader rsps = new System.IO.StreamReader(rqst.GetResponse().GetResponseStream()); string strRsps = rsps.ReadToEnd(); //transaction save with response parameters string ack = GetValueFromResultString("ACK", strRsps); string Transactionid = GetValueFromResultString("REFUNDTRANSACTIONID", strRsps); decimal Grossrefundamount = 0; CLayer.Transaction refundtrandt = new CLayer.Transaction(); if (ack == "Success") { refundtrandt.ResponseCode = CLayer.Transaction.TRAN_SUCCESS; refundtrandt.Status = CLayer.ObjectStatus.TransactionStatus.Refunded; Grossrefundamount = Convert.ToDecimal(tranToRefund.TryAmount.ToString()); } else if (ack == "Failure") { refundtrandt.ResponseCode = CLayer.Transaction.TRAN_FAILED; refundtrandt.Status = CLayer.ObjectStatus.TransactionStatus.TryingForRefund; Grossrefundamount = 0; } refundtrandt.Notes = strRsps; //all transaction response details notes DateTime reftransdate = DateTime.Today; refundtrandt.DateCreated = reftransdate; refundtrandt.TransactionType = CLayer.ObjectStatus.TransactionType.Refund; refundtrandt.TransactionId = Transactionid; refundtrandt.PaymentId = PyId[0]; refundtrandt.Amount = Convert.ToDouble(tranToRefund.TryAmount.ToString()); refundtrandt.BookingId = tranToRefund.BookingId; refundtrandt.TryTime = DateTime.Today; try { BLayer.Transaction.SaveCancelTrans(refundtrandt); BLayer.Transaction.SaveRefundAmount(refundtrandt.TransactionId, refundtrandt.PaymentId, Grossrefundamount); //save total refund amount } catch { string n = "Could not create transaction record. Received Response from Gateway: " + strRsps + " " + tranToRefund.Notes; BLayer.Transaction.SetNote(tranToRefund.TransactionId, tranToRefund.PaymentId, n); } } catch { return(false); } return(true); }
public static void UpdateAmountAndStatus(CLayer.Transaction data) { DataLayer.Transaction t = new DataLayer.Transaction(); t.UpdateAmountAndStatus(data); }
public static bool SendRefund(CLayer.Transaction tranToRefund) { try { string url = BLayer.Settings.GetValue(CLayer.Settings.PAYMENT_REFUND_LINK); System.Collections.Specialized.NameValueCollection reqparm = new System.Collections.Specialized.NameValueCollection(); reqparm.Add("AccountID", BLayer.Settings.GetValue(CLayer.Settings.PAY_ACCOUNT_ID)); reqparm.Add("SecretKey", BLayer.Settings.GetValue(CLayer.Settings.PAY_SECRET_KEY)); reqparm.Add("Amount", tranToRefund.TryAmount.ToString()); reqparm.Add("PaymentID", tranToRefund.PaymentId); reqparm.Add("Action", "refund"); WebClient client = new WebClient(); byte[] responsebytes = client.UploadValues(url, "POST", reqparm); string responsebody = Encoding.UTF8.GetString(responsebytes); XmlDocument xdoc = new XmlDocument(); xdoc.LoadXml(responsebody); if (xdoc.DocumentElement.Attributes["errorCode"] != null && xdoc.DocumentElement.Attributes["errorCode"].Value != "") { string n = responsebody + tranToRefund.Notes; BLayer.Transaction.SetNote(tranToRefund.TransactionId, tranToRefund.PaymentId, n); return(false); } else { if (xdoc.DocumentElement.Attributes["response"] != null && xdoc.DocumentElement.Attributes["response"].Value.ToUpper() == "SUCCESS") { CLayer.Transaction retran = new CLayer.Transaction(); retran.TransactionType = CLayer.ObjectStatus.TransactionType.Refund; retran.TransactionId = xdoc.DocumentElement.Attributes["transactionId"].Value; retran.PaymentId = xdoc.DocumentElement.Attributes["paymentId"].Value; double amount = 0; double.TryParse(xdoc.DocumentElement.Attributes["amount"].Value, out amount); retran.Amount = amount; DateTime dat = DateTime.Today; DateTime.TryParse(xdoc.DocumentElement.Attributes["dateTime"].Value, out dat); retran.DateCreated = dat; retran.Status = CLayer.ObjectStatus.TransactionStatus.Refunded; retran.Notes = "Reference Number= " + xdoc.DocumentElement.Attributes["referenceNo"].Value + ", mode=" + xdoc.DocumentElement.Attributes["mode"].Value + ", transactionType=" + xdoc.DocumentElement.Attributes["transactionType"].Value + ", status=" + xdoc.DocumentElement.Attributes["status"].Value; retran.BookingId = tranToRefund.BookingId; try { BLayer.Transaction.SaveCancelTrans(retran); } catch { string n = "Could not create transaction record. Received Response from Gateway: " + responsebody + " " + tranToRefund.Notes; BLayer.Transaction.SetNote(tranToRefund.TransactionId, tranToRefund.PaymentId, n); } } else { if (xdoc.DocumentElement.Attributes["transactionType"] != null && xdoc.DocumentElement.Attributes["transactionType"].Value.ToLower() == "refunded") { CLayer.Transaction retran = new CLayer.Transaction(); retran.TransactionType = CLayer.ObjectStatus.TransactionType.Refund; retran.TransactionId = xdoc.DocumentElement.Attributes["transactionId"].Value; retran.PaymentId = xdoc.DocumentElement.Attributes["paymentId"].Value; double amount = 0; double.TryParse(xdoc.DocumentElement.Attributes["amount"].Value, out amount); retran.Amount = amount; DateTime dat = DateTime.Today; DateTime.TryParse(xdoc.DocumentElement.Attributes["dateTime"].Value, out dat); retran.DateCreated = dat; retran.Status = CLayer.ObjectStatus.TransactionStatus.Refunded; retran.Notes = "Reference Number= " + xdoc.DocumentElement.Attributes["referenceNo"].Value + ", mode=" + xdoc.DocumentElement.Attributes["mode"].Value + ", transactionType=" + xdoc.DocumentElement.Attributes["transactionType"].Value + ", status=" + xdoc.DocumentElement.Attributes["status"].Value; retran.BookingId = tranToRefund.BookingId; try { BLayer.Transaction.SaveCancelTrans(retran); } catch { string n = "Could not create transaction record. Received Response from Gateway: " + responsebody + " " + tranToRefund.Notes; BLayer.Transaction.SetNote(tranToRefund.TransactionId, tranToRefund.PaymentId, n); } } else { string n = responsebody + tranToRefund.Notes; BLayer.Transaction.SetNote(tranToRefund.TransactionId, tranToRefund.PaymentId, n); return(false); } } } } catch { return(false); } return(true); }