예제 #1
0
        public CLayer.OfflinePayment GetOfflinePaymentDetails(long OfflinePaymentId)
        {
            CLayer.OfflinePayment     result = null;
            List <DataPlug.Parameter> param  = new List <DataPlug.Parameter>();

            param.Add(Connection.GetParameter("pOfflinePayId", DataPlug.DataType._BigInt, OfflinePaymentId));
            DataTable dt = Connection.GetTable("OfflinePayment_GetDetails", param);

            if (dt.Rows.Count > 0)
            {
                result                 = new CLayer.OfflinePayment();
                result.UserId          = Connection.ToLong(dt.Rows[0]["UserId"]);
                result.Amount          = Connection.ToDecimal(dt.Rows[0]["Amount"]);
                result.Name            = Connection.ToString(dt.Rows[0]["Name"]);
                result.Message         = Connection.ToString(dt.Rows[0]["Message"]);
                result.ReferenceNumber = Connection.ToString(dt.Rows[0]["ReferenceNo"]);
                result.PaymentRefNo    = Connection.ToString(dt.Rows[0]["PaymentReferenceNo"]);
                result.CreatedDate     = Connection.ToDate(dt.Rows[0]["CreatedDate"]);
                result.Email           = Connection.ToString(dt.Rows[0]["Email"]);
                result.Mobile          = Connection.ToString(dt.Rows[0]["Mobile"]);
                result.Address         = Connection.ToString(dt.Rows[0]["Address"]);
                result.Country         = Connection.ToString(dt.Rows[0]["CountryName"]);
                result.State           = Connection.ToString(dt.Rows[0]["StateName"]);
                result.City            = Connection.ToString(dt.Rows[0]["CityName"]);
                result.CountryCode     = Connection.ToString(dt.Rows[0]["CountryCode"]);
                result.ZipCode         = Connection.ToString(dt.Rows[0]["ZipCode"]);
                //result.PaymentLinkID = (Guid)(dt.Rows[0]["PaymentLinkGuidId"]);
                result.PaymentLinkID = Connection.ToString(dt.Rows[0]["PaymentLinkGuidId"]);
            }
            return(result);
        }
