コード例 #1
0
ファイル: Transaction.cs プロジェクト: RahulAras007/StayBazar
 public static void SavePartialPayment(CLayer.Transaction data)
 {
     DataLayer.Transaction t = new DataLayer.Transaction();
     t.SavePartialPayment(data);
 }
コード例 #2
0
ファイル: Transaction.cs プロジェクト: RahulAras007/StayBazar
 public static void SaveCancelTrans(CLayer.Transaction data)
 {
     DataLayer.Transaction t = new DataLayer.Transaction();
     t.SaveCancelTrans(data);
 }
コード例 #3
0
ファイル: Transaction.cs プロジェクト: RahulAras007/StayBazar
        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);
        }
コード例 #4
0
ファイル: Transaction.cs プロジェクト: RahulAras007/StayBazar
 public static void UpdateAmountAndStatus(CLayer.Transaction data)
 {
     DataLayer.Transaction t = new DataLayer.Transaction();
     t.UpdateAmountAndStatus(data);
 }
コード例 #5
0
ファイル: Transaction.cs プロジェクト: RahulAras007/StayBazar
        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);
        }