예제 #2
0
        public long SaveInitialCustomerPaymentData(CLayer.OfflinePayment data)
        {
            List <DataPlug.Parameter> param = new List <DataPlug.Parameter>();

            param.Add(Connection.GetParameter("pUserId", DataPlug.DataType._Int, data.UserId));
            param.Add(Connection.GetParameter("pName", DataPlug.DataType._Varchar, data.Name));
            param.Add(Connection.GetParameter("pRefNumber", DataPlug.DataType._Varchar, data.ReferenceNumber));
            param.Add(Connection.GetParameter("pAmount", DataPlug.DataType._Decimal, data.Amount));
            param.Add(Connection.GetParameter("pMessage", DataPlug.DataType._Varchar, data.Message));

            param.Add(Connection.GetParameter("pAddress", DataPlug.DataType._Varchar, data.Address));
            param.Add(Connection.GetParameter("pEmail", DataPlug.DataType._Varchar, data.Email));
            param.Add(Connection.GetParameter("pMobile", DataPlug.DataType._Varchar, data.Mobile));
            param.Add(Connection.GetParameter("pCountryId", DataPlug.DataType._Int, data.CountryId));
            param.Add(Connection.GetParameter("pStateId", DataPlug.DataType._Int, data.StateId));
            param.Add(Connection.GetParameter("pCityId", DataPlug.DataType._Int, data.CityId));
            param.Add(Connection.GetParameter("pCityName", DataPlug.DataType._Varchar, data.City));
            param.Add(Connection.GetParameter("pZipCode", DataPlug.DataType._Varchar, data.ZipCode));
            param.Add(Connection.GetParameter("pGatewaytype", DataPlug.DataType._Int, data.Gatewaytype));
            param.Add(Connection.GetParameter("pStatus", DataPlug.DataType._Int, (int)CLayer.ObjectStatus.OfflinePyamentStatus.Processing));
            param.Add(Connection.GetParameter("pPaymentlinkid", DataPlug.DataType._Char, data.CustomerGuid));
            object result = Connection.ExecuteQueryScalar("SP_offlineCustomerPayment_Save", param);

            return(Connection.ToLong(result));
        }
 public ActionResult CustomerOfflinePay(Models.PaymentRequestModel data)
 {
     try
     {
         //long UserId = GetUserId();
         long                  UserId    = BLayer.OfflinePayment.GetOfflinePaymentUserID(data.PaymentGuid);
         CLayer.Address        byAddress = BLayer.Address.GetAddressOnUserId(UserId);
         CLayer.Address        adrs      = BLayer.Address.GetPrimaryOnUser(UserId);
         CLayer.OfflinePayment dt        = new CLayer.OfflinePayment();
         dt.Name            = byAddress.Firstname;
         dt.Amount          = data.GrandTotal;
         dt.ReferenceNumber = "";
         dt.Message         = "";
         dt.UserId          = UserId;
         dt.Address         = adrs.AddressText;
         dt.CountryId       = adrs.CountryId;
         dt.StateId         = adrs.State;
         dt.CityId          = data.CityId;
         if (adrs.City != null && adrs.City != "")
         {
             dt.City = adrs.City;
         }
         if (adrs.CityId > 0)
         {
             dt.City = BLayer.City.Get(adrs.CityId).Name;
         }
         dt.Email        = byAddress.Email;
         dt.Mobile       = adrs.Mobile;
         dt.ZipCode      = adrs.ZipCode;
         dt.CustomerGuid = data.PaymentGuid;
         dt.Gatewaytype  = (int)CLayer.ObjectStatus.Gateway.EBS;
         CLayer.Role.Roles rle   = BLayer.User.GetRole(UserId);
         long   OfflinePaymentId = BLayer.OfflinePayment.SaveInitialCustomerPaymentData(dt);
         string PaymentRefNo     = " ";
         long   OffPayId         = BLayer.OfflinePayment.SetCustomerPaymentRefNo(OfflinePaymentId, rle, PaymentRefNo, data.PaymentGuid);
         return(RedirectToAction("Index", "OfflinePaymentProcess", new { OfflinePaymentId = OfflinePaymentId }));
     }
     catch (Exception ex)
     {
         Common.LogHandler.HandleError(ex);
         return(RedirectToAction("Index", "Home"));
     }
 }
        public ActionResult SaveOfflinePay(Models.OfflinePaymentModel data)
        {
            try
            {
                long UserId = GetUserId();
                CLayer.OfflinePayment dt = new CLayer.OfflinePayment();
                dt.Name            = data.Name;
                dt.Amount          = data.Amount;
                dt.ReferenceNumber = data.ReferenceNumber;
                dt.Message         = data.Message;
                dt.UserId          = UserId;
                dt.Address         = data.Address;
                dt.CountryId       = data.CountryId;
                dt.StateId         = data.State;
                dt.CityId          = data.CityId;
                if (data.City != null && data.City != "")
                {
                    dt.City = data.City;
                }
                if (data.CityId > 0)
                {
                    dt.City = BLayer.City.Get(data.CityId).Name;
                }
                dt.Email   = data.Email;
                dt.Mobile  = data.Mobile;
                dt.ZipCode = data.ZipCode;

                dt.Gatewaytype = (int)CLayer.ObjectStatus.Gateway.EBS;
                CLayer.Role.Roles rle   = BLayer.User.GetRole(UserId);
                long   OfflinePaymentId = BLayer.OfflinePayment.SaveInitialPaymentData(dt);
                string PaymentRefNo     = " ";
                long   OffPayId         = BLayer.OfflinePayment.SetPaymentRefNo(OfflinePaymentId, rle, PaymentRefNo);
                return(RedirectToAction("Index", "OfflinePaymentProcess", new { OfflinePaymentId = OfflinePaymentId }));
            }
            catch (Exception ex)
            {
                Common.LogHandler.HandleError(ex);
                return(RedirectToAction("Index", "Home"));
            }
        }
예제 #5
0
        private Models.OfflinePaymentProcessModel LoadData(long OfflinePaymentId)
        {
            Models.OfflinePaymentProcessModel pay = new Models.OfflinePaymentProcessModel();
            long userId = GetUserId();

            CLayer.OfflinePayment PaymentData = BLayer.OfflinePayment.GetOfflinePaymentDetails(OfflinePaymentId);

            if (PaymentData.Amount > 0)
            {
                pay.account_id   = BLayer.Settings.GetValue(CLayer.Settings.PAY_ACCOUNT_ID);
                pay.reference_no = PaymentData.PaymentRefNo;
                pay.amount       = Convert.ToDecimal(PaymentData.Amount).ToString();

                if (System.Configuration.ConfigurationManager.AppSettings.Get("PayMode") == "1")
                {
                    pay.mode = CLayer.Settings.PAYMENT_MODE_TESTING;
                }
                else
                {
                    pay.mode = CLayer.Settings.PAYMENT_MODE_LIVE;
                }


                //    pay.mode = CLayer.Settings.PAYMENT_MODE_LIVE;

                pay.return_url  = BLayer.Settings.GetValue(CLayer.Settings.OFFLINE_PAY_RETURN_URL);
                pay.description = BLayer.Settings.GetValue(CLayer.Settings.PAY_DESCRIPTION);
                string phone;


                //user details
                pay.name    = Common.Utils.CutString((PaymentData.Name).Trim(), CLayer.PaymentGateway.EBS.NAME_LENGTH);
                pay.address = Common.Utils.CutString(PaymentData.Address, CLayer.PaymentGateway.EBS.ADDRESS_LENGTH);
                pay.state   = Common.Utils.CutString(PaymentData.State, CLayer.PaymentGateway.EBS.STATE_LENGTH);
                pay.country = PaymentData.CountryCode;
                pay.city    = Common.Utils.CutString(PaymentData.City, CLayer.PaymentGateway.EBS.CITY_LENGTH);
                if (pay.city == "")
                {
                    pay.city = "city";
                }
                phone = "000000";
                if (PaymentData.Mobile != "")
                {
                    phone = PaymentData.Mobile;
                }
                if (phone.Length < 10)
                {
                    phone = phone.PadLeft(10, '0');
                }
                pay.phone       = Common.Utils.CutString(phone, CLayer.PaymentGateway.EBS.PHONE_LENGTH);
                pay.email       = Common.Utils.CutString(PaymentData.Email, CLayer.PaymentGateway.EBS.EMAIL_LENGTH);
                pay.postal_code = Common.Utils.CutString(PaymentData.ZipCode, CLayer.PaymentGateway.EBS.ZIP_LENGTH);
                if (pay.postal_code == "")
                {
                    pay.postal_code = "00000";
                }


                //customer details
                pay.ship_name    = Common.Utils.CutString((PaymentData.Name).Trim(), CLayer.PaymentGateway.EBS.SHIP_NAME);
                pay.ship_address = Common.Utils.CutString(PaymentData.Address, CLayer.PaymentGateway.EBS.SHIP_ADDR_LENGTH);
                pay.ship_state   = Common.Utils.CutString(PaymentData.State, CLayer.PaymentGateway.EBS.STATE_LENGTH);
                pay.ship_country = PaymentData.CountryCode;
                pay.ship_city    = Common.Utils.CutString(PaymentData.City, CLayer.PaymentGateway.EBS.CITY_LENGTH);
                if (pay.ship_city == "")
                {
                    pay.ship_city = "city";
                }
                phone = "000000";
                if (PaymentData.Mobile != "")
                {
                    phone = PaymentData.Mobile;
                }
                if (phone.Length < 10)
                {
                    phone = phone.PadLeft(10, '0');
                }
                pay.ship_phone       = Common.Utils.CutString(phone, CLayer.PaymentGateway.EBS.PHONE_LENGTH);
                pay.ship_postal_code = Common.Utils.CutString(PaymentData.ZipCode, CLayer.PaymentGateway.EBS.ZIP_LENGTH);
                if (pay.ship_postal_code == "")
                {
                    pay.ship_postal_code = "00000";
                }
                pay.SecurePayment();
                // data.Items = BLayer.BookingItem.GetAllUnderCart(userId);
            }
            else
            {
                pay.amount = "0";
            }

            return(pay);
        }
        public RedirectResult SaveOfflinePaybyPaypal(Models.OfflinePaymentModel data)
        {
            string errorPage = System.Configuration.ConfigurationManager.AppSettings.Get(PAYMENT_FAILED_LINK);

            try
            {
                long UserId = GetUserId();
                CLayer.OfflinePayment dt = new CLayer.OfflinePayment();
                dt.Name            = data.Name;
                dt.Amount          = data.Amount;
                dt.ReferenceNumber = data.ReferenceNumber;
                dt.Message         = data.Message;
                dt.UserId          = UserId;
                dt.Address         = data.Address;
                dt.CountryId       = data.CountryId;
                dt.StateId         = data.State;
                dt.CityId          = data.CityId;
                if (data.City != null && data.City != "")
                {
                    dt.City = data.City;
                }
                if (data.CityId > 0)
                {
                    dt.City = BLayer.City.Get(data.CityId).Name;
                }
                dt.Email       = data.Email;
                dt.Mobile      = data.Mobile;
                dt.ZipCode     = data.ZipCode;
                dt.Gatewaytype = (int)CLayer.ObjectStatus.Gateway.PayPal;
                CLayer.Role.Roles rle   = BLayer.User.GetRole(UserId);
                long   OfflinePaymentId = BLayer.OfflinePayment.SaveInitialPaymentData(dt);
                string PaymentRefNo     = " ";

                string token = "";

                try
                {
                    //load paypal url from settings
                    string     url  = BLayer.Settings.GetValue(CLayer.Settings.PAYPAL_TOKEN_URL);
                    WebRequest rqst = HttpWebRequest.Create(url);

                    rqst.Method = "POST";
                    string user, pwd, signature, returnurl, cancelurl;
                    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.OFFLINE_PAYPAL_RETURN_URL);
                    cancelurl = BLayer.Settings.GetValue(CLayer.Settings.PAYPAL_CANCELURL);

                    CLayer.Currency cur = BLayer.Currency.Get("USD");
                    if (cur == null)
                    {
                        throw new Exception("Cannot find USD conversion rate for Paypal booking");
                    }
                    decimal amount = data.Amount;
                    amount = Math.Round(amount * cur.ConversionRate, 2, MidpointRounding.AwayFromZero);

                    string ProBookDes = data.Message;
                    string postdata   = "METHOD=SetExpressCheckout&VERSION=109.0";
                    postdata = postdata + "&USER="******"&PWD=" + pwd + "&SIGNATURE=" + signature;
                    postdata = postdata + "&PAYMENTREQUEST_0_AMT=" + amount.ToString("F2") + "&PAYMENTREQUEST_0_CURRENCYCODE=USD" + "&PAYMENTREQUEST_0_DESC=" + ProBookDes;
                    postdata = postdata + "&RETURNURL=" + Server.UrlEncode(returnurl);
                    postdata = postdata + "&CANCELURL=" + Server.UrlEncode(cancelurl);
                    postdata = postdata + "&PAYMENTREQUEST_0_PAYMENTACTION=Sale";

                    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;
                    StreamReader rsps    = new StreamReader(rqst.GetResponse().GetResponseStream());
                    string       strRsps = rsps.ReadToEnd();
                    Debug.WriteLine(strRsps);
                    token = PaymentController.GetToken(strRsps);
                    if (token == "")
                    {
                        //(int)CLayer.ObjectStatus.OfflinePyamentStatus.Processing
                        BLayer.OfflinePayment.SetStatus((int)CLayer.ObjectStatus.OfflinePyamentStatus.failed, OfflinePaymentId);
                        return(Redirect(errorPage));
                    }
                }
                catch (Exception ex)
                {
                    Common.LogHandler.HandleError(ex);
                    BLayer.OfflinePayment.SetStatus((int)CLayer.ObjectStatus.OfflinePyamentStatus.failed, OfflinePaymentId);
                    return(Redirect(errorPage));
                }

                string red = BLayer.Settings.GetValue(CLayer.Settings.PAYPAL_REQUEST_URL) + token;

                token = Server.UrlDecode(token);
                //save to database
                PaymentRefNo = token;
                long OffPayId = BLayer.OfflinePayment.SetPaymentRefNo(OfflinePaymentId, rle, PaymentRefNo);
                BLayer.OfflinePayment.SetStatus((int)CLayer.ObjectStatus.OfflinePyamentStatus.Processing, OfflinePaymentId);
                return(Redirect(red));
            }
            catch (Exception ex)
            {
                Common.LogHandler.HandleError(ex);
                return(Redirect(errorPage));
            }
        }
예제 #7
0
 public static long SaveInitialPaymentData(CLayer.OfflinePayment data)
 {
     DataLayer.OfflinePayment bk = new DataLayer.OfflinePayment();
     //if (data.PaymentRefNo == "") data.PaymentRefNo = GetRefNo(data.ReferenceNumber,UserRole);
     return(bk.SaveInitialPaymentData(data));
 }