示例#1
0
 private void PayNowLive()
 {
     try
     {
         Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Processing payment... ");
         if (Session["PayDetailsTemp"] != null)
         {
             VPCRequest conn = new VPCRequest("https://vpos.amxvpos.com/vpcpay");
             conn.setSecureSecret("44DD98D32ECD3C1AA7F12A1D0F8B41EA");
             conn.addDigitialOrderField("vpc_Version", "1");
             conn.addDigitialOrderField("vpc_ReturnURL", System.Configuration.ConfigurationManager.AppSettings["KoDTicketingIPAddress"] + "Payment/Web/CR.aspx");                
             conn.addDigitialOrderField("vpc_AccessCode", "0FE6FE77");
             conn.addDigitialOrderField("vpc_Merchant", "9824533848");
             conn.addDigitialOrderField("vpc_Command", "pay");
             decimal amt = decimal.Parse(Request.QueryString["amt"].ToString()) * 100;
             String trnid = Request.QueryString["transid"].ToString();
             String orderinfo = Request.QueryString["show"].ToString();
             String Amt = amt.ToString();
             if (Amt.Contains("."))
                 Amt = Amt.Replace(".00", "");
             conn.addDigitialOrderField("vpc_MerchTxnRef", trnid.ToString());
             conn.addDigitialOrderField("vpc_OrderInfo", orderinfo.ToString());
             conn.addDigitialOrderField("vpc_Amount", Amt.ToString());                
             String URL = conn.Create3PartyQueryString();
             Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Redirecting to: " + URL );
             Response.Redirect(URL, false);
         }
     }
     catch (Exception ex)
     {
         Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Error in AmEx Payment: "+ ex.Message);
     }
 }
示例#2
0
        private void PayNowTest()
        {
            try
            {
                VPCRequest conn = new VPCRequest("https://vpos.amxvpos.com/vpcpay");
                conn.setSecureSecret("C12DC6FE16681E9DD3211D2BB0C0BBA2");
                conn.addDigitialOrderField("vpc_Version", "1");
                //url needed for the agent module to replace here        
               // conn.addDigitialOrderField("vpc_ReturnURL", "http://localhost:2483/Payment/Amex/CR.aspx");
              //  conn.addDigitialOrderField("vpc_ReturnURL", "http://122.248.250.72/Payment/Amex/CR.aspx");
                conn.addDigitialOrderField("vpc_ReturnURL", "http://royalty.kingdomofdreams.in/Payment/Amex/CR.aspx");


                conn.addDigitialOrderField("vpc_AccessCode", "D30639FF");
                conn.addDigitialOrderField("vpc_Merchant", "TEST9824533848");
                conn.addDigitialOrderField("vpc_Command", "pay");

                decimal amt = decimal.Parse(Request.QueryString["amt"].ToString()) * 100;
                String trnid = Request.QueryString["transid"].ToString();
                String orderinfo = Request.QueryString["show"].ToString();
                String Amt = amt.ToString();
                if (Amt.Contains("."))
                    Amt = Amt.Replace(".00", "");
                conn.addDigitialOrderField("vpc_MerchTxnRef", trnid.ToString());
                conn.addDigitialOrderField("vpc_OrderInfo", orderinfo.ToString());
                conn.addDigitialOrderField("vpc_Amount", Amt.ToString());
                // Perform the transaction
                String URL = conn.Create3PartyQueryString();
                Response.Redirect(URL);
            }
            catch (Exception ex)
            { }

        }
示例#3
0
 public void makePay(Accept acc)
 {
     string ipaddress;
     ipaddress = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
     if (ipaddress == "" || ipaddress == null)
     {
         ipaddress = Request.ServerVariables["REMOTE_ADDR"];
     }
     string SECURE_SECRET = "0C1D637C06AC75FDE9D7B4B550A3A641";
     // Khoi tao lop thu vien va gan gia tri cac tham so gui sang cong thanh toan
     VPCRequest conn = new VPCRequest("https://onepay.vn/onecomm-pay/vpc.op");
     conn.SetSecureSecret(SECURE_SECRET);
     // Add the Digital Order Fields for the functionality you wish to use
     // Core Transaction Fields
     conn.AddDigitalOrderField("Title", "Mibo.vn - Cong thanh toan OnePay");
     conn.AddDigitalOrderField("vpc_Locale", "vn");//Chon ngon ngu hien thi tren cong thanh toan (vn/en)
     conn.AddDigitalOrderField("vpc_Version", "2");
     conn.AddDigitalOrderField("vpc_Command", "pay");
     conn.AddDigitalOrderField("vpc_Merchant", "NGUYENPHONG");
     conn.AddDigitalOrderField("vpc_AccessCode", "GWJBCBJX");
     conn.AddDigitalOrderField("vpc_MerchTxnRef", genId);
     conn.AddDigitalOrderField("vpc_OrderInfo", "Tin Hoc Nguyen Phong - Mibo.vn");
     conn.AddDigitalOrderField("vpc_Amount", acc.TotalAmt.ToString()+"00");
     conn.AddDigitalOrderField("vpc_Currency", "VND");
     conn.AddDigitalOrderField("vpc_ReturnURL", "http://mibo.vn/pay-process.aspx");
     // Dia chi IP cua khach hang
     conn.AddDigitalOrderField("vpc_TicketNo", ipaddress);
     // Chuyen huong trinh duyet sang cong thanh toan
     String url = conn.Create3PartyQueryString();
     Page.Response.Redirect(url);
 }
示例#4
0
    private void PayNowTest()
    {
        try
        {
            VPCRequest connVPCAMEX = new VPCRequest("https://vpos.amxvpos.com/vpcpay");
            connVPCAMEX.setSecureSecret("C12DC6FE16681E9DD3211D2BB0C0BBA2");
            connVPCAMEX.addDigitialOrderField("vpc_Version", "1");
            //url needed for the agent module to replace here        
            connVPCAMEX.addDigitialOrderField("vpc_ReturnURL", System.Configuration.ConfigurationManager.AppSettings["KoDTicketingIPAddress"] + "Payment/Web/CR.aspx");
            connVPCAMEX.addDigitialOrderField("vpc_AccessCode", "D30639FF");
            connVPCAMEX.addDigitialOrderField("vpc_Merchant", "TEST9824533848");
            connVPCAMEX.addDigitialOrderField("vpc_Command", "pay");


            string[] PayDetails = Session["PayDetailsTemp"].ToString().Split('|');
            //decimal amt = (decimal.Parse(PayDetails[2])) * 100;
            //String trnid = PayDetails[1];
            //String orderinfo = PayDetails[3];
            decimal amt = decimal.Parse(Request.QueryString["amt"].ToString()) * 100;
            String trnid = Request.QueryString["transid"].ToString();
            String orderinfo = Request.QueryString["show"].ToString();
            String pin = Request.QueryString["pin"].ToString();
            String street = Request.QueryString["street"].ToString();
            String city = Request.QueryString["city"].ToString();
            String state = Request.QueryString["state"].ToString();
            String tital = Request.QueryString["title"].ToString();
            String fname = Request.QueryString["fname"].ToString();
            String mname = Request.QueryString["mname"].ToString();
            String lname = Request.QueryString["lname"].ToString();
            String country = Request.QueryString["country"].ToString();
            String Amt = amt.ToString();
            if (Amt.Contains("."))
                Amt = Amt.Replace(".00", "");
            connVPCAMEX.addDigitialOrderField("vpc_MerchTxnRef", trnid.ToString());
            connVPCAMEX.addDigitialOrderField("vpc_OrderInfo", orderinfo.ToString());
            connVPCAMEX.addDigitialOrderField("vpc_Amount", Amt.ToString());
            connVPCAMEX.addDigitialOrderField("vpc_AVS_Street01", street);
            connVPCAMEX.addDigitialOrderField("vpc_AVS_PostCode", pin);

            connVPCAMEX.addDigitialOrderField("vpc_BillTo_Title", tital);
            connVPCAMEX.addDigitialOrderField("vpc_BillTo_Firstname", fname);
            connVPCAMEX.addDigitialOrderField("vpc_BillTo_Middlename", mname);
            connVPCAMEX.addDigitialOrderField("vpc_BillTo_Lastname", lname);
            connVPCAMEX.addDigitialOrderField("vpc_AVS_City", city);
            connVPCAMEX.addDigitialOrderField("vpc_AVS_StateProv", state);
            connVPCAMEX.addDigitialOrderField("vpc_AVS_Country", country);

            // Perform the transaction
            String URL = connVPCAMEX.Create3PartyQueryString();
            Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write(URL);
            Response.Redirect(URL, false);
        }
        catch (Exception ex)
        {
            Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Amex Test Payment" + ex.Message);
        }

    }
示例#5
0
 private void PayNowLive()
 {
     try
     {
         Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Processing payment... ");
         if (Session["PayDetailsTemp"] != null)
         {
             VPCRequest conn = new VPCRequest("https://vpos.amxvpos.com/vpcpay");
             conn.setSecureSecret("44DD98D32ECD3C1AA7F12A1D0F8B41EA");
             conn.addDigitialOrderField("vpc_Version", "1");
             conn.addDigitialOrderField("vpc_ReturnURL", System.Configuration.ConfigurationManager.AppSettings["KoDTicketingIPAddress"] + "Payment/Web/CR.aspx");                
             conn.addDigitialOrderField("vpc_AccessCode", "0FE6FE77");
             conn.addDigitialOrderField("vpc_Merchant", "9824533848");
             conn.addDigitialOrderField("vpc_Command", "pay");
             decimal amt = decimal.Parse(Request.QueryString["amt"].ToString()) * 100;
             String trnid = Request.QueryString["transid"].ToString();
             String orderinfo = Request.QueryString["show"].ToString();
             String pin = Request.QueryString["pin"].ToString();
             String street = Request.QueryString["street"].ToString();
             String city = Request.QueryString["city"].ToString();
             String state = Request.QueryString["state"].ToString();
             String title = Request.QueryString["title"].ToString();
             String fname = Request.QueryString["fname"].ToString();
             String mname = Request.QueryString["mname"].ToString();
             String lname = Request.QueryString["lname"].ToString();
             String country = Request.QueryString["country"].ToString();
             String Amt = amt.ToString();
             if (Amt.Contains("."))
                 Amt = Amt.Replace(".00", "");
             conn.addDigitialOrderField("vpc_MerchTxnRef", trnid.ToString());
             conn.addDigitialOrderField("vpc_OrderInfo", orderinfo.ToString());
             conn.addDigitialOrderField("vpc_Amount", Amt.ToString());    
             //**************For Safe Key and AAV Integration***************//
             conn.addDigitialOrderField("vpc_AVS_Street01", street);
             conn.addDigitialOrderField("vpc_AVS_PostCode", pin);
             conn.addDigitialOrderField("vpc_BillTo_Title", title);
             conn.addDigitialOrderField("vpc_BillTo_Firstname", fname);
             conn.addDigitialOrderField("vpc_BillTo_Middlename", mname);
             conn.addDigitialOrderField("vpc_BillTo_Lastname", lname);
             conn.addDigitialOrderField("vpc_AVS_City", city);
             conn.addDigitialOrderField("vpc_AVS_StateProv", state);
             conn.addDigitialOrderField("vpc_AVS_Country", country);
             //*********************************************************//
             String URL = conn.Create3PartyQueryString();
             Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Redirecting to: " + URL );
             Response.Redirect(URL, false);
         }
     }
     catch (Exception ex)
     {
         Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Error in AmEx Payment: "+ ex.Message);
     }
 }
        public static string Build3PartyRequestUrl(VPCRequest request, string secureHashCode)
        {
            if (request == null || secureHashCode == null)
            {
                return(null);
            }
            var sortedDictionary = request.ToVPCSortedDictionary();
            var queryString      = sortedDictionary.ToUrlQueryString();
            var secureHash       = HashHelper.CreateHMACSHA256Signature(secureHashCode, queryString);

            return($"{request.SUBMIT_PAYMENT_URL}?{queryString}&vpc_SecureHash={secureHash}&vpc_SecureHashType=SHA256");
        }
示例#7
0
        public ActionResult OnepayResponse()
        {
            string hashvalidateResult = "";

            // Khoi tao lop thu vien
            VPCRequest conn = new VPCRequest(OnepayProperty.URL_ONEPAY_TEST);

            conn.SetSecureSecret(OnepayProperty.HASH_CODE);

            // Xu ly tham so tra ve va du lieu ma hoa
            string a = "https://" + Request.Host.ToString() + "/Onepay/Onepay" + Request.QueryString.ToString();

            hashvalidateResult = conn.Process3PartyResponse(new Uri(a).ParseQueryString());

            // Lay tham so tra ve tu cong thanh toan
            string vpc_TxnResponseCode = conn.GetResultField("vpc_TxnResponseCode");
            string amount          = conn.GetResultField("vpc_Amount");
            string localed         = conn.GetResultField("vpc_Locale");
            string command         = conn.GetResultField("vpc_Command");
            string version         = conn.GetResultField("vpc_Version");
            string cardType        = conn.GetResultField("vpc_Card");
            string orderInfo       = conn.GetResultField("vpc_OrderInfo");
            string merchantID      = conn.GetResultField("vpc_Merchant");
            string authorizeID     = conn.GetResultField("vpc_AuthorizeId");
            string merchTxnRef     = conn.GetResultField("vpc_MerchTxnRef");
            string transactionNo   = conn.GetResultField("vpc_TransactionNo");
            string acqResponseCode = conn.GetResultField("vpc_AcqResponseCode");
            string txnResponseCode = vpc_TxnResponseCode;
            string message         = conn.GetResultField("vpc_Message");

            // Kiem tra 2 tham so tra ve quan trong nhat
            if (hashvalidateResult == "CORRECTED" && txnResponseCode.Trim() == "0")
            {
                Khachhang kh = db.Khachhang.Where(x => x.Email == HttpContext.Session.Get <string>("user")).SingleOrDefault();
                Hoadon    hd = new Hoadon
                {
                    Ngaydat       = DateTime.Now,
                    Ngaygiao      = DateTime.Now.AddDays(7),
                    Cachthanhtoan = "Onepay"
                };
                hd.Makh        = kh.Makh;
                hd.Matrangthai = 1;
                return(RedirectToAction("DoCheckOut", "CheckOut", hd));
                //return View("PaySuccess");
            }
            else
            {
                return(RedirectToAction("DoCheckOut", "CheckOut", null));
                //return Content("PayUnSuccess");
            }
        }
    protected void btnPay_Click(object sender, EventArgs e)
    {
        bool isHuman = ExampleCaptcha.Validate(CaptchaCodeTextBox.Text);

        CaptchaCodeTextBox.Text = null; // clear previous user input

        if (!isHuman)
        {
            // TODO: Captcha validation failed, show error message
            lbl_capcha.Text      = "من فضلك ادخل الحروف مرة اخرى";
            lbl_capcha.ForeColor = System.Drawing.Color.Red;
        }
        else
        {
            pnlRequest.Visible = false;
            try
            {
                decimal FinalAmount = decimal.Parse(vpc_Amount.Text) * 100;
                // Connect to the Payment Client
                VPCRequest conn = new VPCRequest();
                // Add the Digital Order Fields for the functionality you wish to use
                // Core Transaction Fields
                conn.AddDigitalOrderField("vpc_Version", conn.Version);
                conn.AddDigitalOrderField("vpc_Command", conn.Command);
                conn.AddDigitalOrderField("vpc_AccessCode", conn.AccessCode);
                conn.AddDigitalOrderField("vpc_Merchant", conn.MerchantID);
                conn.AddDigitalOrderField("vpc_ReturnURL", conn.FormatReturnURL(Request.Url.Scheme, Request.Url.Host, Request.Url.Port, Request.ApplicationPath));
                conn.AddDigitalOrderField("vpc_MerchTxnRef", (DB.GetMaxIdahly() + 1).ToString());
                conn.AddDigitalOrderField("vpc_OrderInfo", vpc_OrderInfo.Text);
                conn.AddDigitalOrderField("vpc_Amount", FinalAmount.ToString());
                conn.AddDigitalOrderField("vpc_Currency", Currency_List.Text);
                conn.AddDigitalOrderField("vpc_Locale", drop_Project.SelectedValue);
                // Perform the transaction
                String url = conn.Create3PartyQueryString();
                Page.Response.Redirect(url);
            }
            catch (Exception ex)
            {
                // Capture and Display the error information
                lblErrorMessage.Text = ex.Message + (ex.InnerException != null ? ex.InnerException.Message : "");
                pnlError.Visible     = true;
                try
                {
                }
                catch (Exception ex2)
                {
                    // Do Nothing
                }
            }
        }
    }
示例#9
0
        public ActionResult MessageOnePay(string vpc_OrderInfo, string vpc_TxnResponseCode, string vpc_SecureHash)
        {
            PaymentConfigOnePay paymentConfig = new PaymentConfigOnePay();

            using (var db = new MyDbDataContext())
            {
                paymentConfig = db.PaymentConfigOnePays.FirstOrDefault();
                SendEmail sendEmail =
                    db.SendEmails.FirstOrDefault(
                        a => a.Type == TypeSendEmail.BookTour && a.LanguageID == Request.Cookies["LanguageID"].Value);

                int    state   = 0;
                string message = "";
                var    conn    = new VPCRequest("https://onepay.vn/vpcpay/vpcpost.op");
                conn.SetSecureSecret(paymentConfig.Hashcode);
                // Xu ly tham so tra ve va kiem tra chuoi du lieu ma hoa
                string hashvalidateResult = conn.Process3PartyResponse(Request.QueryString);
                // Lay gia tri tham so tra ve tu cong thanh toan
                var merchTxnRef = conn.GetResultField("vpc_MerchTxnRef", "Unknown");
                if (hashvalidateResult == "CORRECTED" && vpc_TxnResponseCode.Trim() == "0")
                {
                    message          = "Transaction was paid successful";
                    state            = 1;
                    ViewBag.Messages = sendEmail.Success;
                }
                else if (hashvalidateResult == "INVALIDATED" && vpc_TxnResponseCode.Trim() == "0")
                {
                    message          = "Transaction is pending";
                    state            = 2;
                    ViewBag.Messages = sendEmail.Error;
                }
                else
                {
                    message          = "Transaction was not paid successful";
                    state            = 3;
                    ViewBag.Messages = sendEmail.Error;
                }
                ViewBag.Message = message;
                ViewBag.State   = state;
                if (state == 1)
                {
                    // do something
                    return(View());
                }
                return(View());
            }
        }
        // GET: KetQuaThanhToan
        //public ActionResult IndexVpc_dr()
        //{
        //    string SECURE_SECRET = "A3EFDFABA8653DF2342E8DAC29B51AF0";
        //    string hashvalidateResult = "";
        //    // Khoi tao lop thu vien
        //    VPCRequest conn = new VPCRequest("http://onepay.vn");
        //    conn.SetSecureSecret(SECURE_SECRET);
        //    // Xu ly tham so tra ve va kiem tra chuoi du lieu ma hoa
        //    hashvalidateResult = conn.Process3PartyResponse(Request.QueryString);

        //    // Lay gia tri tham so tra ve tu cong thanh toan
        //    String vpc_TxnResponseCode = conn.GetResultField("vpc_TxnResponseCode", "Unknown");
        //    string amount = conn.GetResultField("vpc_Amount", "Unknown");
        //    string localed = conn.GetResultField("vpc_Locale", "Unknown");
        //    string command = conn.GetResultField("vpc_Command", "Unknown");
        //    string version = conn.GetResultField("vpc_Version", "Unknown");
        //    string cardBin = conn.GetResultField("vpc_Card", "Unknown");
        //    string orderInfo = conn.GetResultField("vpc_OrderInfo", "Unknown");
        //    string merchantID = conn.GetResultField("vpc_Merchant", "Unknown");
        //    string authorizeID = conn.GetResultField("vpc_AuthorizeId", "Unknown");
        //    string merchTxnRef = conn.GetResultField("vpc_MerchTxnRef", "Unknown");
        //    string transactionNo = conn.GetResultField("vpc_TransactionNo", "Unknown");
        //    string txnResponseCode = vpc_TxnResponseCode;
        //    string message = conn.GetResultField("vpc_Message", "Unknown");
        //    //int loop1;
        //    int result = -1;
        //    long maDDHString = 0;
        //    // Sua lai ham check chuoi ma hoa du lieu
        //    if (hashvalidateResult == "CORRECTED" && txnResponseCode.Trim() == "0")
        //    {
        //        maDDHString = long.Parse(merchTxnRef);
        //        result = 0;
        //    }
        //    else if (hashvalidateResult == "INVALIDATED" && txnResponseCode.Trim() == "0")
        //    {
        //        result = 1;
        //    }
        //    else
        //    {
        //        result = 2;
        //    }
        //    TempData["MaDonHang"] = maDDHString;
        //    TempData["result"] = result;
        //    return RedirectToAction("Index", "KetQuaThanhToan");
        //}
        public ActionResult IndexVpc_drr()
        {
            string SECURE_SECRET      = "6D0870CDE5F24F34F3915FB0045120DB";
            string hashvalidateResult = "";
            // Khoi tao lop thu vien
            VPCRequest conn = new VPCRequest("http://onepay.vn");

            conn.SetSecureSecret(SECURE_SECRET);
            // Xu ly tham so tra ve va kiem tra chuoi du lieu ma hoa
            hashvalidateResult = conn.Process3PartyResponse(Request.QueryString);
            // Lay gia tri tham so tra ve tu cong thanh toan
            String vpc_TxnResponseCode = conn.GetResultField("vpc_TxnResponseCode", "Unknown");
            string amount          = conn.GetResultField("vpc_Amount", "Unknown");
            string localed         = conn.GetResultField("vpc_Locale", "Unknown");
            string command         = conn.GetResultField("vpc_Command", "Unknown");
            string version         = conn.GetResultField("vpc_Version", "Unknown");
            string cardType        = conn.GetResultField("vpc_Card", "Unknown");
            string orderInfo       = conn.GetResultField("vpc_OrderInfo", "Unknown");
            string merchantID      = conn.GetResultField("vpc_Merchant", "Unknown");
            string authorizeID     = conn.GetResultField("vpc_AuthorizeId", "Unknown");
            string merchTxnRef     = conn.GetResultField("vpc_MerchTxnRef", "Unknown");
            string transactionNo   = conn.GetResultField("vpc_TransactionNo", "Unknown");
            string acqResponseCode = conn.GetResultField("vpc_AcqResponseCode", "Unknown");
            string txnResponseCode = vpc_TxnResponseCode;
            string message         = conn.GetResultField("vpc_Message", "Unknown");
            //int loop1;
            int  result      = -1;
            long maDDHString = 0;

            // Sua lai ham check chuoi ma hoa du lieu
            if (hashvalidateResult == "CORRECTED" && txnResponseCode.Trim() == "0")
            {
                maDDHString = long.Parse(merchTxnRef);
                result      = 0;
            }
            else if (hashvalidateResult == "INVALIDATED" && txnResponseCode.Trim() == "0")
            {
                result = 1;
            }
            else
            {
                result = 2;
            }
            TempData["MaDonHang"] = maDDHString;
            TempData["result"]    = result;
            return(RedirectToAction("Index", "KetQuaThanhToan"));
        }
        public string GetRedirectUrl(PaymentMethod config, Guid paymentTransactionId, string orderCode, long amount, string ipAddress,
                                     Guid languageId, string siteDomainUrl)
        {
            var siteUrl   = (string.IsNullOrEmpty(siteDomainUrl) ? "http://onepay.vn" : siteDomainUrl).Trim(new[] { ' ', '/' });
            var returnUrl = Config.ReturnUrl;

            if (returnUrl.IndexOf("http://", StringComparison.OrdinalIgnoreCase) < 0 ||
                returnUrl.IndexOf("https://", StringComparison.OrdinalIgnoreCase) < 0)
            {
                returnUrl = siteUrl + "/" + Config.ReturnUrl.Trim(new[] { ' ', '/', ':' });
            }

            string secureSecret = Config.SecureSecret;

            // Khoi tao lop thu vien va gan gia tri cac tham so gui sang cong thanh toan
            VPCRequest conn = new VPCRequest(Config.ApiPayUrl);

            conn.SetSecureSecret(secureSecret);
            // Add the Digital Order Fields for the functionality you wish to use
            // Core Transaction Fields
            conn.AddDigitalOrderField("Title", "onepay paygate");
            conn.AddDigitalOrderField("vpc_Locale", "en");//Chon ngon ngu hien thi tren cong thanh toan (vn/en)
            conn.AddDigitalOrderField("vpc_Version", Config.PayVersion);
            conn.AddDigitalOrderField("vpc_Command", "pay");
            conn.AddDigitalOrderField("vpc_Merchant", Config.Merchant);
            conn.AddDigitalOrderField("vpc_AccessCode", Config.AccessCode);
            conn.AddDigitalOrderField("vpc_MerchTxnRef", paymentTransactionId.ToString());
            conn.AddDigitalOrderField("vpc_OrderInfo", orderCode);
            conn.AddDigitalOrderField("vpc_Amount", (amount * 100).ToString());
            conn.AddDigitalOrderField("vpc_Currency", "VND");
            conn.AddDigitalOrderField("vpc_ReturnURL", returnUrl);
            // Thong tin them ve khach hang. De trong neu khong co thong tin
            conn.AddDigitalOrderField("vpc_SHIP_Street01", "");  //"194 Tran Quang Khai");
            conn.AddDigitalOrderField("vpc_SHIP_Provice", "");   //"Hanoi");
            conn.AddDigitalOrderField("vpc_SHIP_City", "");      //"Hanoi");
            conn.AddDigitalOrderField("vpc_SHIP_Country", "");   //"Vietnam");
            conn.AddDigitalOrderField("vpc_Customer_Phone", ""); //"043966668");
            conn.AddDigitalOrderField("vpc_Customer_Email", ""); //"*****@*****.**");
            conn.AddDigitalOrderField("vpc_Customer_Id", "");    // "onepay_paygate");
            // Dia chi IP cua khach hang
            conn.AddDigitalOrderField("vpc_TicketNo", ipAddress);
            // Chuyen huong trinh duyet sang cong thanh toan
            String url = conn.Create3PartyQueryString();

            return(url);
        }
示例#12
0
        public IActionResult OnePayResponseMienNam()
        {
            string hashValidateResult = "";

            //khởi tạo lớp thư viện
            VPCRequest conn = new VPCRequest(OnePayProperties.URL_ONEPAY_TEST);

            conn.SetSecureSecret(OnePayProperties.HASH_CODE);

            //lấy kết quả từ url được trả về từ cổng thanh toán
            hashValidateResult = conn.Process3rdPartyResponse(HttpUtility.ParseQueryString(Request.QueryString.ToString()));

            //lấy tham số trả về từ cổng thanh toán
            string vpc_TxnResponseCode = conn.GetResponseData("vpc_TxnResponseCode");
            string amount          = conn.GetResponseData("vpc_Amount");
            string localed         = conn.GetResponseData("vpc_Locale");
            string command         = conn.GetResponseData("vpc_Command");
            string version         = conn.GetResponseData("vpc_Version");
            string cardType        = conn.GetResponseData("vpc_Card");
            string orderInfo       = conn.GetResponseData("vpc_OrderInfo");
            string merchantID      = conn.GetResponseData("vpc_Merchant");
            string authorizeID     = conn.GetResponseData("vpc_AuthorizeId");
            string merchTxnRef     = conn.GetResponseData("vpc_MerchTxnRef");
            string transactionNo   = conn.GetResponseData("vpc_TransactionNo");
            string acqResponseCode = conn.GetResponseData("vpc_AcqResponseCode");
            string txnResponseCode = vpc_TxnResponseCode;
            string message         = conn.GetResponseData("vpc_Message");

            if (hashValidateResult == "CORRECTED" && txnResponseCode.Trim() == "0")
            {
                var hd = _hoaDonService.GetHoaDon();
                hd.Tinhtrang = 1;
                _db.Hoadons.Update(hd);
                _db.SaveChanges();
                return(RedirectToAction("ThanhToanTourMienNamThanhCong", "OnePay"));
            }
            else if (hashValidateResult == "INVALIDATED" && txnResponseCode.Trim() == "0")
            {
                return(View("/Views/OnePay/ThanhToanDangGiaiQuyet.cshtml"));
            }
            else
            {
                return(View("/Views/OnePay/ThanhToanKhongThanhCong.cshtml"));
            }
        }
示例#13
0
        public ActionResult OnepayResponse()
        {
            string hashvalidateResult = "";

            // Khoi tao lop thu vien
            VPCRequest conn = new VPCRequest(OnePayProperty.Url_ONEPAY_TEST);

            conn.SetSecureSecret(OnePayProperty.HASH_CODE);

            // Xu ly tham so tra ve va du lieu ma hoa
            hashvalidateResult = conn.Process3PartyResponse(Request.QueryString);

            // Lay tham so tra ve tu cong thanh toan
            string vpc_TxnResponseCode = conn.GetResultField("vpc_TxnResponseCode");
            string amount          = conn.GetResultField("vpc_Amount");
            string localed         = conn.GetResultField("vpc_Locale");
            string command         = conn.GetResultField("vpc_Command");
            string version         = conn.GetResultField("vpc_Version");
            string cardType        = conn.GetResultField("vpc_Card");
            string orderInfo       = conn.GetResultField("vpc_OrderInfo");
            string merchantID      = conn.GetResultField("vpc_Merchant");
            string authorizeID     = conn.GetResultField("vpc_AuthorizeId");
            string merchTxnRef     = conn.GetResultField("vpc_MerchTxnRef");
            string transactionNo   = conn.GetResultField("vpc_TransactionNo");
            string acqResponseCode = conn.GetResultField("vpc_AcqResponseCode");
            string txnResponseCode = vpc_TxnResponseCode;
            string message         = conn.GetResultField("vpc_Message");

            // Kiem tra 2 tham so tra ve quan trong nhat
            if (hashvalidateResult == "CORRECTED" && txnResponseCode.Trim() == "0")
            {
                return(RedirectToAction("XacNhanGioHang", "GioHang", new { id = 1 }));
            }
            else if (hashvalidateResult == "INVALIDATED" && txnResponseCode.Trim() == "0")
            {
                return(View("PayPending"));
            }
            else
            {
                return(RedirectToAction("DatHang", "GioHang"));
            }
        }
示例#14
0
        private void PayNowLive()
        {
            try
            {

                VPCRequest conn = new VPCRequest("https://vpos.amxvpos.com/vpcpay");
                conn.setSecureSecret("44DD98D32ECD3C1AA7F12A1D0F8B41EA");
                conn.addDigitialOrderField("vpc_Version", "1");
                //url needed for the agent module to replace here
               // conn.addDigitialOrderField("vpc_ReturnURL", "http://msticket.kingdomofdreams.in/Payment/Web/CR.aspx");
                conn.addDigitialOrderField("vpc_ReturnURL", "http://royalty.kingdomofdreams.in/Payment/Amex/CR.aspx");
                conn.addDigitialOrderField("vpc_AccessCode", "0FE6FE77");
                conn.addDigitialOrderField("vpc_Merchant", "9824533848");
                conn.addDigitialOrderField("vpc_Command", "pay");

                //Updated on May 04, 2011
                //string[] PayDetails = Session["PayDetailsTemp"].ToString().Split('|');
                //decimal amt = (decimal.Parse(PayDetails[2])) * 100;
                //String trnid = PayDetails[1];
                //String orderinfo = PayDetails[3];



                decimal amt = decimal.Parse(Request.QueryString["amt"].ToString()) * 100;
                String trnid = Request.QueryString["transid"].ToString();
                String orderinfo = Request.QueryString["show"].ToString();
                String Amt = amt.ToString();
                if (Amt.Contains("."))
                    Amt = Amt.Replace(".00", "");

                conn.addDigitialOrderField("vpc_MerchTxnRef", trnid.ToString());
                conn.addDigitialOrderField("vpc_OrderInfo", orderinfo.ToString());
                conn.addDigitialOrderField("vpc_Amount", Amt.ToString());
                // Perform the transaction
                String URL = conn.Create3PartyQueryString();
                Response.Redirect(URL);

            }
            catch (Exception ex)
            { }
        }
示例#15
0
        private void PayNowLive()
        {
            try
            {
                VPCRequest conn = new VPCRequest("https://vpos.amxvpos.com/vpcpay");
                conn.setSecureSecret("44DD98D32ECD3C1AA7F12A1D0F8B41EA");
                conn.addDigitialOrderField("vpc_Version", "1");
                //url needed for the agent module to replace here
                // conn.addDigitialOrderField("vpc_ReturnURL", "http://msticket.kingdomofdreams.in/Payment/Web/CR.aspx");
                conn.addDigitialOrderField("vpc_ReturnURL", "http://royalty.kingdomofdreams.in/Payment/Amex/CR.aspx");
                conn.addDigitialOrderField("vpc_AccessCode", "0FE6FE77");
                conn.addDigitialOrderField("vpc_Merchant", "9824533848");
                conn.addDigitialOrderField("vpc_Command", "pay");

                //Updated on May 04, 2011
                //string[] PayDetails = Session["PayDetailsTemp"].ToString().Split('|');
                //decimal amt = (decimal.Parse(PayDetails[2])) * 100;
                //String trnid = PayDetails[1];
                //String orderinfo = PayDetails[3];



                decimal amt       = decimal.Parse(Request.QueryString["amt"].ToString()) * 100;
                String  trnid     = Request.QueryString["transid"].ToString();
                String  orderinfo = Request.QueryString["show"].ToString();
                String  Amt       = amt.ToString();
                if (Amt.Contains("."))
                {
                    Amt = Amt.Replace(".00", "");
                }

                conn.addDigitialOrderField("vpc_MerchTxnRef", trnid.ToString());
                conn.addDigitialOrderField("vpc_OrderInfo", orderinfo.ToString());
                conn.addDigitialOrderField("vpc_Amount", Amt.ToString());
                // Perform the transaction
                String URL = conn.Create3PartyQueryString();
                Response.Redirect(URL);
            }
            catch (Exception ex)
            { }
        }
示例#16
0
        public override void OnNavigatingTo(NavigationParameters parameters)
        {
            card = parameters.GetValue <DataCardModel>(string.Empty);
            VPCRequest conn = new VPCRequest();

            conn.AddDigitalOrderField("vpc_Version", SADM.Settings.AppConfiguration.Values.vpc_Version);
            conn.AddDigitalOrderField("vpc_Command", SADM.Settings.AppConfiguration.Values.vpc_Command);
            conn.AddDigitalOrderField("vpc_AccessCode", SADM.Settings.AppConfiguration.Values.vpc_AccessCode);
            conn.AddDigitalOrderField("vpc_Merchant", SADM.Settings.AppConfiguration.Values.vpc_Merchant);
            conn.AddDigitalOrderField("vpc_ReturnURL", "http://localhost:8080/api/");
            conn.AddDigitalOrderField("vpc_MerchTxnRef", "PruebaRfId2529");
            conn.AddDigitalOrderField("vpc_OrderInfo", "2529");
            conn.AddDigitalOrderField("vpc_Amount", (card.Amount * 100).ToString());
            conn.AddDigitalOrderField("vpc_Currency", SADM.Settings.AppConfiguration.Values.vpc_Currency);
            //conn.AddDigitalOrderField("vpc_CustomPaymentPlanPlanId", vpc_CustomPaymentPlanPlanId.Text);
            conn.AddDigitalOrderField("vpc_Locale", SADM.Settings.AppConfiguration.Values.vpc_Locale);
            // Perform the transaction
            string url = conn.Create3PartyQueryString();

            url    = "https://banamex.dialectpayments.com/vpcpay" + url;
            UrlWeb = url;
        }
示例#17
0
    private void PayNowTest()
    {
        try
        {
            VPCRequest connVPCAMEX = new VPCRequest("https://vpos.amxvpos.com/vpcpay");
            connVPCAMEX.setSecureSecret("C12DC6FE16681E9DD3211D2BB0C0BBA2");
            connVPCAMEX.addDigitialOrderField("vpc_Version", "1");
            //url needed for the agent module to replace here
            connVPCAMEX.addDigitialOrderField("vpc_ReturnURL", System.Configuration.ConfigurationManager.AppSettings["KoDTicketingIPAddress"] + "RoyalCard/Account/Payment/Web/CR.aspx");
            connVPCAMEX.addDigitialOrderField("vpc_AccessCode", "D30639FF");
            connVPCAMEX.addDigitialOrderField("vpc_Merchant", "TEST9824533848");
            connVPCAMEX.addDigitialOrderField("vpc_Command", "pay");


            string[] PayDetails = Session["PayDetailsTemp"].ToString().Split('|');
            decimal  amt        = (decimal.Parse(PayDetails[2])) * 100;
            String   trnid      = PayDetails[1];
            String   orderinfo  = PayDetails[3];
            //decimal amt = decimal.Parse(Request.QueryString["amt"].ToString()) * 100;
            //String trnid = Request.QueryString["transid"].ToString();
            //String orderinfo = Request.QueryString["show"].ToString();
            String Amt = amt.ToString();
            if (Amt.Contains("."))
            {
                Amt = Amt.Replace(".00", "");
            }
            connVPCAMEX.addDigitialOrderField("vpc_MerchTxnRef", trnid.ToString());
            connVPCAMEX.addDigitialOrderField("vpc_OrderInfo", orderinfo.ToString());
            connVPCAMEX.addDigitialOrderField("vpc_Amount", Amt.ToString());
            // Perform the transaction
            String URL = connVPCAMEX.Create3PartyQueryString();
            Response.Redirect(URL, false);
        }
        catch (Exception ex)
        {
            Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Amex Test Payment" + ex.Message);
        }
    }
示例#18
0
        public IActionResult OnePayResult(string vpc_TxnResponseCode)
        {
            VPCRequest conn = new VPCRequest("http://onepay.vn");

            conn.SetSecureSecret(VPCRequest.SECURE_SECRET);
            // Xu ly tham so tra ve va kiem tra chuoi du lieu ma hoa
            var    hashvalidateResult = conn.Process3PartyResponse(HttpContext.Request.Query);
            string result             = "";

            if (hashvalidateResult == "CORRECTED" && vpc_TxnResponseCode.Trim() == "0")
            {
                result = "Giao dịch thành công";
            }
            else if (hashvalidateResult == "INVALIDATED" && vpc_TxnResponseCode.Trim() == "0")
            {
                result = "Giao dịch đang chờ xử lý";
            }
            else
            {
                result = "Giao dịch không thành công";
            }
            ViewBag.Result = result;
            return(View());
        }
        public static OnepayDomResult ProcessDr(string vpc_MerchTxnRef, string vpc_OrderInfo, string vpc_Amount)
        {
            vpc_MerchTxnRef = (vpc_MerchTxnRef ?? string.Empty).Trim();
            vpc_Amount      = (vpc_Amount ?? string.Empty).Trim();

            var paymentTranasctionId = Guid.Empty;
            PaymentTransaction pt    = null;
            ShoppingCart       cart  = null;

            if (Guid.TryParse(vpc_MerchTxnRef, out paymentTranasctionId))
            {
                using (var db = new CoreEcommerceDbContext())
                {
                    pt   = db.PaymentTransactions.SingleOrDefault(i => i.Id == paymentTranasctionId);
                    cart = db.ShoppingCarts.SingleOrDefault(
                        i => i.OrderCode.Equals(vpc_OrderInfo, StringComparison.OrdinalIgnoreCase));
                }
            }
            if (string.IsNullOrEmpty(vpc_MerchTxnRef) || string.IsNullOrEmpty(vpc_Amount) ||
                paymentTranasctionId == Guid.Empty || pt == null || cart == null)
            {
                return(new OnepayDomResult()
                {
                    Message = "Not found payment transaction: " + vpc_MerchTxnRef + " for order code: " + vpc_OrderInfo,
                    Success = false,
                    Status = Enums.ShoppingCartPayStatus.PaymentFail
                });
            }
            //if (pt.Amount != long.Parse(vpc_Amount))
            //{
            //    return new PaymentMethodInternational.OnepayIntResult()
            //    {
            //        Message = "Invalid amount for payment transaction: " + vpc_MerchTxnRef + " for order code: " + vpc_OrderInfo,
            //        Success = false,
            //        Status = Enums.ShoppingCartPayStatus.Fail
            //    };
            //}
            string secureSecret       = Config.SecureSecret;
            string hashvalidateResult = "";
            // Khoi tao lop thu vien
            VPCRequest conn = new VPCRequest(Config.ApiPayUrl);

            conn.SetSecureSecret(secureSecret);
            // Xu ly tham so tra ve va kiem tra chuoi du lieu ma hoa
            hashvalidateResult = conn.Process3PartyResponse(HttpContext.Current.Request.QueryString);

            // Lay gia tri tham so tra ve tu cong thanh toan
            String vpc_TxnResponseCode = conn.GetResultField("vpc_TxnResponseCode", "");
            string amount          = conn.GetResultField("vpc_Amount", "");
            string localed         = conn.GetResultField("vpc_Locale", "");
            string command         = conn.GetResultField("vpc_Command", "");
            string version         = conn.GetResultField("vpc_Version", "");
            string cardBin         = conn.GetResultField("vpc_Card", "");
            string orderInfo       = conn.GetResultField("vpc_OrderInfo", "");
            string merchantID      = conn.GetResultField("vpc_Merchant", "");
            string authorizeID     = conn.GetResultField("vpc_AuthorizeId", "");
            string merchTxnRef     = conn.GetResultField("vpc_MerchTxnRef", "");
            string transactionNo   = conn.GetResultField("vpc_TransactionNo", "");
            string txnResponseCode = vpc_TxnResponseCode;
            string message         = conn.GetResultField("vpc_Message", "");

            var model = new OnepayDomResult();

            if (hashvalidateResult == "CORRECTED" && txnResponseCode.Trim() == "0")
            {
                model.Message = "Transaction was paid successful";
                model.Status  = Enums.ShoppingCartPayStatus.PaymentSuccess;
                model.Success = true;
                MemoryMessageBuss.PushCommand(new SuccessPaymentTransaction(paymentTranasctionId));
            }
            else if (hashvalidateResult == "INVALIDATED" && txnResponseCode.Trim() == "0")
            {
                model.Message = "Transaction is pending";
                model.Status  = Enums.ShoppingCartPayStatus.PaymentProcess;
                model.Success = false;

                MemoryMessageBuss.PushCommand(new ProcessPaymentTransaction(paymentTranasctionId));
            }
            else
            {
                model.Message = "Transaction was not paid successful";
                model.Status  = Enums.ShoppingCartPayStatus.PaymentFail;
                model.Success = false;

                MemoryMessageBuss.PushCommand(new FailPaymentTransaction(paymentTranasctionId));
            }
            model.Message += "<br>" + message + $"<br>({vpc_TxnResponseCode} {transactionNo})"
                             + $"<br>{vpc_MerchTxnRef} {vpc_OrderInfo}";
            model.Amount    = long.Parse(vpc_Amount) / 100;
            model.OrderCode = vpc_OrderInfo;
            return(model);
        }
示例#20
0
        public ActionResult CreateOrder(string orderViewModel)
        {
            var order    = new JavaScriptSerializer().Deserialize <OrderViewModel>(orderViewModel);
            var orderNew = new Order();

            order.CreatedDate = DateTime.Now;
            order.CreatedBy   = order.CustomerName;
            orderNew.UpdateOrder(order);

            List <OrderDetail> orderDetails = new List <OrderDetail>();

            var sessionCart = (List <ShoppingCartViewModel>)Session[CommonConstants.SessionCart];
            var cart        = new List <CartInsertViewModel>();

            foreach (var session in sessionCart)
            {
                if (cart.Any(x => x.ProductId == session.ProductId))
                {
                    foreach (var item in cart)
                    {
                        if (item.ProductId == session.ProductId)
                        {
                            item.Quantity += session.Quantity;
                            item.Note      = item.Note + " " + session.Quantity + " " + "màu: " + " " + session.Color + ",size: " + session.Size + ";";
                        }
                    }
                }
                else
                {
                    CartInsertViewModel newItem = new CartInsertViewModel();
                    newItem.ProductId = session.ProductId;
                    newItem.Product   = session.Product;
                    newItem.Quantity  = session.Quantity;
                    newItem.Color     = session.Color;
                    newItem.Size      = session.Size;
                    newItem.Note      = session.Quantity + " " + "màu" + " " + session.Color + ",size: " + session.Size + ";";
                    cart.Add(newItem);
                }
            }
            decimal total = 0;

            foreach (var item in cart)
            {
                var detail = new OrderDetail();
                detail.ProductID = item.ProductId;
                detail.Quantity  = item.Quantity;
                if (item.Product.PromotionPrice.HasValue)
                {
                    detail.Price = item.Product.PromotionPrice.Value;
                    total       += (item.Product.PromotionPrice.GetValueOrDefault(0) * item.Quantity);
                }
                else
                {
                    detail.Price = item.Product.Price;
                    total       += (item.Product.Price * item.Quantity);
                }
                detail.Note = item.Note;
                orderDetails.Add(detail);
            }
            decimal totals = total * 100;
            string  text   = "";

            foreach (var item in cart)
            {
                text = text + item.Quantity + "x" + item.Product.Name + "-" + item.Note + " ";
            }

            if (order.PaymentMethod == "Thanh toán khi giao hàng")
            {
                _orderService.Create(ref orderNew, orderDetails);
                _productService.Save();

                string content = System.IO.File.ReadAllText(Server.MapPath("~/Assets/client/template/neworder.html"));
                content = content.Replace("{{CustomerName}}", order.CustomerName);
                content = content.Replace("{{Phone}}", order.CustomerMobile);
                content = content.Replace("{{Email}}", order.CustomerEmail);
                content = content.Replace("{{Address}}", order.CustomerAddress);
                content = content.Replace("{{Total}}", total.ToString("N0"));
                var adminEmail = ConfigHelper.GetByKey("AdminEmail");
                MailHelper.SendMail(order.CustomerEmail, "Đơn hàng mới từ TheShoes", content);
                MailHelper.SendMail(adminEmail, "Đơn hàng mới từ TheShoes", content);

                Session[CommonConstants.SessionCart]        = null;
                Session[CommonConstants.SessionConfirmCart] = null;
                Session[CommonConstants.SessionOrder]       = null;
                return(Json(new
                {
                    status = true
                }));
            }
            else
            {
                Session.Add(CommonConstants.SessionConfirmCart, cart);
                Session.Add(CommonConstants.SessionOrder, orderNew);

                string SECURE_SECRET = "A3EFDFABA8653DF2342E8DAC29B51AF0";
                // Khoi tao lop thu vien va gan gia tri cac tham so gui sang cong thanh toan
                VPCRequest conn = new VPCRequest("https://mtf.onepay.vn/onecomm-pay/vpc.op");
                conn.SetSecureSecret(SECURE_SECRET);
                // Add the Digital Order Fields for the functionality you wish to use
                // Core Transaction Fields
                conn.AddDigitalOrderField("Title", "onepay paygate");
                conn.AddDigitalOrderField("vpc_Locale", "vn");//Chon ngon ngu hien thi tren cong thanh toan (vn/en)
                conn.AddDigitalOrderField("vpc_Version", "2");
                conn.AddDigitalOrderField("vpc_Command", "pay");
                conn.AddDigitalOrderField("vpc_Merchant", "ONEPAY");
                conn.AddDigitalOrderField("vpc_AccessCode", "D67342C2");
                conn.AddDigitalOrderField("vpc_MerchTxnRef", MaHoaMD5(ngaunhien().ToString()));
                conn.AddDigitalOrderField("vpc_OrderInfo", text);
                conn.AddDigitalOrderField("vpc_Amount", totals.ToString());
                conn.AddDigitalOrderField("vpc_Currency", "VND");
                conn.AddDigitalOrderField("vpc_ReturnURL", Url.Action("ConfirmOrder", "ShoppingCart", null, Request.Url.Scheme));
                // Thong tin them ve khach hang. De trong neu khong co thong tin
                conn.AddDigitalOrderField("vpc_SHIP_Street01", "");
                conn.AddDigitalOrderField("vpc_SHIP_Provice", "");
                conn.AddDigitalOrderField("vpc_SHIP_City", "");
                conn.AddDigitalOrderField("vpc_SHIP_Country", "Vietnam");
                conn.AddDigitalOrderField("vpc_Customer_Phone", order.CustomerMobile);
                conn.AddDigitalOrderField("vpc_Customer_Email", order.CustomerEmail);
                conn.AddDigitalOrderField("vpc_Customer_Id", "onepay_paygate");
                // Dia chi IP cua khach hang
                conn.AddDigitalOrderField("vpc_TicketNo", "");
                // Chuyen huong trinh duyet sang cong thanh toan
                String url = conn.Create3PartyQueryString();
                return(Json(new
                {
                    status = true,
                    urlCheckout = url,
                }));
            }
        }
示例#21
0
        //Xây dựng chức năng đặt hàng
        public ActionResult DatHang(KhachHang kh)
        {
            // Kiểm tra giỏ hàng tồn tại hay chưa
            if (Session["GioHang"] == null)
            {
                return(RedirectToAction("Index", "Home"));
            }
            KhachHang khang = new KhachHang();

            if (Session["TaiKhoan"] == null)
            {
                //Thêm kh vào bảng KhachHang ...khi chưa đăng nhập
                khang = kh;
                db.KhachHangs.Add(khang);
                db.SaveChanges();
            }
            else
            {
                // Thêm kh bằng session Taikhoan
                ThanhVien tv = Session["TaiKhoan"] as ThanhVien;
                khang.TenKH       = tv.HoTen;
                khang.DiaChi      = tv.DiaChi;
                khang.Email       = tv.Email;
                khang.SoDienThoai = tv.SoDienThoai;
                khang.MaThanhVien = tv.MaThanhVien;
                db.KhachHangs.Add(khang);
                db.SaveChanges();
            }
            //Thêm đơn hàng
            DonDatHang ddh = new DonDatHang();

            ddh.MaKH              = khang.MaKH;
            ddh.NgayDat           = DateTime.Now;
            ddh.TinhTrangGiaoHang = false;
            ddh.DaThanhToan       = false;
            ddh.UuDai             = 0;
            ddh.DaHuy             = false;
            ddh.DaXoa             = false;
            ddh.MaDDHString       = DateTime.Now.Ticks;
            db.DonDatHangs.Add(ddh);
            db.SaveChanges();
            // Thêm chi tiết đơn hàng
            List <itemGioHang> lstGioHang = LayGioHang();

            // double Amoun = 0;
            foreach (var item in lstGioHang)
            {
                ChiTietDonDatHang ctdh = new ChiTietDonDatHang();
                ctdh.MaDDH   = ddh.MaDDH;
                ctdh.TenSP   = item.TenSP;
                ctdh.MaSP    = item.MaSP;
                ctdh.SoLuong = item.SoLuong;
                ctdh.DonGia  = item.DonGia;
                // Amoun = Amoun + (double) ctdh.DonGia * ctdh.SoLuong;
                db.ChiTietDonDatHangs.Add(ctdh);
            }
            db.SaveChanges();
            //#region "Thanh toán online thẻ nội địa"
            //string SECURE_SECRET = "A3EFDFABA8653DF2342E8DAC29B51AF0";
            //// Khoi tao lop thu vien va gan gia tri cac tham so gui sang cong thanh toan
            //VPCRequest conn = new VPCRequest("https://mtf.onepay.vn/onecomm-pay/vpc.op");
            //conn.SetSecureSecret(SECURE_SECRET);
            //// Add the Digital Order Fields for the functionality you wish to use
            //// Core Transaction Fields
            //conn.AddDigitalOrderField("Title", "onepay paygate");
            //conn.AddDigitalOrderField("vpc_Locale", "vn");//Chon ngon ngu hien thi tren cong thanh toan (vn/en)
            //conn.AddDigitalOrderField("vpc_Version", "2");
            //conn.AddDigitalOrderField("vpc_Command", "pay");
            //conn.AddDigitalOrderField("vpc_Merchant", "ONEPAY");
            //conn.AddDigitalOrderField("vpc_AccessCode", "D67342C2");
            //conn.AddDigitalOrderField("vpc_MerchTxnRef", ddh.MaDDHString.ToString());
            //conn.AddDigitalOrderField("vpc_OrderInfo", "9704250000000001  NGUYEN VAN A");
            //conn.AddDigitalOrderField("vpc_Amount", (TinhTongTien()*100).ToString());
            //conn.AddDigitalOrderField("vpc_Currency", "VND");
            //conn.AddDigitalOrderField("vpc_ReturnURL", "http://*****:*****@onepay.vn");
            //conn.AddDigitalOrderField("vpc_Customer_Id", "onepay_paygate");
            //// Dia chi IP cua khach hang
            //conn.AddDigitalOrderField("vpc_TicketNo", DateTime.Now.Ticks.ToString());
            //// Chuyen huong trinh duyet sang cong thanh toan
            //String url = conn.Create3PartyQueryString();
            //return Redirect(url);
            //#endregion

            #region "Thanh toán online quốc tế"
            string SECURE_SECRET = "6D0870CDE5F24F34F3915FB0045120DB";
            // Khoi tao lop thu vien va gan gia tri cac tham so gui sang cong thanh toan
            VPCRequest conn = new VPCRequest("https://mtf.onepay.vn/vpcpay/vpcpay.op");
            conn.SetSecureSecret(SECURE_SECRET);
            // Add the Digital Order Fields for the functionality you wish to use
            // Core Transaction Fields
            conn.AddDigitalOrderField("AgainLink", "http://onepay.vn");
            conn.AddDigitalOrderField("Title", "onepay.vn");
            conn.AddDigitalOrderField("vpc_Locale", "vn");//Chon ngon ngu hien thi tren cong thanh toan (vn/en)
            conn.AddDigitalOrderField("vpc_Version", "2");
            conn.AddDigitalOrderField("vpc_Command", "pay");
            conn.AddDigitalOrderField("vpc_Merchant", "TESTONEPAY");
            conn.AddDigitalOrderField("vpc_AccessCode", "6BEB2546");
            conn.AddDigitalOrderField("vpc_MerchTxnRef", ddh.MaDDHString.ToString());
            conn.AddDigitalOrderField("vpc_OrderInfo", "4000000000000002 | 05/21 | 123 | Tran Quang Khai");
            conn.AddDigitalOrderField("vpc_Amount", (TinhTongTien() * 100).ToString());
            conn.AddDigitalOrderField("vpc_ReturnURL", "http://*****:*****@onepay.vn");
            conn.AddDigitalOrderField("vpc_Customer_Id", "onepay_paygate");
            // Dia chi IP cua khach hang
            conn.AddDigitalOrderField("vpc_TicketNo", DateTime.Now.Ticks.ToString());
            // Chuyen huong trinh duyet sang cong thanh toan
            String url = conn.Create3PartyQueryString();
            return(Redirect(url));

            #endregion
        }
示例#22
0
        public ActionResult ConfirmOrder()
        {
            string SECURE_SECRET      = "A3EFDFABA8653DF2342E8DAC29B51AF0";
            string hashvalidateResult = "";
            // Khoi tao lop thu vien
            VPCRequest conn = new VPCRequest("http://onepay.vn");

            conn.SetSecureSecret(SECURE_SECRET);

            // Xu ly tham so tra ve va kiem tra chuoi du lieu ma hoa
            try
            {
                hashvalidateResult = conn.Process3PartyResponse(Request.QueryString);
            }
            catch
            {
                return(Redirect("/gio-hang.html"));
            }

            // Lay gia tri tham so tra ve tu cong thanh toan
            String vpc_TxnResponseCode = conn.GetResultField("vpc_TxnResponseCode", "Unknown");
            string amount          = conn.GetResultField("vpc_Amount", "Unknown");
            string localed         = conn.GetResultField("vpc_Locale", "Unknown");
            string command         = conn.GetResultField("vpc_Command", "Unknown");
            string version         = conn.GetResultField("vpc_Version", "Unknown");
            string cardBin         = conn.GetResultField("vpc_Card", "Unknown");
            string orderInfo       = conn.GetResultField("vpc_OrderInfo", "Unknown");
            string merchantID      = conn.GetResultField("vpc_Merchant", "Unknown");
            string authorizeID     = conn.GetResultField("vpc_AuthorizeId", "Unknown");
            string merchTxnRef     = conn.GetResultField("vpc_MerchTxnRef", "Unknown");
            string transactionNo   = conn.GetResultField("vpc_TransactionNo", "Unknown");
            string txnResponseCode = vpc_TxnResponseCode;
            string message         = conn.GetResultField("vpc_Message", "Unknown");

            if (hashvalidateResult == "CORRECTED" && txnResponseCode.Trim() == "0")
            {
                var order    = (Order)Session[CommonConstants.SessionOrder];
                var orderNew = new Order();
                order.PaymentStatus = true;
                orderNew            = order;
                List <OrderDetail> orderDetails = new List <OrderDetail>();
                var sessionCart = (List <CartInsertViewModel>)Session[CommonConstants.SessionConfirmCart];
                foreach (var item in sessionCart)
                {
                    var detail = new OrderDetail();
                    detail.ProductID = item.ProductId;
                    detail.Quantity  = item.Quantity;
                    if (item.Product.PromotionPrice.HasValue)
                    {
                        detail.Price = item.Product.PromotionPrice.Value;
                    }
                    else
                    {
                        detail.Price = item.Product.Price;
                    }
                    detail.Note = item.Note;
                    orderDetails.Add(detail);
                }
                _orderService.Create(ref orderNew, orderDetails);
                _productService.Save();
                ViewBag.Amount            = decimal.Parse(amount) / 100;
                ViewData["OrderID"]       = orderNew.ID;
                ViewData["PaymentMethod"] = orderNew.PaymentMethod;

                string content = System.IO.File.ReadAllText(Server.MapPath("~/Assets/client/template/neworder.html"));
                content = content.Replace("{{CustomerName}}", order.CustomerName);
                content = content.Replace("{{Phone}}", order.CustomerMobile);
                content = content.Replace("{{Email}}", order.CustomerEmail);
                content = content.Replace("{{Address}}", order.CustomerAddress);
                content = content.Replace("{{Total}}", (decimal.Parse(amount) / 100).ToString("N0"));
                var adminEmail = ConfigHelper.GetByKey("AdminEmail");
                MailHelper.SendMail(order.CustomerEmail, "Đơn hàng mới từ TheShoes", content);
                MailHelper.SendMail(adminEmail, "Đơn hàng mới từ TheShoes", content);

                Session[CommonConstants.OrderInfo]          = Session[CommonConstants.SessionCart];
                Session[CommonConstants.SessionCart]        = null;
                Session[CommonConstants.SessionConfirmCart] = null;
                Session[CommonConstants.SessionOrder]       = null;
                return(View((List <ShoppingCartViewModel>)Session[CommonConstants.OrderInfo]));
            }
            else
            {
                return(Redirect("/loi-thanh-toan.html"));
            }
        }
示例#23
0
        public ActionResult MakePayment()
        {
            FindItemReponse <UserModel> response = _userService.FindUserByID(Session["User-UserID"].ToString());

            if (response.Item != null)
            {
                FindAllItemReponse <MailingAddressModel> mailingResponse = _mailingService.FindMailingAddressByUser(Session["User-UserID"].ToString());
                if (mailingResponse.Items != null)
                {
                    var mailing = mailingResponse.Items.SingleOrDefault();
                    if (mailing != null)
                    {
                        //Caculate payment
                        //Get fee
                        int fee = -1;

                        DateTime earlyBird = new DateTime(2017, 6, 30);
                        DateTime regular   = new DateTime(2017, 11, 26);
                        int      age       = DataHelper.GetInstance().CalculateAge(response.Item.DateOfBirth.Value);
                        switch (mailing.ParticipantType)
                        {
                        case "International delegates":
                        case "International youth":
                            if (age < 25)
                            {
                                fee = 150;
                            }
                            else
                            {
                                if (DateTime.UtcNow <= earlyBird)
                                {
                                    fee = 550;
                                }
                                else
                                {
                                    fee = 600;
                                }
                            }
                            break;

                        case "Vietnamese delegate":
                        case "Vietnamese youth":
                            if (age < 25)
                            {
                                fee = 100;
                            }
                            else
                            {
                                if (DateTime.UtcNow <= earlyBird)
                                {
                                    fee = 200;
                                }
                                else
                                {
                                    fee = 250;
                                }
                            }
                            break;

                        default:
                            fee = -1;
                            break;
                        }
                        if (fee == -1)
                        {
                            return(RedirectToAction("RegistrationIncompleted"));
                        }

                        //Parse currency
                        decimal amount  = 0;
                        decimal usdrate = 0;
                        try
                        {
                            usdrate = DataHelper.GetInstance().GetCurrencyRate(FROM_CURRENCY, 22265);
                        }
                        catch (Exception)
                        {
                            //Try convert using google
                            try
                            {
                                string _amount = DataHelper.GetInstance().CurrencyConvert(fee, FROM_CURRENCY, TO_CURRENCY);
                                _amount = _amount.Substring(0, _amount.IndexOf(" "));
                                amount  = decimal.Parse(_amount);
                            }
                            catch (Exception)
                            {
                                return(RedirectToAction("Index", "RequestError"));
                            }
                        }

                        //Calculate amount
                        if (usdrate != 0)
                        {
                            amount = fee * usdrate;
                        }
                        if (amount == 0)
                        {
                            return(RedirectToAction("Index", "RequestError"));
                        }
                        //amount X 100 before parse to OnePay
                        amount = amount * 100;

                        // Khoi tao lop thu vien va gan gia tri cac tham so gui sang cong thanh toan
                        VPCRequest conn = new VPCRequest(VIRTUAL_PAYMENT_CLIENT);
                        conn.SetSecureSecret(SECURE_SECRET);

                        // Add the Digital Order Fields for the functionality you wish to use
                        // Core Transaction Fields
                        conn.AddDigitalOrderField("AgainLink", "http://onepay.vn");
                        conn.AddDigitalOrderField("Title", "onepay paygate");

                        //Chon ngon ngu hien thi tren cong thanh toan (vn/en)
                        conn.AddDigitalOrderField("vpc_Locale", vpc_Locale);
                        conn.AddDigitalOrderField("vpc_Version", vpc_Version);
                        conn.AddDigitalOrderField("vpc_Command", vpc_Command);

                        //Test account
                        string subId = string.Format("{0}", DateTime.Now.Ticks);
                        conn.AddDigitalOrderField("vpc_Merchant", vpc_Merchant);
                        conn.AddDigitalOrderField("vpc_AccessCode", vpc_AccessCode);
                        conn.AddDigitalOrderField("vpc_MerchTxnRef", subId);

                        //Package order
                        conn.AddDigitalOrderField("vpc_Amount", amount.ToString());

                        var transactionReference = DateTime.Now.Ticks;

                        StringBuilder builder = new StringBuilder();
                        builder.Append(string.Format("Transaction vpc_MerchTxnRef {0}, ", subId));
                        builder.Append(string.Format("Transaction vpc_Merchant {0}, ", vpc_Merchant));
                        builder.Append(string.Format("Transaction vpc_Amount {0}, ", amount));
                        builder.Append(string.Format("Transaction fullname {0}, ", response.Item.FullName));
                        builder.Append(string.Format("Transaction email {0}", response.Item.Email));
                        builder.Append(string.Format("Transaction reference {0}", transactionReference));

                        TransactionHistoryModel trans = new TransactionHistoryModel
                        {
                            Action               = "Create payment",
                            CreatedDate          = DateTime.Now,
                            Log                  = builder.ToString(),
                            Status               = (int)TransactionStatus.Created,
                            UserId               = response.Item.UserID,
                            Email                = response.Item.Email,
                            TransactionReference = transactionReference
                        };

                        var insertResponse = _transaction.Create(trans);

                        //Order info
                        conn.AddDigitalOrderField("vpc_OrderInfo", transactionReference.ToString());

                        //Return url
                        conn.AddDigitalOrderField("vpc_ReturnURL", vpc_ReturnURL);

                        // Dia chi IP cua khach hang
                        conn.AddDigitalOrderField("vpc_TicketNo", Request.UserHostAddress);

                        // Chuyen huong trinh duyet sang cong thanh toan
                        String url = conn.Create3PartyQueryString();
                        return(Redirect(url));
                    }
                }
            }
            return(RedirectToAction("RegistrationIncompleted"));
        }
    protected void Page_Load(object sender, EventArgs e)
    {
        //if (!IsPostBack)
        //{
        //    if (Session["OrderNumber"] != null)
        //    {
        //        var oOrder = new Orders();
        //        oOrder.OrdersQuickUpdate_PayStatusID(Session["OrderNumber"].ToString(), "2");
        //        Session["Cart"] = null;
        //        Session["CheckOut"] = null;
        //    }
        //    else
        //        Response.Redirect("~/gio-hang.aspx");
        //}

        if (Session["UserName"] != null)
        {
            string SECURE_SECRET = "";

            //if (Session["PaymentMethod"].ToString() == "onepaynd")
            //    SECURE_SECRET = "A3EFDFABA8653DF2342E8DAC29B51AF0";
            //else if (Session["PaymentMethod"].ToString() == "onepayqt")
            //    SECURE_SECRET = "6D0870CDE5F24F34F3915FB0045120DB";

            if (Session["PaymentMethod"].ToString() == "onepaynd")
                SECURE_SECRET = "04E8DA60020D93506DCC15B7F6A71D26";
            else if (Session["PaymentMethod"].ToString() == "onepayqt")
                SECURE_SECRET = "C7BB42E2BE08E07FDF7210CB381FA04A";

            string hashvalidateResult = "";
            // Khoi tao lop thu vien
            VPCRequest conn = new VPCRequest("http://onepay.vn");
            conn.SetSecureSecret(SECURE_SECRET);
            // Xu ly tham so tra ve va kiem tra chuoi du lieu ma hoa
            hashvalidateResult = conn.Process3PartyResponse(Page.Request.QueryString);
            // Lay gia tri tham so tra ve tu cong thanh toan
            String vpc_TxnResponseCode = conn.GetResultField("vpc_TxnResponseCode", "Unknown");
            string amount = conn.GetResultField("vpc_Amount", "Unknown");
            string localed = conn.GetResultField("vpc_Locale", "Unknown");
            string command = conn.GetResultField("vpc_Command", "Unknown");
            string version = conn.GetResultField("vpc_Version", "Unknown");
            string cardType = conn.GetResultField("vpc_Card", "Unknown");
            string orderInfo = conn.GetResultField("vpc_OrderInfo", "Unknown");
            string merchantID = conn.GetResultField("vpc_Merchant", "Unknown");
            string authorizeID = conn.GetResultField("vpc_AuthorizeId", "Unknown");
            string merchTxnRef = conn.GetResultField("vpc_MerchTxnRef", "Unknown");
            string transactionNo = conn.GetResultField("vpc_TransactionNo", "Unknown");
            string acqResponseCode = conn.GetResultField("vpc_AcqResponseCode", "Unknown");
            string txnResponseCode = vpc_TxnResponseCode;
            string message = conn.GetResultField("vpc_Message", "Unknown");
            var oOrders = new Orders();
            //var oOrderDetail = new OrderDetail();

            var dtCart = Session["Cart"] as DataTable;
            double Amount = 0, sAmount = 0;
            string LastName,
                   FirstName,
                   Address,
                   Email,
                   ProvinceCode,
                   DistrictName,
                   CountryName,
                   Phone,
                   AddressBookID;

            string OrderNumber = Session["OrderNumber"].ToString();
            var UserName = string.IsNullOrEmpty(User.Identity.Name) ? "" : User.Identity.Name;
            var OrderStatusID = "1";
            var ShippingStatusID = "1";
            var PaymentMethodID = Session["PaymentMethod"].ToString();
            var Notes = Session["Message"].ToString();
            var Comission = "";
            var PaymentMethodName = Session["PaymentMethod"] == "money" ? "Tiền Mặt" : (Session["PaymentMethod"] == "onepaynd" ? "Thẻ ATM nội địa qua OnePay" : (Session["PaymentMethod"] == "onepayqt" ? "Thẻ VISA, MASTER qua OnePAY" : "Chuyển khoản trực tiếp"));

            var oAddressBook = new AddressBook();
            var dtAddressBook = oAddressBook.AddressBookSelectOne(Session["ShippingID"].ToString());

            AddressBookID = dtAddressBook.Rows[0]["AddressBookID"].ToString();
            LastName = dtAddressBook.Rows[0]["LastName"].ToString();
            FirstName = dtAddressBook.Rows[0]["FirstName"].ToString();
            Address = dtAddressBook.Rows[0]["Address1"].ToString();
            Email = dtAddressBook.Rows[0]["Email"].ToString();
            ProvinceCode = dtAddressBook.Rows[0]["ProvinceName"].ToString();
            CountryName = dtAddressBook.Rows[0]["CountryName"].ToString();
            DistrictName = dtAddressBook.Rows[0]["DistrictName"].ToString();
            Phone = dtAddressBook.Rows[0]["HomePhone"].ToString();

            var BillingAddressID = AddressBookID;
            var ShippingAddressID = AddressBookID;

            var ShippingPrice = Session["ShippingPrice"];


            var YourName = FirstName + " " + LastName;
            var YourEmail = Email;
            var YourAddress = Address + ", " + DistrictName + ", " + ProvinceCode + ", " + CountryName;

            var To = "*****@*****.**";
            //var To = "*****@*****.**";
            var Subject = "Chúng tôi đã nhận được đơn hàng: " + OrderNumber;
            //var Host = "118.69.199.203";
            //int Port = 25;
            var Host = "smtp.gmail.com";
            int Port = 587;
            //var strMailFromAlias = "*****@*****.**";
            //var Password = "******";
            var strDisplayNameMailFrom = "";
            var From = "*****@*****.**";
            var sPassword = "******";
            //var strDisplayNameMailFrom = "Pandemos - Đặt Hàng";
            //var From = "*****@*****.**";
            //var sPassword = "******";
            bool bEnableSSL = true;

            // Sua lai ham check chuoi ma hoa du lieu
            //if (recive_SecureHash !=doSecureHash)
            if (hashvalidateResult == "CORRECTED" && txnResponseCode.Trim() == "0")
            {
                //Common.ShowAlert(SECURE_SECRET);
                //string Host = "118.69.199.203";
                //int Port = 25;
                //string From = "*****@*****.**";
                //string Password = "******";
                string Body = "<div style='width: 100%; font-size: 11px; font-family: Arial;'>";
                Body += "<h3 style='color: rgb(204,102,0); font-size: 22px; border-bottom-color: gray; border-bottom-width: 1px;border-bottom-style: dashed; margin-bottom: 20px; font-family: Times New Roman;'>Cảm ơn bạn đã đặt hàng/Thanks for Your Order!</h3>";

                Body += "<div style='padding: 10px; background-color: rgb(255,244,234); font-family: Verdana;font-size: 11px; margin-bottom: 20px;'>";
                Body += "<p>Mã số đơn hàng của bạn là <b>" + OrderNumber + "</b>. Chi tiết đơn hàng được liệt kê ở phía dưới. Để theo dõi đơn hàng, xin vui lòng vào mục <a style='font-size: 11px;' href='http://www.pandemos.vn/kiem-tra-don-hang.aspx'>theo dõi đơn hàng</a></p>";
                //Body += "<p>Your order ID is <b>" + OrderNumber + "</b>. A summary of your order is shown below. To view the status of your order <a style='font-size: 11px;' href='http://www.pandemos.vn/theo-doi-don-hang.aspx'>click here.</a></p>";
                Body += "</div>";
                //Body += "<div style='padding: 10px; background-color: rgb(255, 239, 239); font-family: Verdana;font-size: 11px; margin-bottom: 20px;'><p>Để hoàn tất đặt hàng xin vui lòng thanh toán đơn hàng theo một trong các phương thức hiện có trên website</p><p>Your order requires payment before it can be finalized. Please check our website for available methods</p></div>";
                Body += "<div style='padding: 10px; background-color: rgb(255, 239, 239); font-family: Verdana;font-size: 11px; margin-bottom: 20px;'><p>Để hoàn tất đặt hàng xin vui lòng thanh toán đơn hàng theo một trong các phương thức hiện có trên website</p></div>";
                //Body += "<div style='font-family: Verdana; font-size: 11px; margin-bottom: 20px;'><table style='width: 100%' cellpadding='0' cellspacing='0'><tr><td style='width: 50%;'><h4 style='font-size: 18px; margin-bottom: 5px; margin-bottom: 20px;'>Người mua/Buyer</h4><div style='font-size: 11px;font-family: Verdana;'><p><b>" + BuyerName + "</b></p><p>" + Address1 + "</p><p>" + DistrictName1 + "</p><p>" + ProvinceCode1 + "</p></div></td><td style='width: 50%;'><h4 style='font-size: 18px; margin-bottom: 5px; margin-bottom: 20px;'>Người nhận/Recipient</h4><div style='font-size: 11px;font-family: Verdana;'><p><b>" + YourName + "</b></p><p>" + Address + "</p><p>" + DistrictName + "</p><p>" + ProvinceCode + "</p></div></td></tr></table></div>";
                Body += "<div style='font-family: Verdana; font-size: 11px; margin-bottom: 20px;'><table style='width: 100%' cellpadding='0' cellspacing='0'><tr><td style='width: 50%;'><h4 style='font-size: 18px; margin-bottom: 5px; margin-bottom: 20px;'>Người nhận/Recipient</h4><div style='font-size: 11px;font-family: Verdana;'><p><b>" + YourName + "</b></p><p>" + Address + "</p><p>" + DistrictName + "</p><p>" + ProvinceCode + "</p></div></td></tr></table></div>";
                Body += "<div style='font-family: Verdana; font-size: 11px; margin-bottom: 20px;'><h4 style='font-size: 18px;'>Chi tiết đơn hàng/Your Order Contains...</h4>";

                Body += "<div style='font-size: 11px; font-family: Verdana'>";
                //Body += "<p><b>* Hình thức giao hàng</b>: " + DeliveryMethodsEmail + "</p>";
                //Body += "<p><b>* Hình thức thanh toán</b>:" + ServiceName + "</p>";
                Body += "<p><b>* Phương thức thanh toán</b>: " + PaymentMethodName + "</p>";
                //Body += "<p><b>* Ngày - Giờ giao</b>: " + EmailDeliveryDate + "</p>";
                Body += "</div>";

                Body += "<table style='font-size: 11px; font-family: Verdana; padding: 10px; border: 1px solid #C7D7DB; width: 100%;border-collapse: collapse;' cellpadding='0' cellspacing='0'>";
                //Body += "<tr><th align='left' style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Sản phẩm/Cart Items</th><th style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Cỡ/Size</th><th style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Số lượng/Qty</th><th align='center' style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Giá/Item Price</th><th align='right' style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Thành tiền/Item Total</th></tr>";
                Body += "<tr><th align='left' style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Sản phẩm/Cart Items</th><th style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Số lượng/Qty</th><th align='center' style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Giá/Item Price</th><th align='right' style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Thành tiền/Item Total</th></tr>";

                foreach (DataRow dr in dtCart.Rows)
                {
                    string ProductCode = dr["Tag"].ToString();
                    string ProductID = dr["ProductID"].ToString();
                    string ProductName = dr["ProductName"].ToString();
                    string Quantity = dr["Quantity"].ToString();
                    string Price = dr["Price"].ToString();
                    string ProductOptionCategoryName = dr["ProductOptionCategoryName"].ToString();
                    string ProductLengthName = dr["ProductLengthName"].ToString();
                    double tPrice = Convert.ToDouble(Price) * Convert.ToDouble(Quantity);

                    var itemPrice = string.Format("{0:##,###.##}", tPrice).Replace('.', '*').Replace(',', '.').Replace('*', ',') + " VND";
                    var sPrice = string.Format("{0:##,###.##}", dr["Price"]).Replace('.', '*').Replace(',', '.').Replace('*', ',') + " VND";
                    Amount += Convert.ToDouble(Price) * Convert.ToDouble(Quantity);
                    Body += "<tr>";
                    Body += "<td style='padding: 5px; border-collapse: collapse; border-bottom: 1px solid #C7D7DB;'>" + ProductName + " - " + ProductCode + " - " + ProductOptionCategoryName + " - " + ProductLengthName + "</td>";
                    //Body += "<td align='center' style='padding: 5px; border-collapse: collapse; border-bottom: 1px solid #C7D7DB;'>" + ProductColorName + "</td>";
                    Body += "<td align='center' style='padding: 5px; border-collapse: collapse; border-bottom: 1px solid #C7D7DB;'>" + Quantity + "</td>";
                    Body += "<td align='center' style='padding: 5px; border-collapse: collapse; border-bottom: 1px solid #C7D7DB;'>" + sPrice + "</td>";
                    Body += "<td align='right' style='padding: 5px; border-collapse: collapse; border-bottom: 1px solid #C7D7DB;'>" + itemPrice + "</td>";
                    Body += "</tr>";
                }
                Body += "</table>";
                Body += "<div style='clear: both;'></div>";
                var iShippingPrice =
                    Convert.ToDouble(string.IsNullOrEmpty(ShippingPrice.ToString()) ? "0" : ShippingPrice);
                sAmount = Amount + iShippingPrice;
                //sAmount = Amount;

                var tAmount = string.Format("{0:##,###.##}", Amount).Replace('.', '*').Replace(',', '.').Replace('*', ',') + " VNĐ";
                var Shipping = string.Format("{0:##,###.##}", iShippingPrice).Replace('.', '*').Replace(',', '.').Replace('*', ',') + " VNĐ";
                var SubTotal = string.Format("{0:##,###.##}", sAmount).Replace('.', '*').Replace(',', '.').Replace('*', ',') + " VNĐ";

                Body += "<table style='font-size: 11px; font-family: Verdana; text-align: right; margin: 10px 0; width: 100%; float: right;' cellpadding='0' cellspacing='0'>";
                Body += "<tr><td style='width:85%;'>Thành tiền/Subtotal:</td><td style='width:15%;'>" + tAmount + "</td></tr>";
                Body += "<tr><td>Phí giao hàng/Shipping:</td><td>" + Shipping + "</td></tr>";
                Body += "<tr><td><b>Tổng tiền/Grand Total:</b></td><td><b>" + SubTotal + "</b></td></tr>";
                Body += "</table>";
                Body += "<div style='clear: both;'></div>";
                //Body += "<ul style='font-size: 11px; font-style: italic; padding: 0;margin: 0; list-style-type: none;'>";
                //Body += "<li><b>*</b> Giá sản phẩm chưa bao gồm thuế VAT 10%/ Item price is excluded of 10% VAT</li>";
                //Body += "<li><b>*</b> Xin vui lòng <a style='font-size: 11px;' href='http://www.pandemos.vn/lien-he.aspx'>gọi điện</a> tới Đồng Hồ Anh Minhs-Hoa Trái Cây để thay đổi nếu Quý khách muốn sửa đơn hàng/ Please <a style='font-size: 11px;' href='http://www.pandemos.vn/lien-he.aspx'>call</a> Đồng Hồ Anh Minhs-Hoa Trái Cây if you are in need of making a modification to your Order </li>";
                //Body += "<li><b>*</b> Vui lòng tham khảo các điều khoản về Thay đổi và Hủy đơn hàng trong <a style='font-size: 11px;' href='http://www.pandemos.vn/thoa-thuan-su-dung.aspx'>Thỏa Thuận Sử Dụng</a>/Please check Policy for Order Change and Cancelation in our <a style='font-size: 11px;' href='http://www.pandemos.vn/thoa-thuan-su-dung.aspx'>Term of Use</a></li>";
                //Body += "</ul>";
                Body += "</div>";
                Body += "<div style='font-family:Verdana;font-size:12px;margin-top:10px;'>";
                Body += "<div style='font-size:16px;font-weight:bold;'>=================</div>";
                Body += "<h4 style='font-size:14px;font-family:Verdana;margin:0;padding:0;'>Pandemos</h4>";
                Body += "<div style='font-size:11px;font-family:Verdana;margin-top:5px;padding:0;margin:0;'>";
                Body += "<p>Add: 403, Hai Bà Trưng, Phường 8, Quận 3, Tp HCM.</p>";
                Body += "<p>Tel: (08)3 820 8577 - Hotline: 0902 563 577 </p>";
                //Body += "<p>M: +84 908 xxx xxx>";

                Body += "<p>W: <a href='http://www.pandemos.vn'>www.pandemos.vn</a></p>";
                Body += "<p>E: <a href='mailto:[email protected]'>[email protected]</a></p>";
                Body += "</div>";
                Body += "</div>";
                Body += "</div>";

                //var bSendEmail = Common.SendMail(Host, Port, From, strDisplayNameMailFrom, sPassword, Email, To, Subject, Body, false);
                var bSendEmail = Common.SendMail(Host, Port, From, sPassword, Email, To, Subject, Body, true);
                if (bSendEmail)
                {
                    //oOrders.OrdersInsert1(
                    //    OrderNumber,
                    //    UserName,
                    //    OrderStatusID,
                    //    ShippingStatusID,
                    //    PaymentMethodID,
                    //    BillingAddressID,
                    //    ShippingAddressID,
                    //    Notes,
                    //    Comission,
                    //    "",
                    //    "",
                    //    YourAddress,
                    //    "",
                    //    Email
                    //    );

                    //foreach (DataRow dr in dtCart.Rows)
                    //{
                    //    string ProductID = dr["ProductID"].ToString();
                    //    string Quantity = dr["Quantity"].ToString();
                    //    string Price = dr["Price"].ToString();
                    //    string CreateBy = UserName;
                    //    string ProductOptionCategoryName = dr["ProductOptionCategoryName"].ToString();
                    //    string ProductLengthName = dr["ProductLengthName"].ToString();
                    //    string ProductName = dr["ProductName"].ToString();

                    //    oOrderDetail.OrderDetailInsert1(
                    //       OrderNumber,
                    //       ProductID,
                    //       Quantity,
                    //       Price,
                    //       CreateBy,
                    //       ProductOptionCategoryName,
                    //       ProductLengthName,
                    //       Email
                    //    );
                    //}
                    //OrderNumber = oOrders.OrderID;

                    oOrders.OrdersQuickUpdate_PayStatusID(
                        OrderNumber,
                        "1"
                        );
                }
                //Common.ShowAlert("Bạn đã đặt hàng thành công. Chúng tôi sẽ liên lạc với bạn trong thời gian sớm nhất!");
                vpc_Result.Text = "Giao dịch đã thành công";
                Panel2.Visible = true;
                Session["Cart"] = null;
                Session["CheckOut"] = null;
            }
            else if (hashvalidateResult == "INVALIDATED" && txnResponseCode.Trim() == "0")
            {
                oOrders.OrdersQuickUpdate_PayStatusID(
                        OrderNumber,
                        "2"
                        );
                vpc_Result.Text = "Giao dịch đang chờ xử lý";
                Session["Cart"] = null;
                Session["CheckOut"] = null;
                //Response.Redirect("~/gio-hang.aspx");
            }
            else
            {
                oOrders.OrdersQuickUpdate_PayStatusID(
                        OrderNumber,
                        "3"
                        );
                vpc_Result.Text = "Giao dịch không thành công. Vui lòng tiến hành thanh toán lại";
                Session["Cart"] = null;
                Session["CheckOut"] = null;
                //Response.Redirect("~/gio-hang.aspx");
            }
        }
        else if (Session["Email"] != null)
        {
            string SECURE_SECRET = "";

            //if (Session["PaymentMethod"].ToString() == "onepaynd")
            //    SECURE_SECRET = "A3EFDFABA8653DF2342E8DAC29B51AF0";
            //else if (Session["PaymentMethod"].ToString() == "onepayqt")
            //    SECURE_SECRET = "6D0870CDE5F24F34F3915FB0045120DB";

            if (Session["PaymentMethod"].ToString() == "onepaynd")
                SECURE_SECRET = "04E8DA60020D93506DCC15B7F6A71D26";
            else if (Session["PaymentMethod"].ToString() == "onepayqt")
                SECURE_SECRET = "C7BB42E2BE08E07FDF7210CB381FA04A";

            string hashvalidateResult = "";
            // Khoi tao lop thu vien
            VPCRequest conn = new VPCRequest("http://onepay.vn");
            conn.SetSecureSecret(SECURE_SECRET);
            // Xu ly tham so tra ve va kiem tra chuoi du lieu ma hoa
            hashvalidateResult = conn.Process3PartyResponse(Page.Request.QueryString);
            // Lay gia tri tham so tra ve tu cong thanh toan
            String vpc_TxnResponseCode = conn.GetResultField("vpc_TxnResponseCode", "Unknown");
            string amount = conn.GetResultField("vpc_Amount", "Unknown");
            string localed = conn.GetResultField("vpc_Locale", "Unknown");
            string command = conn.GetResultField("vpc_Command", "Unknown");
            string version = conn.GetResultField("vpc_Version", "Unknown");
            string cardType = conn.GetResultField("vpc_Card", "Unknown");
            string orderInfo = conn.GetResultField("vpc_OrderInfo", "Unknown");
            string merchantID = conn.GetResultField("vpc_Merchant", "Unknown");
            string authorizeID = conn.GetResultField("vpc_AuthorizeId", "Unknown");
            string merchTxnRef = conn.GetResultField("vpc_MerchTxnRef", "Unknown");
            string transactionNo = conn.GetResultField("vpc_TransactionNo", "Unknown");
            string acqResponseCode = conn.GetResultField("vpc_AcqResponseCode", "Unknown");
            string txnResponseCode = vpc_TxnResponseCode;
            string message = conn.GetResultField("vpc_Message", "Unknown");

            var oOrders = new Orders();
            //var oOrderDetail = new OrderDetail();
            var dtCart = Session["Cart"] as DataTable;
            double Amount = 0, sAmount = 0;
            string LastName,
                   FirstName,
                   Address,
                   Email,
                   ProvinceCode,
                   DistrictName,
                   CountryName,
                   Phone,
                   AddressBookID;

            string OrderNumber = Session["OrderNumber"].ToString();
            var UserName = string.IsNullOrEmpty(User.Identity.Name) ? "" : User.Identity.Name;
            var OrderStatusID = "1";
            var ShippingStatusID = "1";
            var PaymentMethodID = Session["PaymentMethod"].ToString();
            var Notes = Session["Message"].ToString();
            var Comission = "";
            var PaymentMethodName = Session["PaymentMethod"] == "money" ? "Tiền Mặt" : (Session["PaymentMethod"] == "onepaynd" ? "Thẻ ATM nội địa qua OnePay" : (Session["PaymentMethod"] == "onepayqt" ? "Thẻ VISA, MASTER qua OnePAY" : "Chuyển khoản trực tiếp"));

            var oAddressBook1 = new AddressBook1();
            var dtAddressBook = oAddressBook1.AddressBook1SelectOne(Session["AddressBookID"].ToString());

            AddressBookID = dtAddressBook.Rows[0]["AddressBookID"].ToString();
            LastName = dtAddressBook.Rows[0]["LastName"].ToString();
            FirstName = dtAddressBook.Rows[0]["FirstName"].ToString();
            Address = dtAddressBook.Rows[0]["Address1"].ToString();
            Email = dtAddressBook.Rows[0]["Email"].ToString();
            ProvinceCode = dtAddressBook.Rows[0]["ProvinceName"].ToString();
            CountryName = dtAddressBook.Rows[0]["CountryName"].ToString();
            DistrictName = dtAddressBook.Rows[0]["DistrictName"].ToString();
            Phone = dtAddressBook.Rows[0]["HomePhone"].ToString();

            var BillingAddressID = AddressBookID;
            var ShippingAddressID = AddressBookID;

            var ShippingPrice = Session["ShippingPrice"];


            var YourName = FirstName + " " + LastName;
            var YourEmail = Email;
            var YourAddress = Address + ", " + DistrictName + ", " + ProvinceCode + ", " + CountryName;

            //var To = "*****@*****.**";
            var To = "*****@*****.**";
            var Subject = "Chúng tôi đã nhận được đơn hàng: " + OrderNumber;
            //var Host = "118.69.199.203";
            //int Port = 25;
            var Host = "smtp.gmail.com";
            int Port = 587;
            //var strMailFromAlias = "*****@*****.**";
            //var Password = "******";
            var strDisplayNameMailFrom = "";
            var From = "*****@*****.**";
            var sPassword = "******";
            //var strDisplayNameMailFrom = "Pandemos - Đặt Hàng";
            //var From = "*****@*****.**";
            //var sPassword = "******";
            bool bEnableSSL = true;
            // Sua lai ham check chuoi ma hoa du lieu
            //if (recive_SecureHash !=doSecureHash)
            if (hashvalidateResult == "CORRECTED" && txnResponseCode.Trim() == "0")
            {
                //Common.ShowAlert(SECURE_SECRET);

                //string Host = "118.69.199.203";
                //int Port = 25;
                //string From = "*****@*****.**";
                //string Password = "******";
                string Body = "<div style='width: 100%; font-size: 11px; font-family: Arial;'>";
                Body += "<h3 style='color: rgb(204,102,0); font-size: 22px; border-bottom-color: gray; border-bottom-width: 1px;border-bottom-style: dashed; margin-bottom: 20px; font-family: Times New Roman;'>Cảm ơn bạn đã đặt hàng/Thanks for Your Order!</h3>";

                Body += "<div style='padding: 10px; background-color: rgb(255,244,234); font-family: Verdana;font-size: 11px; margin-bottom: 20px;'>";
                Body += "<p>Mã số đơn hàng của bạn là <b>" + OrderNumber + "</b>. Chi tiết đơn hàng được liệt kê ở phía dưới. Để theo dõi đơn hàng, xin vui lòng vào mục <a style='font-size: 11px;' href='http://www.pandemos.vn/kiem-tra-don-hang.aspx'>theo dõi đơn hàng</a></p>";
                //Body += "<p>Your order ID is <b>" + OrderNumber + "</b>. A summary of your order is shown below. To view the status of your order <a style='font-size: 11px;' href='http://www.pandemos.vn/theo-doi-don-hang.aspx'>click here.</a></p>";
                Body += "</div>";
                //Body += "<div style='padding: 10px; background-color: rgb(255, 239, 239); font-family: Verdana;font-size: 11px; margin-bottom: 20px;'><p>Để hoàn tất đặt hàng xin vui lòng thanh toán đơn hàng theo một trong các phương thức hiện có trên website</p><p>Your order requires payment before it can be finalized. Please check our website for available methods</p></div>";
                Body += "<div style='padding: 10px; background-color: rgb(255, 239, 239); font-family: Verdana;font-size: 11px; margin-bottom: 20px;'><p>Để hoàn tất đặt hàng xin vui lòng thanh toán đơn hàng theo một trong các phương thức hiện có trên website</p></div>";
                //Body += "<div style='font-family: Verdana; font-size: 11px; margin-bottom: 20px;'><table style='width: 100%' cellpadding='0' cellspacing='0'><tr><td style='width: 50%;'><h4 style='font-size: 18px; margin-bottom: 5px; margin-bottom: 20px;'>Người mua/Buyer</h4><div style='font-size: 11px;font-family: Verdana;'><p><b>" + BuyerName + "</b></p><p>" + Address1 + "</p><p>" + DistrictName1 + "</p><p>" + ProvinceCode1 + "</p></div></td><td style='width: 50%;'><h4 style='font-size: 18px; margin-bottom: 5px; margin-bottom: 20px;'>Người nhận/Recipient</h4><div style='font-size: 11px;font-family: Verdana;'><p><b>" + YourName + "</b></p><p>" + Address + "</p><p>" + DistrictName + "</p><p>" + ProvinceCode + "</p></div></td></tr></table></div>";
                Body += "<div style='font-family: Verdana; font-size: 11px; margin-bottom: 20px;'><table style='width: 100%' cellpadding='0' cellspacing='0'><tr><td style='width: 50%;'><h4 style='font-size: 18px; margin-bottom: 5px; margin-bottom: 20px;'>Người nhận/Recipient</h4><div style='font-size: 11px;font-family: Verdana;'><p><b>" + YourName + "</b></p><p>" + Address + "</p><p>" + DistrictName + "</p><p>" + ProvinceCode + "</p></div></td></tr></table></div>";
                Body += "<div style='font-family: Verdana; font-size: 11px; margin-bottom: 20px;'><h4 style='font-size: 18px;'>Chi tiết đơn hàng/Your Order Contains...</h4>";

                Body += "<div style='font-size: 11px; font-family: Verdana'>";
                //Body += "<p><b>* Hình thức giao hàng</b>: " + DeliveryMethodsEmail + "</p>";
                //Body += "<p><b>* Hình thức thanh toán</b>:" + ServiceName + "</p>";
                Body += "<p><b>* Phương thức thanh toán</b>: " + PaymentMethodName + "</p>";
                //Body += "<p><b>* Ngày - Giờ giao</b>: " + EmailDeliveryDate + "</p>";
                Body += "</div>";

                Body += "<table style='font-size: 11px; font-family: Verdana; padding: 10px; border: 1px solid #C7D7DB; width: 100%;border-collapse: collapse;' cellpadding='0' cellspacing='0'>";
                //Body += "<tr><th align='left' style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Sản phẩm/Cart Items</th><th style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Cỡ/Size</th><th style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Số lượng/Qty</th><th align='center' style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Giá/Item Price</th><th align='right' style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Thành tiền/Item Total</th></tr>";
                Body += "<tr><th align='left' style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Sản phẩm/Cart Items</th><th style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Số lượng/Qty</th><th align='center' style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Giá/Item Price</th><th align='right' style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Thành tiền/Item Total</th></tr>";

                foreach (DataRow dr in dtCart.Rows)
                {
                    string ProductCode = dr["Tag"].ToString();
                    //string ProductID = dr["ProductID"].ToString();
                    string ProductName = dr["ProductName"].ToString();
                    string Quantity = dr["Quantity"].ToString();
                    string Price = dr["Price"].ToString();
                    string ProductOptionCategoryName = dr["ProductOptionCategoryName"].ToString();
                    string ProductLengthName = dr["ProductLengthName"].ToString();
                    double tPrice = Convert.ToDouble(Price) * Convert.ToDouble(Quantity);

                    var itemPrice = string.Format("{0:##,###.##}", tPrice).Replace('.', '*').Replace(',', '.').Replace('*', ',') + " VND";
                    var sPrice = string.Format("{0:##,###.##}", dr["Price"]).Replace('.', '*').Replace(',', '.').Replace('*', ',') + " VND";
                    Amount += Convert.ToDouble(Price) * Convert.ToDouble(Quantity);
                    Body += "<tr>";
                    Body += "<td style='padding: 5px; border-collapse: collapse; border-bottom: 1px solid #C7D7DB;'>" + ProductName + " - " + ProductCode + " - " + ProductOptionCategoryName + " - " + ProductLengthName + "</td>";
                    //Body += "<td align='center' style='padding: 5px; border-collapse: collapse; border-bottom: 1px solid #C7D7DB;'>" + ProductColorName + "</td>";
                    Body += "<td align='center' style='padding: 5px; border-collapse: collapse; border-bottom: 1px solid #C7D7DB;'>" + Quantity + "</td>";
                    Body += "<td align='center' style='padding: 5px; border-collapse: collapse; border-bottom: 1px solid #C7D7DB;'>" + sPrice + "</td>";
                    Body += "<td align='right' style='padding: 5px; border-collapse: collapse; border-bottom: 1px solid #C7D7DB;'>" + itemPrice + "</td>";
                    Body += "</tr>";
                }
                Body += "</table>";
                Body += "<div style='clear: both;'></div>";
                var iShippingPrice =
                    Convert.ToDouble(string.IsNullOrEmpty(ShippingPrice.ToString()) ? "0" : ShippingPrice);
                sAmount = Amount + iShippingPrice;
                //sAmount = Amount;

                var tAmount = string.Format("{0:##,###.##}", Amount).Replace('.', '*').Replace(',', '.').Replace('*', ',') + " VNĐ";
                var Shipping = string.Format("{0:##,###.##}", iShippingPrice).Replace('.', '*').Replace(',', '.').Replace('*', ',') + " VNĐ";
                var SubTotal = string.Format("{0:##,###.##}", sAmount).Replace('.', '*').Replace(',', '.').Replace('*', ',') + " VNĐ";

                Body += "<table style='font-size: 11px; font-family: Verdana; text-align: right; margin: 10px 0; width: 100%; float: right;' cellpadding='0' cellspacing='0'>";
                Body += "<tr><td style='width:85%;'>Thành tiền/Subtotal:</td><td style='width:15%;'>" + tAmount + "</td></tr>";
                Body += "<tr><td>Phí giao hàng/Shipping:</td><td>" + Shipping + "</td></tr>";
                Body += "<tr><td><b>Tổng tiền/Grand Total:</b></td><td><b>" + SubTotal + "</b></td></tr>";
                Body += "</table>";
                Body += "<div style='clear: both;'></div>";
                //Body += "<ul style='font-size: 11px; font-style: italic; padding: 0;margin: 0; list-style-type: none;'>";
                //Body += "<li><b>*</b> Giá sản phẩm chưa bao gồm thuế VAT 10%/ Item price is excluded of 10% VAT</li>";
                //Body += "<li><b>*</b> Xin vui lòng <a style='font-size: 11px;' href='http://www.pandemos.vn/lien-he.aspx'>gọi điện</a> tới Đồng Hồ Anh Minhs-Hoa Trái Cây để thay đổi nếu Quý khách muốn sửa đơn hàng/ Please <a style='font-size: 11px;' href='http://www.pandemos.vn/lien-he.aspx'>call</a> Đồng Hồ Anh Minhs-Hoa Trái Cây if you are in need of making a modification to your Order </li>";
                //Body += "<li><b>*</b> Vui lòng tham khảo các điều khoản về Thay đổi và Hủy đơn hàng trong <a style='font-size: 11px;' href='http://www.pandemos.vn/thoa-thuan-su-dung.aspx'>Thỏa Thuận Sử Dụng</a>/Please check Policy for Order Change and Cancelation in our <a style='font-size: 11px;' href='http://www.pandemos.vn/thoa-thuan-su-dung.aspx'>Term of Use</a></li>";
                //Body += "</ul>";
                Body += "</div>";
                Body += "<div style='font-family:Verdana;font-size:12px;margin-top:10px;'>";
                Body += "<div style='font-size:16px;font-weight:bold;'>=================</div>";
                Body += "<h4 style='font-size:14px;font-family:Verdana;margin:0;padding:0;'>Pandemos</h4>";
                Body += "<div style='font-size:11px;font-family:Verdana;margin-top:5px;padding:0;margin:0;'>";
                Body += "<p>Add: 403, Hai Bà Trưng, Phường 8, Quận 3, Tp HCM.</p>";
                Body += "<p>Tel: (08)3 820 8577 - Hotline: 0902 563 577 </p>";
                //Body += "<p>M: +84 908 xxx xxx>";

                Body += "<p>W: <a href='http://www.pandemos.vn'>www.pandemos.vn</a></p>";
                Body += "<p>E: <a href='mailto:[email protected]'>[email protected]</a></p>";
                Body += "</div>";
                Body += "</div>";
                Body += "</div>";

                //var bSendEmail = Common.SendMail(Host, Port, From, strDisplayNameMailFrom, sPassword, Email, To, Subject, Body, false);
                var bSendEmail = Common.SendMail(Host, Port, From, sPassword, Email, To, Subject, Body, true);
                if (bSendEmail)
                {
                    //oOrders.OrdersInsert1(
                    //    OrderNumber,
                    //    UserName,
                    //    OrderStatusID,
                    //    ShippingStatusID,
                    //    PaymentMethodID,
                    //    BillingAddressID,
                    //    ShippingAddressID,
                    //    Notes,
                    //    Comission,
                    //    "",
                    //    "",
                    //    YourAddress,
                    //    "",
                    //    Email
                    //    );

                    //foreach (DataRow dr in dtCart.Rows)
                    //{
                    //    string ProductID = dr["ProductID"].ToString();
                    //    string Quantity = dr["Quantity"].ToString();
                    //    string Price = dr["Price"].ToString();
                    //    string CreateBy = UserName;
                    //    string ProductOptionCategoryName = dr["ProductOptionCategoryName"].ToString();
                    //    string ProductLengthName = dr["ProductLengthName"].ToString();
                    //    //string ProductName = dr["ProductName"].ToString();

                    //    oOrderDetail.OrderDetailInsert1(
                    //       OrderNumber,
                    //       ProductID,
                    //       Quantity,
                    //       Price,
                    //       CreateBy,
                    //       ProductOptionCategoryName,
                    //       ProductLengthName,
                    //       Email
                    //    );
                    //}
                    //OrderNumber = oOrders.OrderID;

                    oOrders.OrdersQuickUpdate_PayStatusID(
                        OrderNumber,
                        "1"
                        );
                }
                //Common.ShowAlert("Bạn đã đặt hàng thành công. Chúng tôi sẽ liên lạc với bạn trong thời gian sớm nhất!");
                vpc_Result.Text = "Giao dịch đã thành công";
                Panel2.Visible = true;
                Session["Cart"] = null;
                Session["CheckOut"] = null;
            }
            else if (hashvalidateResult == "INVALIDATED" && txnResponseCode.Trim() == "0")
            {
                oOrders.OrdersQuickUpdate_PayStatusID(
                       OrderNumber,
                       "2"
                       );
                vpc_Result.Text = "Giao dịch đang chờ xử lý";
                Session["Cart"] = null;
                Session["CheckOut"] = null;
                //Response.Redirect("~/gio-hang.aspx");
            }
            else
            {
                oOrders.OrdersQuickUpdate_PayStatusID(
                       OrderNumber,
                       "3"
                       );
                vpc_Result.Text = "Giao dịch không thành công. Vui lòng tiến hành thanh toán lại";
                Session["Cart"] = null;
                Session["CheckOut"] = null;
                //Response.Redirect("~/gio-hang.aspx");
            }
        }
        else
            Response.Redirect("~/login.aspx?returnurl=" + Request.Url.PathAndQuery);
    }
示例#25
0
        public ActionResult ThanhToanTT()
        {
            var     sessionCart = (List <CartItem>)Session[CommonConstants.CartSession];
            var     orderNew    = new ORDER();
            decimal total       = 0;

            foreach (var item in sessionCart)
            {
                var detail = new ORDERDETAIL();
                detail.OrderID   = orderNew.ID;
                detail.ProductID = item.Product.ID;
                detail.Quantity  = item.Quantity;
                if (item.Product.PromotionPrice.HasValue)
                {
                    detail.Price = item.Product.PromotionPrice.Value;
                    total       += (item.Product.PromotionPrice.GetValueOrDefault(0) * item.Quantity);
                }
                else
                {
                    detail.Price = item.Product.Price;
                    total       += (item.Product.Price.Value * item.Quantity);
                }
            }
            decimal totals = total * 100;
            var     id     = sessionCart.ToList().LastOrDefault();
            string  text   = "";

            foreach (var cart in sessionCart)
            {
                text = text + cart.Product.Name + "  " + cart.Product.Quantity;
                if (cart.Product.ID != id.Product.ID)
                {
                    text = text + " + ";
                }
            }

            Session[CommonConstants.CartSession] = null;


            string SECURE_SECRET = "A3EFDFABA8653DF2342E8DAC29B51AF0";
            // Khoi tao lop thu vien va gan gia tri cac tham so gui sang cong thanh toan

            VPCRequest conn = new VPCRequest("https://mtf.onepay.vn/onecomm-pay/vpc.op");

            conn.SetSecureSecret(SECURE_SECRET);

            // Add the Digital Order Fields for the functionality you wish to use
            // Core Transaction Fields
            conn.AddDigitalOrderField("Title", "onepay paygate");
            conn.AddDigitalOrderField("vpc_Locale", "vn");//Chon ngon ngu hien thi tren cong thanh toan (vn/en)
            conn.AddDigitalOrderField("vpc_Version", "2");
            conn.AddDigitalOrderField("vpc_Command", "pay");
            conn.AddDigitalOrderField("vpc_Merchant", "ONEPAY");
            conn.AddDigitalOrderField("vpc_AccessCode", "D67342C2");
            conn.AddDigitalOrderField("vpc_MerchTxnRef", MaHoaMD5(ngaunhien().ToString()));
            conn.AddDigitalOrderField("vpc_OrderInfo", text);
            conn.AddDigitalOrderField("vpc_Amount", totals.ToString());
            conn.AddDigitalOrderField("vpc_Currency", "VND");
            conn.AddDigitalOrderField("vpc_ReturnURL", Url.Action("Index", "TrangChu", null, Request.Url.Scheme));
            // Thong tin them ve khach hang. De trong neu khong co thong tin
            conn.AddDigitalOrderField("vpc_SHIP_Street01", "");
            conn.AddDigitalOrderField("vpc_SHIP_Provice", "");
            conn.AddDigitalOrderField("vpc_SHIP_City", "");
            conn.AddDigitalOrderField("vpc_SHIP_Country", "Vietnam");
            conn.AddDigitalOrderField("vpc_Customer_Phone", "");
            conn.AddDigitalOrderField("vpc_Customer_Email", "");
            conn.AddDigitalOrderField("vpc_Customer_Id", "onepay_paygate");
            // Dia chi IP cua khach hang
            conn.AddDigitalOrderField("vpc_TicketNo", "");
            // Chuyen huong trinh duyet sang cong thanh toan
            String url = conn.Create3PartyQueryString();

            return(Redirect(url));
        }
示例#26
0
    protected void GetResponse()
    {
        String URL = "";
        String vpc_TxnResponseCode = "";
        String txtRefCode = "";
        String ShoWName = "";
        String stramt = "";
        String ReceiptNo = "";
        String vpc_avsResultCode = "";
        String TranSactNo = "";
        String ResponseCode = "";
        String Amount = "";
        String vpc_3DSstatus = "";
        String vpc_3DSenrolled = "";
        String vpc_AcqAVSRespCode = "";

        try
        {
            Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Prepare to transact wth AmEx...");

            // Create the VPCRequest object
            VPCRequest conn = new VPCRequest("https://vpos.amxvpos.com/vpcpay");
            conn.setSecureSecret("C12DC6FE16681E9DD3211D2BB0C0BBA2");

            //Live
            //conn.setSecureSecret("44DD98D32ECD3C1AA7F12A1D0F8B41EA");
            // Process the response
            conn.process3PartyResponse(Page.Request.QueryString);

            // Check if the transaction was successful or if there was an error
            vpc_TxnResponseCode = conn.getResultField("vpc_TxnResponseCode", "Unknown");

            // Set the display fields for the receipt with the result fields
            // Core Fields

            // Label_vpc_TxnResponseCode.Text = vpc_TxnResponseCode;

            txtRefCode = conn.getResultField("vpc_MerchTxnRef", "Unknown");
            ShoWName = conn.getResultField("vpc_OrderInfo", "Unknown");

            Amount = conn.getResultField("vpc_Amount", "Unknown");
            ReceiptNo = conn.getResultField("vpc_ReceiptNo", "Unknown");
            Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("AmEx Receiot No. : " + ReceiptNo);
            //Safe Key Verification


            vpc_3DSenrolled = conn.getResultField("vpc_3DSenrolled", "Unknown");
            Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("vpc_3DSenrolled : " + vpc_3DSenrolled);

            vpc_AcqAVSRespCode = conn.getResultField("vpc_AcqAVSRespCode", "Unknown");
            Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("vpc_AcqAVSRespCode : " + vpc_AcqAVSRespCode);

            // Address Verification / Advanced Address Verification
            vpc_avsResultCode = conn.getResultField("vpc_AVSResultCode", "Unknown");
            Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("AmEx transaction Auth result code vpc_avsResultCode: " + vpc_avsResultCode);

            // Perform the Capture if the Authorization was successful
            TranSactNo = conn.getResultField("vpc_TransactionNo", "Unknown");
            Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("AmEx transaction Auth response code vpc_TxnResponseCode : " + vpc_TxnResponseCode);
            if (vpc_3DSenrolled == "Y")
            {
                vpc_3DSstatus = conn.getResultField("vpc_3DSstatus", "Unknown");
                Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("AmEx transaction Auth safe key code vpc_3DSstatus: " + vpc_3DSstatus);
                if (vpc_TxnResponseCode == "0" && (vpc_3DSstatus == "Y" || vpc_3DSstatus == "A"))
                {
                    Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("AmEx authorization successful, starting capture...");
                    // Create a new VPCRequest Object and set the proxy details if required
                    conn = new VPCRequest("https://vpos.amxvpos.com/vpcdps");
                    conn.setProxyHost("");
                    conn.setProxyUser("");
                    conn.setProxyPassword("");
                    conn.setProxyDomain("");
                    //test server
                    // Add the Required Fields

                    conn.addDigitialOrderField("vpc_Version", "1");
                    conn.addDigitialOrderField("vpc_AccessCode", "D30639FF");
                    conn.addDigitialOrderField("vpc_Merchant", "TEST9824533848");
                    conn.addDigitialOrderField("vpc_User", "kingdomama");
                    conn.addDigitialOrderField("vpc_Password", "0password");
                    conn.addDigitialOrderField("vpc_Command", "capture");

                    //live server
                    //conn.addDigitialOrderField("vpc_Version", "1");
                    //conn.addDigitialOrderField("vpc_AccessCode", "0FE6FE77");
                    //conn.addDigitialOrderField("vpc_Merchant", "9824533848");
                    //conn.addDigitialOrderField("vpc_User", "kingdomama");
                    //conn.addDigitialOrderField("vpc_Password", "0password");
                    //conn.addDigitialOrderField("vpc_Command", "capture");

                    conn.addDigitialOrderField("vpc_MerchTxnRef", txtRefCode + "-C");
                    conn.addDigitialOrderField("vpc_TransNo", TranSactNo);
                    conn.addDigitialOrderField("vpc_Amount", Amount);
                    // Perform the transaction
                    conn.sendRequest();
                    // Check if the transaction was successful or if there was an error
                    ResponseCode = conn.getResultField("vpc_TxnResponseCode", "Unknown");
                    Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("AmEx transaction Capture response code: " + ResponseCode);

                    //ReceiptNo = conn.getResultField("vpc_ReceiptNo", "Unknown");

                }
            }
            else
            {
                if (vpc_TxnResponseCode == "0" && vpc_AcqAVSRespCode == "M")
                {
                    Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("AmEx authorization successful, starting capture...");
                    // Create a new VPCRequest Object and set the proxy details if required
                    conn = new VPCRequest("https://vpos.amxvpos.com/vpcdps");
                    conn.setProxyHost("");
                    conn.setProxyUser("");
                    conn.setProxyPassword("");
                    conn.setProxyDomain("");
                    //test server
                    // Add the Required Fields

                    conn.addDigitialOrderField("vpc_Version", "1");
                    conn.addDigitialOrderField("vpc_AccessCode", "D30639FF");
                    conn.addDigitialOrderField("vpc_Merchant", "TEST9824533848");
                    conn.addDigitialOrderField("vpc_User", "kingdomama");
                    conn.addDigitialOrderField("vpc_Password", "0password");
                    conn.addDigitialOrderField("vpc_Command", "capture");

                    //live server
                    //conn.addDigitialOrderField("vpc_Version", "1");
                    //conn.addDigitialOrderField("vpc_AccessCode", "0FE6FE77");
                    //conn.addDigitialOrderField("vpc_Merchant", "9824533848");
                    //conn.addDigitialOrderField("vpc_User", "kingdomama");
                    //conn.addDigitialOrderField("vpc_Password", "0password");
                    //conn.addDigitialOrderField("vpc_Command", "capture");

                    conn.addDigitialOrderField("vpc_MerchTxnRef", txtRefCode + "-C");
                    conn.addDigitialOrderField("vpc_TransNo", TranSactNo);
                    conn.addDigitialOrderField("vpc_Amount", Amount);
                    // Perform the transaction
                    conn.sendRequest();
                    // Check if the transaction was successful or if there was an error
                    ResponseCode = conn.getResultField("vpc_TxnResponseCode", "Unknown");
                    Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("AmEx transaction Capture response code: " + ResponseCode);
                }
            }
            //convert amt  
            int amt = (Convert.ToInt32(Amount)) / 100;
            stramt = amt.ToString();
            GTICKBOL gb = new GTICKBOL();
            GTICKV.LogEntry(txtRefCode, "Return From AMEX Payment Gateway, amt : " + stramt + ",recieptNO : " + ReceiptNo, "9", txtRefCode);
            //URL = "ReturnReceipt.aspx?tid=" + txtRefCode + "&sta=" + vpc_TxnResponseCode + "&amt=" + stramt + "&rec=" + ReceiptNo + "&Safecode=" + vpc_3DSstatus + "&response=" + "" + "&enroll=" + vpc_3DSenrolled;
            URL = "ReturnReceipt.aspx?tid=" + txtRefCode + "&sta=" + vpc_TxnResponseCode + "&amt=" + stramt + "&rec=" + ReceiptNo + "&Safecode=" + vpc_3DSstatus + "&response=" + vpc_AcqAVSRespCode + "&enroll=" + vpc_3DSenrolled;
            Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("return recipt url: " + URL);
            Server.Transfer(URL, false);
        }
        catch (Exception ex)
        {
            Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Error in AmEx Payment Response: " + ex.Message);
        }
    }
    protected void btnOrderLogin_Click(object sender, EventArgs e)
    {
        var dtCart = Session["Cart"] as DataTable;
        if (dtCart != null)
        {
            string OrderNumber = DateTime.Now.ToString("ddMMyy") + Guid.NewGuid().GetHashCode().ToString("X").Substring(0, 4);
            Session["OrderNumber"] = OrderNumber;
            double Amount = 0, sAmount = 0;
            string LastName,
                   FirstName,
                   Address,
                   Email,
                   ProvinceCode,
                   DistrictName,
                   CountryName,
                   AddressBookID,
                   HomePhone,
                   strMessage;
            //CellPhone,
            //CountryCode,
            //City,
            //Nationality,
            //ZipCode;

            var dtAddressBook = (DataView)OdsAddressBook.Select();
            AddressBookID = dtAddressBook[0]["AddressBookID"].ToString();
            LastName = dtAddressBook[0]["LastName"].ToString();
            FirstName = dtAddressBook[0]["FirstName"].ToString();
            Address = dtAddressBook[0]["Address1"].ToString();
            Email = dtAddressBook[0]["Email"].ToString();
            ProvinceCode = dtAddressBook[0]["ProvinceName"].ToString();
            CountryName = dtAddressBook[0]["CountryName"].ToString();
            DistrictName = dtAddressBook[0]["DistrictName"].ToString();
            HomePhone = (FormView1.FindControl("txtPhone") as TextBox).Text;
            strMessage = (FormView1.FindControl("txtMessage") as TextBox).Text;

            //ZipCode = dtAddressBook[0]["ZipCode"].ToString();
            //City = dtAddressBook[0]["City"].ToString();
            //CountryCode = dtAddressBook[0]["CountryShortName"].ToString();
            //Nationality = dtAddressBook[0]["Nationality"].ToString();
            //HomePhone = dtAddressBook[0]["HomePhone"].ToString();
            //CellPhone = dtAddressBook[0]["CellPhone"].ToString();
            //var BuyerName = LastName1 + " " + FirstName1;
            //var BuyerAddress = Address1 + ", " + DistrictName1 + ", " + ProvinceCode1 + ", " + CountryName1;
            //var lblSubTotal = ((Label)lstShoppingCart.FindControl("lblSubTotal")).Text.Trim();
            var ShippingPrice = Session["ShippingPrice"];
            //var To = "*****@*****.**";
            //var Subject = "Đặt hàng/Order";
            var YourName = FirstName + " " + LastName;
            //var YourEmail = Email;
            var YourAddress = Address + ", " + DistrictName + ", " + ProvinceCode + ", " + CountryName;

            //var To = "*****@*****.**";
            var To = "*****@*****.**";
            var Subject = "Chúng tôi đã nhận được đơn hàng: " + OrderNumber;
            //var Host = "118.69.199.203";
            //int Port = 25;
            var Host = "smtp.gmail.com";
            int Port = 587;
            var strDisplayNameMailFrom = "";
            var From = "*****@*****.**";
            var sPassword = "******";
            //var strDisplayNameMailFrom = "Pandemos - Đặt Hàng";
            //var From = "*****@*****.**";
            //var sPassword = "******";
            bool bEnableSSL = true;
            //string Host = "118.69.199.203";
            //int Port = 25;
            //string From = "*****@*****.**";
            //string Password = "******";

            var oOrders = new Orders();
            var oOrderDetail = new OrderDetail();

            var OrderID = OrderNumber;
            var UserName = string.IsNullOrEmpty(User.Identity.Name) ? "" : User.Identity.Name;
            var OrderStatusID = "1";
            var ShippingStatusID = "1";
            var BillingAddressID = AddressBookID;
            var ShippingAddressID = AddressBookID;
            var Notes = strMessage;
            var Comission = "";

            if (rbtMoney.Checked)
            {
                //var To = "*****@*****.**";

                string Body = "<div style='width: 100%; font-size: 11px; font-family: Arial;'>";
                Body += "<h3 style='color: rgb(204,102,0); font-size: 22px; border-bottom-color: gray; border-bottom-width: 1px;border-bottom-style: dashed; margin-bottom: 20px; font-family: Times New Roman;'>Cảm ơn bạn đã đặt hàng/Thanks for Your Order!</h3>";

                Body += "<div style='padding: 10px; background-color: rgb(255,244,234); font-family: Verdana;font-size: 11px; margin-bottom: 20px;'>";
                Body += "<p>Mã số đơn hàng của bạn là <b>" + OrderNumber + "</b>. Chi tiết đơn hàng được liệt kê ở phía dưới. Để theo dõi đơn hàng, xin vui lòng vào mục <a style='font-size: 11px;' href='http://www.pandemos.vn/kiem-tra-don-hang.aspx'>theo dõi đơn hàng</a></p>";
                //Body += "<p>Your order ID is <b>" + OrderNumber + "</b>. A summary of your order is shown below. To view the status of your order <a style='font-size: 11px;' href='http://www.pandemos.vn/theo-doi-don-hang.aspx'>click here.</a></p>";
                Body += "</div>";
                //Body += "<div style='padding: 10px; background-color: rgb(255, 239, 239); font-family: Verdana;font-size: 11px; margin-bottom: 20px;'><p>Để hoàn tất đặt hàng xin vui lòng thanh toán đơn hàng theo một trong các phương thức hiện có trên website</p><p>Your order requires payment before it can be finalized. Please check our website for available methods</p></div>";
                Body += "<div style='padding: 10px; background-color: rgb(255, 239, 239); font-family: Verdana;font-size: 11px; margin-bottom: 20px;'><p>Để hoàn tất đặt hàng xin vui lòng thanh toán đơn hàng theo một trong các phương thức hiện có trên website</p></div>";
                //Body += "<div style='font-family: Verdana; font-size: 11px; margin-bottom: 20px;'><table style='width: 100%' cellpadding='0' cellspacing='0'><tr><td style='width: 50%;'><h4 style='font-size: 18px; margin-bottom: 5px; margin-bottom: 20px;'>Người mua/Buyer</h4><div style='font-size: 11px;font-family: Verdana;'><p><b>" + BuyerName + "</b></p><p>" + Address1 + "</p><p>" + DistrictName1 + "</p><p>" + ProvinceCode1 + "</p></div></td><td style='width: 50%;'><h4 style='font-size: 18px; margin-bottom: 5px; margin-bottom: 20px;'>Người nhận/Recipient</h4><div style='font-size: 11px;font-family: Verdana;'><p><b>" + YourName + "</b></p><p>" + Address + "</p><p>" + DistrictName + "</p><p>" + ProvinceCode + "</p></div></td></tr></table></div>";
                Body += "<div style='font-family: Verdana; font-size: 11px; margin-bottom: 20px;'><table style='width: 100%' cellpadding='0' cellspacing='0'><tr><td style='width: 50%;'><h4 style='font-size: 18px; margin-bottom: 5px; margin-bottom: 20px;'>Người nhận/Recipient</h4><div style='font-size: 11px;font-family: Verdana;'><p><b>" + YourName + "</b></p><p>" + Address + "</p><p>" + DistrictName + "</p><p>" + ProvinceCode + "</p></div></td></tr></table></div>";
                Body += "<div style='font-family: Verdana; font-size: 11px; margin-bottom: 20px;'><h4 style='font-size: 18px;'>Chi tiết đơn hàng/Your Order Contains...</h4>";

                Body += "<div style='font-size: 11px; font-family: Verdana'>";
                //Body += "<p><b>* Hình thức giao hàng</b>: " + DeliveryMethodsEmail + "</p>";
                //Body += "<p><b>* Hình thức thanh toán</b>:" + ServiceName + "</p>";
                Body += "<p><b>* Phương thức thanh toán</b>: Tiền mặt</p>";
                //Body += "<p><b>* Ngày - Giờ giao</b>: " + EmailDeliveryDate + "</p>";
                Body += "</div>";

                Body += "<table style='font-size: 11px; font-family: Verdana; padding: 10px; border: 1px solid #C7D7DB; width: 100%;border-collapse: collapse;' cellpadding='0' cellspacing='0'>";
                //Body += "<tr><th align='left' style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Sản phẩm/Cart Items</th><th style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Cỡ/Size</th><th style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Số lượng/Qty</th><th align='center' style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Giá/Item Price</th><th align='right' style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Thành tiền/Item Total</th></tr>";
                Body += "<tr><th align='left' style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Sản phẩm/Cart Items</th><th style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Số lượng/Qty</th><th align='center' style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Giá/Item Price</th><th align='right' style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Thành tiền/Item Total</th></tr>";

                foreach (DataRow dr in dtCart.Rows)
                {
                    string ProductCode = dr["Tag"].ToString();
                    //string ProductID = dr["ProductID"].ToString();
                    string ProductName = dr["ProductName"].ToString();
                    string Quantity = dr["Quantity"].ToString();
                    string Price = dr["Price"].ToString();
                    string ProductOptionCategoryName = dr["ProductOptionCategoryName"].ToString();
                    string ProductLengthName = dr["ProductLengthName"].ToString();
                    double tPrice = Convert.ToDouble(Price) * Convert.ToDouble(Quantity);

                    var itemPrice = string.Format("{0:##,###.##}", tPrice).Replace('.', '*').Replace(',', '.').Replace('*', ',') + " VND";
                    var sPrice = string.Format("{0:##,###.##}", dr["Price"]).Replace('.', '*').Replace(',', '.').Replace('*', ',') + " VND";
                    Amount += Convert.ToDouble(Price) * Convert.ToDouble(Quantity);
                    Body += "<tr>";
                    Body += "<td style='padding: 5px; border-collapse: collapse; border-bottom: 1px solid #C7D7DB;'>" + ProductName + " - " + ProductCode + " - " + ProductOptionCategoryName + " - " + ProductLengthName + "</td>";
                    //Body += "<td align='center' style='padding: 5px; border-collapse: collapse; border-bottom: 1px solid #C7D7DB;'>" + ProductColorName + "</td>";
                    Body += "<td align='center' style='padding: 5px; border-collapse: collapse; border-bottom: 1px solid #C7D7DB;'>" + Quantity + "</td>";
                    Body += "<td align='center' style='padding: 5px; border-collapse: collapse; border-bottom: 1px solid #C7D7DB;'>" + sPrice + "</td>";
                    Body += "<td align='right' style='padding: 5px; border-collapse: collapse; border-bottom: 1px solid #C7D7DB;'>" + itemPrice + "</td>";
                    Body += "</tr>";
                }
                Body += "</table>";
                Body += "<div style='clear: both;'></div>";
                var iShippingPrice =
                    Convert.ToDouble(string.IsNullOrEmpty(ShippingPrice.ToString()) ? "0" : ShippingPrice);
                sAmount = Amount + iShippingPrice;
                //sAmount = Amount;

                var tAmount = string.Format("{0:##,###.##}", Amount).Replace('.', '*').Replace(',', '.').Replace('*', ',') + " VNĐ";
                var Shipping = string.Format("{0:##,###.##}", iShippingPrice).Replace('.', '*').Replace(',', '.').Replace('*', ',') + " VNĐ";
                var SubTotal = string.Format("{0:##,###.##}", sAmount).Replace('.', '*').Replace(',', '.').Replace('*', ',') + " VNĐ";

                Body += "<table style='font-size: 11px; font-family: Verdana; text-align: right; margin: 10px 0; width: 100%; float: right;' cellpadding='0' cellspacing='0'>";
                Body += "<tr><td style='width:85%;'>Thành tiền/Subtotal:</td><td style='width:15%;'>" + tAmount + "</td></tr>";
                Body += "<tr><td>Phí giao hàng/Shipping:</td><td>" + Shipping + "</td></tr>";
                Body += "<tr><td><b>Tổng tiền/Grand Total:</b></td><td><b>" + SubTotal + "</b></td></tr>";
                Body += "</table>";
                Body += "<div style='clear: both;'></div>";
                //Body += "<ul style='font-size: 11px; font-style: italic; padding: 0;margin: 0; list-style-type: none;'>";
                //Body += "<li><b>*</b> Giá sản phẩm chưa bao gồm thuế VAT 10%/ Item price is excluded of 10% VAT</li>";
                //Body += "<li><b>*</b> Xin vui lòng <a style='font-size: 11px;' href='http://www.pandemos.vn/lien-he.aspx'>gọi điện</a> tới Đồng Hồ Anh Minhs-Hoa Trái Cây để thay đổi nếu Quý khách muốn sửa đơn hàng/ Please <a style='font-size: 11px;' href='http://www.pandemos.vn/lien-he.aspx'>call</a> Đồng Hồ Anh Minhs-Hoa Trái Cây if you are in need of making a modification to your Order </li>";
                //Body += "<li><b>*</b> Vui lòng tham khảo các điều khoản về Thay đổi và Hủy đơn hàng trong <a style='font-size: 11px;' href='http://www.pandemos.vn/thoa-thuan-su-dung.aspx'>Thỏa Thuận Sử Dụng</a>/Please check Policy for Order Change and Cancelation in our <a style='font-size: 11px;' href='http://www.pandemos.vn/thoa-thuan-su-dung.aspx'>Term of Use</a></li>";
                //Body += "</ul>";
                Body += "</div>";
                Body += "<div style='font-family:Verdana;font-size:12px;margin-top:10px;'>";
                Body += "<div style='font-size:16px;font-weight:bold;'>=================</div>";
                Body += "<h4 style='font-size:14px;font-family:Verdana;margin:0;padding:0;'>Pandemos</h4>";
                Body += "<div style='font-size:11px;font-family:Verdana;margin-top:5px;padding:0;margin:0;'>";
                Body += "<p>Add: 403, Hai Bà Trưng , P.8, Quận 3, HCM </p>";
                Body += "<p>Tel: (08)3 820 8577 - Hotline: 0902 563 577 </p>";
                //Body += "<p>M: +84 908 xxx xxx>";

                Body += "<p>W: <a href='http://www.pandemos.vn'>www.pandemos.vn</a></p>";
                Body += "<p>E: <a href='mailto:[email protected]'>[email protected]</a></p>";
                Body += "</div>";
                Body += "</div>";
                Body += "</div>";

                var bSendEmail = Common.SendMail(Host, Port, From, sPassword, Email, To, Subject, Body, true);
                //var a = Common.SendMail(Host, Port, "*****@*****.**", "web123master", "*****@*****.**", "", "LIÊN HỆ CÔNG TY TNHH THƯƠNG MẠI - XUẤT KHẨU SONG KIM LONG HẢI", Body, true);
                if (bSendEmail)
                {
                    //var OrderID = OrderNumber;
                    //var UserName = string.IsNullOrEmpty(User.Identity.Name) ? "" : User.Identity.Name;
                    //var OrderStatusID = "1";
                    //var ShippingStatusID = "1";
                    var PaymentMethodID = "money";
                    //var BillingAddressID = AddressBookID;
                    //var ShippingAddressID = AddressBookID;
                    //var Notes = strMessage;
                    //var Comission = "";

                    oOrders.OrdersInsert1(
                        OrderID,
                        UserName,
                        OrderStatusID,
                        ShippingStatusID,
                        PaymentMethodID,
                        BillingAddressID,
                        ShippingAddressID,
                        Notes,
                        Comission,
                        "",
                        "",
                        YourAddress,
                        "",
                        Email
                        );
                    foreach (DataRow dr in dtCart.Rows)
                    {
                        string ProductID = dr["ProductID"].ToString();
                        string Quantity = dr["Quantity"].ToString();
                        string Price = dr["Price"].ToString();
                        string CreateBy = UserName;
                        string ProductOptionCategoryName = dr["ProductOptionCategoryName"].ToString();
                        string ProductLengthName = dr["ProductLengthName"].ToString();
                        //string ProductName = dr["ProductName"].ToString();
                        //string Type = dr["Tag"].ToString();
                        //string Description = dr["Description"].ToString();

                        oOrderDetail.OrderDetailInsert1(
                           OrderID,
                           ProductID,
                           Quantity,
                           Price,
                           CreateBy,
                           ProductOptionCategoryName,
                           ProductLengthName,
                           Email
                        );
                    }
                    Session["PaymentMethod"] = "money";
                    Session["Message"] = strMessage;
                    Response.Redirect("~/xac-nhan-don-hang.aspx");
                }
            }
            else if (rbtOnePayNoiDia.Checked)
            {
                foreach (DataRow dr in dtCart.Rows)
                {
                    string Quantity = dr["Quantity"].ToString();
                    string Price = dr["Price"].ToString();
                    Amount += Convert.ToDouble(Price) * Convert.ToDouble(Quantity);
                }
                var iShippingPrice =
                    Convert.ToDouble(string.IsNullOrEmpty(ShippingPrice.ToString()) ? "0" : ShippingPrice);
                sAmount = Amount + iShippingPrice;

                //var OrderID = OrderNumber;
                //var UserName = string.IsNullOrEmpty(User.Identity.Name) ? "" : User.Identity.Name;
                //var OrderStatusID = "1";
                //var ShippingStatusID = "1";
                var PaymentMethodID = "onepaynd";
                //var BillingAddressID = AddressBookID;
                //var ShippingAddressID = AddressBookID;
                //var Notes = strMessage;
                //var Comission = "";

                oOrders.OrdersInsert1(
                    OrderID,
                    UserName,
                    OrderStatusID,
                    ShippingStatusID,
                    PaymentMethodID,
                    BillingAddressID,
                    ShippingAddressID,
                    Notes,
                    Comission,
                    "",
                    "",
                    YourAddress,
                    "",
                    Email
                    );
                foreach (DataRow dr in dtCart.Rows)
                {
                    string ProductID = dr["ProductID"].ToString();
                    string Quantity = dr["Quantity"].ToString();
                    string Price = dr["Price"].ToString();
                    string CreateBy = UserName;
                    string ProductOptionCategoryName = dr["ProductOptionCategoryName"].ToString();
                    string ProductLengthName = dr["ProductLengthName"].ToString();

                    oOrderDetail.OrderDetailInsert1(
                       OrderID,
                       ProductID,
                       Quantity,
                       Price,
                       CreateBy,
                       ProductOptionCategoryName,
                       ProductLengthName,
                       Email
                    );
                }
                oOrders.OrdersQuickUpdate_PayStatusID(
                        OrderNumber,
                        "2"
                        );
                var uri = Request.Url.AbsoluteUri.Replace(Request.Url.PathAndQuery, string.Empty) + Request.ApplicationPath;
                // Core Transaction Fields
                var vpc_Locale = "vn";
                var vpc_Version = "2";
                var vpc_Command = "pay";
                var vpc_Merchant = "ONEPAY";//Merchant test
                var vpc_AccessCode = "D67342C2";//Access Code test
                //var vpc_Merchant = "PANDEMOS";
                //var vpc_AccessCode = "JRCFWZTK";
                var vpc_MerchTxnRef = OrderNumber;
                var vpc_OrderInfo = OrderNumber;
                var vpc_Amount = sAmount * 100;
                var vpc_Currency = "VND";
                var vpc_ReturnURL = uri + "/thanh-toan-thanh-cong.aspx?ord=" + OrderNumber;
                //Thong tin khach hang
                var vpc_SHIP_Street01 = Common.ChangeSymBol(Address);
                var vpc_SHIP_Provice = Common.ChangeSymBol(DistrictName);
                var vpc_SHIP_City = Common.ChangeSymBol(ProvinceCode);
                var vpc_SHIP_Country = "Vietnam";
                var vpc_Customer_Phone = Common.ChangeSymBol(HomePhone);
                var vpc_Customer_Email = Email;
                var vpc_Customer_Id = "";
                var vpc_Customer_Name = Common.ChangeSymBol(FirstName);
                var vpc_TicketNo = "";

                var vpc_SECURE_SECRET = "A3EFDFABA8653DF2342E8DAC29B51AF0";//Secure Hash test
                //var vpc_SECURE_SECRET = "04E8DA60020D93506DCC15B7F6A71D26";
                var vpc_URL_Payment = "https://mtf.onepay.vn/onecomm-pay/vpc.op";//dia chi thanh toan test
                //var vpc_URL_Payment = "https://onepay.vn/onecomm-pay/vpc.op";//dia chi thanh toan that
                VPCRequest conn = new VPCRequest(vpc_URL_Payment);
                conn.SetSecureSecret(vpc_SECURE_SECRET);
                // Core Transaction Fields
                conn.AddDigitalOrderField("AgainLink", "http://onepay.vn");
                conn.AddDigitalOrderField("Title", "onepay paygate");
                conn.AddDigitalOrderField("vpc_Locale", vpc_Locale);//Chon ngon ngu hien thi tren cong thanh toan (vn/en)
                conn.AddDigitalOrderField("vpc_Version", vpc_Version);
                conn.AddDigitalOrderField("vpc_Command", vpc_Command);
                conn.AddDigitalOrderField("vpc_Merchant", vpc_Merchant);
                conn.AddDigitalOrderField("vpc_AccessCode", vpc_AccessCode);
                conn.AddDigitalOrderField("vpc_MerchTxnRef", vpc_MerchTxnRef);
                conn.AddDigitalOrderField("vpc_OrderInfo", vpc_OrderInfo);
                conn.AddDigitalOrderField("vpc_Amount", vpc_Amount.ToString());
                conn.AddDigitalOrderField("vpc_Currency", vpc_Currency);
                conn.AddDigitalOrderField("vpc_ReturnURL", vpc_ReturnURL);
                //Thong tin khach hang
                conn.AddDigitalOrderField("vpc_SHIP_Street01", vpc_SHIP_Street01);
                conn.AddDigitalOrderField("vpc_SHIP_Provice", vpc_SHIP_Provice);
                conn.AddDigitalOrderField("vpc_SHIP_City", vpc_SHIP_City);
                conn.AddDigitalOrderField("vpc_SHIP_Country", vpc_SHIP_Country);
                conn.AddDigitalOrderField("vpc_Customer_Phone", vpc_Customer_Phone);
                conn.AddDigitalOrderField("vpc_Customer_Email", vpc_Customer_Email);
                conn.AddDigitalOrderField("vpc_Customer_Id", vpc_Customer_Id);
                conn.AddDigitalOrderField("vpc_Customer_Name", vpc_Customer_Name);
                // Dia chi IP cua khach hang
                conn.AddDigitalOrderField("vpc_TicketNo", vpc_TicketNo);
                // Chuyen huong trinh duyet sang cong thanh toan
                Session["PaymentMethod"] = "onepaynd";
                Session["Message"] = strMessage;
                String url = conn.Create3PartyQueryString();
                Page.Response.Redirect(url);
            }
            else if (rbtOnePayQuocTe.Checked)
            {
                foreach (DataRow dr in dtCart.Rows)
                {
                    string Quantity = dr["Quantity"].ToString();
                    string Price = dr["Price"].ToString();
                    Amount += Convert.ToDouble(Price) * Convert.ToDouble(Quantity);
                }
                var iShippingPrice =
                    Convert.ToDouble(string.IsNullOrEmpty(ShippingPrice.ToString()) ? "0" : ShippingPrice);
                sAmount = Amount + iShippingPrice;

                //var OrderID = OrderNumber;
                //var UserName = string.IsNullOrEmpty(User.Identity.Name) ? "" : User.Identity.Name;
                //var OrderStatusID = "1";
                //var ShippingStatusID = "1";
                var PaymentMethodID = "onepayqt";
                //var BillingAddressID = AddressBookID;
                //var ShippingAddressID = AddressBookID;
                //var Notes = strMessage;
                //var Comission = "";

                oOrders.OrdersInsert1(
                    OrderID,
                    UserName,
                    OrderStatusID,
                    ShippingStatusID,
                    PaymentMethodID,
                    BillingAddressID,
                    ShippingAddressID,
                    Notes,
                    Comission,
                    "",
                    "",
                    YourAddress,
                    "",
                    Email
                    );
                foreach (DataRow dr in dtCart.Rows)
                {
                    string ProductID = dr["ProductID"].ToString();
                    string Quantity = dr["Quantity"].ToString();
                    string Price = dr["Price"].ToString();
                    string CreateBy = UserName;
                    string ProductOptionCategoryName = dr["ProductOptionCategoryName"].ToString();
                    string ProductLengthName = dr["ProductLengthName"].ToString();

                    oOrderDetail.OrderDetailInsert1(
                       OrderID,
                       ProductID,
                       Quantity,
                       Price,
                       CreateBy,
                       ProductOptionCategoryName,
                       ProductLengthName,
                       Email
                    );
                }
                oOrders.OrdersQuickUpdate_PayStatusID(
                        OrderNumber,
                        "2"
                        );

                var uri = Request.Url.AbsoluteUri.Replace(Request.Url.PathAndQuery, string.Empty) + Request.ApplicationPath;
                // Core Transaction Fields
                var vpc_Locale = "en";
                var vpc_Version = "2";
                var vpc_Command = "pay";
                var vpc_Merchant = "TESTONEPAY";//Merchant Test
                var vpc_AccessCode = "6BEB2546";//Access Code Test
                //var vpc_Merchant = "PANDEMOS";
                //var vpc_AccessCode = "B94D84AE";
                var vpc_MerchTxnRef = OrderNumber;
                var vpc_OrderInfo = OrderNumber;
                var vpc_Amount = sAmount * 100;
                var vpc_Currency = "VND";
                var vpc_ReturnURL = uri + "/thanh-toan-thanh-cong.aspx?ord=" + OrderNumber;
                //Thong tin khach hang
                var vpc_SHIP_Street01 = "194 Tran Quang Khai";
                var vpc_SHIP_Provice = "Hanoi";
                var vpc_SHIP_City = "Hanoi";
                var vpc_SHIP_Country = "Vietnam";
                var vpc_Customer_Phone = "043966668";
                var vpc_Customer_Email = "*****@*****.**";
                var vpc_Customer_Id = "onepay_paygate";
                var vpc_Customer_Name = "";
                var vpc_TicketNo = "";

                var vpc_SECURE_SECRET = "6D0870CDE5F24F34F3915FB0045120DB";//Secure Hash test
                //var vpc_SECURE_SECRET = "C7BB42E2BE08E07FDF7210CB381FA04A";
                var vpc_URL_Payment = "https://mtf.onepay.vn/vpcpay/vpcpay.op";//dia chi thanh toan test
                //var vpc_URL_Payment = "https://onepay.vn/vpcpay/vpcpay.op";//dia chi thanh toan that
                VPCRequest conn = new VPCRequest(vpc_URL_Payment);
                conn.SetSecureSecret(vpc_SECURE_SECRET);
                // Core Transaction Fields
                conn.AddDigitalOrderField("AgainLink", "http://onepay.vn");
                conn.AddDigitalOrderField("Title", "onepay paygate");
                conn.AddDigitalOrderField("vpc_Locale", "vn");//Chon ngon ngu hien thi tren cong thanh toan (vn/en)
                conn.AddDigitalOrderField("vpc_Version", vpc_Version);
                conn.AddDigitalOrderField("vpc_Command", vpc_Command);
                conn.AddDigitalOrderField("vpc_Merchant", vpc_Merchant);
                conn.AddDigitalOrderField("vpc_AccessCode", vpc_AccessCode);
                conn.AddDigitalOrderField("vpc_MerchTxnRef", vpc_MerchTxnRef);
                conn.AddDigitalOrderField("vpc_OrderInfo", vpc_OrderInfo);
                conn.AddDigitalOrderField("vpc_Amount", vpc_Amount.ToString());
                conn.AddDigitalOrderField("vpc_ReturnURL", vpc_ReturnURL);
                // Thong tin them ve khach hang. De trong neu khong co thong tin
                conn.AddDigitalOrderField("vpc_SHIP_Street01", vpc_SHIP_Street01);
                conn.AddDigitalOrderField("vpc_SHIP_Provice", vpc_SHIP_Provice);
                conn.AddDigitalOrderField("vpc_SHIP_City", vpc_SHIP_City);
                conn.AddDigitalOrderField("vpc_SHIP_Country", vpc_SHIP_Country);
                conn.AddDigitalOrderField("vpc_Customer_Phone", vpc_Customer_Phone);
                conn.AddDigitalOrderField("vpc_Customer_Email", vpc_Customer_Email);
                conn.AddDigitalOrderField("vpc_Customer_Id", vpc_Customer_Id);
                conn.AddDigitalOrderField("vpc_Customer_Name", vpc_Customer_Name);
                // Dia chi IP cua khach hang
                conn.AddDigitalOrderField("vpc_TicketNo", vpc_TicketNo);
                // Chuyen huong trinh duyet sang cong thanh toan
                Session["PaymentMethod"] = "onepayqt";
                Session["Message"] = strMessage;
                //Common.ShowAlert(vpc_SHIP_Provice);
                String url = conn.Create3PartyQueryString();
                Page.Response.Redirect(url);
            }
            else if (rbtEmail.Checked)
            {
                string Body = "<div style='width: 100%; font-size: 11px; font-family: Arial;'>";
                Body += "<h3 style='color: rgb(204,102,0); font-size: 22px; border-bottom-color: gray; border-bottom-width: 1px;border-bottom-style: dashed; margin-bottom: 20px; font-family: Times New Roman;'>Cảm ơn bạn đã đặt hàng/Thanks for Your Order!</h3>";

                Body += "<div style='padding: 10px; background-color: rgb(255,244,234); font-family: Verdana;font-size: 11px; margin-bottom: 20px;'>";
                Body += "<p>Mã số đơn hàng của bạn là <b>" + OrderNumber + "</b>. Chi tiết đơn hàng được liệt kê ở phía dưới. Để theo dõi đơn hàng, xin vui lòng vào mục <a style='font-size: 11px;' href='http://www.pandemos.vn/kiem-tra-don-hang.aspx'>theo dõi đơn hàng</a></p>";
                //Body += "<p>Your order ID is <b>" + OrderNumber + "</b>. A summary of your order is shown below. To view the status of your order <a style='font-size: 11px;' href='http://www.pandemos.vn/theo-doi-don-hang.aspx'>click here.</a></p>";
                Body += "</div>";
                //Body += "<div style='padding: 10px; background-color: rgb(255, 239, 239); font-family: Verdana;font-size: 11px; margin-bottom: 20px;'><p>Để hoàn tất đặt hàng xin vui lòng thanh toán đơn hàng theo một trong các phương thức hiện có trên website</p><p>Your order requires payment before it can be finalized. Please check our website for available methods</p></div>";
                Body += "<div style='padding: 10px; background-color: rgb(255, 239, 239); font-family: Verdana;font-size: 11px; margin-bottom: 20px;'><p>Để hoàn tất đặt hàng xin vui lòng thanh toán đơn hàng theo một trong các phương thức hiện có trên website</p></div>";
                //Body += "<div style='font-family: Verdana; font-size: 11px; margin-bottom: 20px;'><table style='width: 100%' cellpadding='0' cellspacing='0'><tr><td style='width: 50%;'><h4 style='font-size: 18px; margin-bottom: 5px; margin-bottom: 20px;'>Người mua/Buyer</h4><div style='font-size: 11px;font-family: Verdana;'><p><b>" + BuyerName + "</b></p><p>" + Address1 + "</p><p>" + DistrictName1 + "</p><p>" + ProvinceCode1 + "</p></div></td><td style='width: 50%;'><h4 style='font-size: 18px; margin-bottom: 5px; margin-bottom: 20px;'>Người nhận/Recipient</h4><div style='font-size: 11px;font-family: Verdana;'><p><b>" + YourName + "</b></p><p>" + Address + "</p><p>" + DistrictName + "</p><p>" + ProvinceCode + "</p></div></td></tr></table></div>";
                Body += "<div style='font-family: Verdana; font-size: 11px; margin-bottom: 20px;'><table style='width: 100%' cellpadding='0' cellspacing='0'><tr><td style='width: 50%;'><h4 style='font-size: 18px; margin-bottom: 5px; margin-bottom: 20px;'>Người nhận/Recipient</h4><div style='font-size: 11px;font-family: Verdana;'><p><b>" + YourName + "</b></p><p>" + Address + "</p><p>" + DistrictName + "</p><p>" + ProvinceCode + "</p></div></td></tr></table></div>";
                Body += "<div style='font-family: Verdana; font-size: 11px; margin-bottom: 20px;'><h4 style='font-size: 18px;'>Chi tiết đơn hàng/Your Order Contains...</h4>";

                Body += "<div style='font-size: 11px; font-family: Verdana'>";
                //Body += "<p><b>* Hình thức giao hàng</b>: " + DeliveryMethodsEmail + "</p>";
                //Body += "<p><b>* Hình thức thanh toán</b>:" + ServiceName + "</p>";
                Body += "<p><b>* Phương thức thanh toán</b>: Thanh toán bằng chuyển khoản trực tiếp</p>";
                //Body += "<p><b>* Ngày - Giờ giao</b>: " + EmailDeliveryDate + "</p>";
                Body += "</div>";

                Body += "<table style='font-size: 11px; font-family: Verdana; padding: 10px; border: 1px solid #C7D7DB; width: 100%;border-collapse: collapse;' cellpadding='0' cellspacing='0'>";
                //Body += "<tr><th align='left' style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Sản phẩm/Cart Items</th><th style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Cỡ/Size</th><th style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Số lượng/Qty</th><th align='center' style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Giá/Item Price</th><th align='right' style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Thành tiền/Item Total</th></tr>";
                Body += "<tr><th align='left' style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Sản phẩm/Cart Items</th><th style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Số lượng/Qty</th><th align='center' style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Giá/Item Price</th><th align='right' style='padding: 8px 5px; border-collapse: collapse; background-color: rgb(2,11,111);color: #fff;'>Thành tiền/Item Total</th></tr>";

                foreach (DataRow dr in dtCart.Rows)
                {
                    string ProductCode = dr["Tag"].ToString();
                    string ProductID = dr["ProductID"].ToString();
                    string ProductName = dr["ProductName"].ToString();
                    string Quantity = dr["Quantity"].ToString();
                    string Price = dr["Price"].ToString();
                    string ProductOptionCategoryName = dr["ProductOptionCategoryName"].ToString();
                    string ProductLengthName = dr["ProductLengthName"].ToString();
                    double tPrice = Convert.ToDouble(Price) * Convert.ToDouble(Quantity);

                    var itemPrice = string.Format("{0:##,###.##}", tPrice).Replace('.', '*').Replace(',', '.').Replace('*', ',') + " VND";
                    var sPrice = string.Format("{0:##,###.##}", dr["Price"]).Replace('.', '*').Replace(',', '.').Replace('*', ',') + " VND";
                    Amount += Convert.ToDouble(Price) * Convert.ToDouble(Quantity);
                    Body += "<tr>";
                    Body += "<td style='padding: 5px; border-collapse: collapse; border-bottom: 1px solid #C7D7DB;'>" + ProductName + " - " + ProductCode + " - " + ProductOptionCategoryName + " - " + ProductLengthName + "</td>";
                    //Body += "<td align='center' style='padding: 5px; border-collapse: collapse; border-bottom: 1px solid #C7D7DB;'>" + ProductColorName + "</td>";
                    Body += "<td align='center' style='padding: 5px; border-collapse: collapse; border-bottom: 1px solid #C7D7DB;'>" + Quantity + "</td>";
                    Body += "<td align='center' style='padding: 5px; border-collapse: collapse; border-bottom: 1px solid #C7D7DB;'>" + sPrice + "</td>";
                    Body += "<td align='right' style='padding: 5px; border-collapse: collapse; border-bottom: 1px solid #C7D7DB;'>" + itemPrice + "</td>";
                    Body += "</tr>";
                }
                Body += "</table>";
                Body += "<div style='clear: both;'></div>";
                var iShippingPrice =
                    Convert.ToDouble(string.IsNullOrEmpty(ShippingPrice.ToString()) ? "0" : ShippingPrice);
                sAmount = Amount + iShippingPrice;
                //sAmount = Amount;

                var tAmount = string.Format("{0:##,###.##}", Amount).Replace('.', '*').Replace(',', '.').Replace('*', ',') + " VNĐ";
                var Shipping = string.Format("{0:##,###.##}", iShippingPrice).Replace('.', '*').Replace(',', '.').Replace('*', ',') + " VNĐ";
                var SubTotal = string.Format("{0:##,###.##}", sAmount).Replace('.', '*').Replace(',', '.').Replace('*', ',') + " VNĐ";

                Body += "<table style='font-size: 11px; font-family: Verdana; text-align: right; margin: 10px 0; width: 100%; float: right;' cellpadding='0' cellspacing='0'>";
                Body += "<tr><td style='width:85%;'>Thành tiền/Subtotal:</td><td style='width:15%;'>" + tAmount + "</td></tr>";
                Body += "<tr><td>Phí giao hàng/Shipping:</td><td>" + Shipping + "</td></tr>";
                Body += "<tr><td><b>Tổng tiền/Grand Total:</b></td><td><b>" + SubTotal + "</b></td></tr>";
                Body += "</table>";
                Body += "<div style='clear: both;'></div>";
                //Body += "<ul style='font-size: 11px; font-style: italic; padding: 0;margin: 0; list-style-type: none;'>";
                //Body += "<li><b>*</b> Giá sản phẩm chưa bao gồm thuế VAT 10%/ Item price is excluded of 10% VAT</li>";
                //Body += "<li><b>*</b> Xin vui lòng <a style='font-size: 11px;' href='http://www.pandemos.vn/lien-he.aspx'>gọi điện</a> tới Đồng Hồ Anh Minhs-Hoa Trái Cây để thay đổi nếu Quý khách muốn sửa đơn hàng/ Please <a style='font-size: 11px;' href='http://www.pandemos.vn/lien-he.aspx'>call</a> Đồng Hồ Anh Minhs-Hoa Trái Cây if you are in need of making a modification to your Order </li>";
                //Body += "<li><b>*</b> Vui lòng tham khảo các điều khoản về Thay đổi và Hủy đơn hàng trong <a style='font-size: 11px;' href='http://www.pandemos.vn/thoa-thuan-su-dung.aspx'>Thỏa Thuận Sử Dụng</a>/Please check Policy for Order Change and Cancelation in our <a style='font-size: 11px;' href='http://www.pandemos.vn/thoa-thuan-su-dung.aspx'>Term of Use</a></li>";
                //Body += "</ul>";
                Body += "</div>";
                Body += "<div style='font-family:Verdana;font-size:12px;margin-top:10px;'>";
                Body += "<div style='font-size:16px;font-weight:bold;'>=================</div>";
                Body += "<h4 style='font-size:14px;font-family:Verdana;margin:0;padding:0;'>Pandemos</h4>";
                Body += "<div style='font-size:11px;font-family:Verdana;margin-top:5px;padding:0;margin:0;'>";
                Body += "<p>Add: 403, Hai Bà Trưng , P.8, Quận 3, HCM </p>";
                Body += "<p>Tel: (08)3 820 8577 - Hotline: 0902 563 577 </p>";
                //Body += "<p>M: +84 908 xxx xxx>";

                Body += "<p>W: <a href='http://www.pandemos.vn'>www.pandemos.vn</a></p>";
                Body += "<p>E: <a href='mailto:[email protected]'>[email protected]</a></p>";
                Body += "</div>";
                Body += "</div>";
                Body += "</div>";

                //var bSendEmail = Common.SendMail(Host, Port, From, strDisplayNameMailFrom, sPassword, Email, To, Subject, Body, false);
                var bSendEmail = Common.SendMail(Host, Port, From, sPassword, Email, To, Subject, Body, true);
                if (bSendEmail)
                {
                    //var OrderID = OrderNumber;
                    //var UserName = string.IsNullOrEmpty(User.Identity.Name) ? "" : User.Identity.Name;
                    //var OrderStatusID = "1";
                    //var ShippingStatusID = "1";
                    var PaymentMethodID = "transfer";
                    //var BillingAddressID = AddressBookID;
                    //var ShippingAddressID = AddressBookID;
                    //var Notes = strMessage;
                    //var Comission = "";

                    oOrders.OrdersInsert1(
                        OrderID,
                        UserName,
                        OrderStatusID,
                        ShippingStatusID,
                        PaymentMethodID,
                        BillingAddressID,
                        ShippingAddressID,
                        Notes,
                        Comission,
                        "",
                        "",
                        YourAddress,
                        "",
                        Email
                        );
                    foreach (DataRow dr in dtCart.Rows)
                    {
                        string ProductID = dr["ProductID"].ToString();
                        string Quantity = dr["Quantity"].ToString();
                        string Price = dr["Price"].ToString();
                        string CreateBy = UserName;
                        string ProductOptionCategoryName = dr["ProductOptionCategoryName"].ToString();
                        string ProductLengthName = dr["ProductLengthName"].ToString();
                        //string ProductName = dr["ProductName"].ToString();
                        //string Type = dr["Tag"].ToString();
                        //string Description = dr["Description"].ToString();

                        oOrderDetail.OrderDetailInsert1(
                           OrderID,
                           ProductID,
                           Quantity,
                           Price,
                           CreateBy,
                           ProductOptionCategoryName,
                           ProductLengthName,
                           Email
                        );
                    }
                    Session["PaymentMethod"] = "transfer";
                    Session["Message"] = strMessage;
                    Response.Redirect("~/xac-nhan-don-hang.aspx");
                }
            }
        }

    }
    protected void Page_Load(object sender, EventArgs e)
    {
        string SECURE_SECRET      = OnepayCode.SECURE_SECRET;//Hòa: cần thay bằng mã thật từ app_code
        string hashvalidateResult = "";
        // Khoi tao lop thu vien
        VPCRequest conn = new VPCRequest("http://onepay.vn");

        conn.SetSecureSecret(SECURE_SECRET);
        // Xu ly tham so tra ve va kiem tra chuoi du lieu ma hoa
        hashvalidateResult = conn.Process3PartyResponse(Request.QueryString);

        // Lay gia tri tham so tra ve tu cong thanh toan
        String vpc_TxnResponseCode = conn.GetResultField("vpc_TxnResponseCode", "Unknown");
        string amount          = conn.GetResultField("vpc_Amount", "Unknown");
        string localed         = conn.GetResultField("vpc_Locale", "Unknown");
        string command         = conn.GetResultField("vpc_Command", "Unknown");
        string version         = conn.GetResultField("vpc_Version", "Unknown");
        string cardBin         = conn.GetResultField("vpc_Card", "Unknown");
        string orderInfo       = conn.GetResultField("vpc_OrderInfo", "Unknown");
        string merchantID      = conn.GetResultField("vpc_Merchant", "Unknown");
        string authorizeID     = conn.GetResultField("vpc_AuthorizeId", "Unknown");
        string merchTxnRef     = conn.GetResultField("vpc_MerchTxnRef", "Unknown");
        string transactionNo   = conn.GetResultField("vpc_TransactionNo", "Unknown");
        string txnResponseCode = vpc_TxnResponseCode;
        string message         = conn.GetResultField("vpc_Message", "Unknown");

        string mathanhtoantructuyen = merchTxnRef;

        // Sua lai ham check chuoi ma hoa du lieu
        if (hashvalidateResult == "CORRECTED" && txnResponseCode.Trim() == "0")
        {
            //vpc_Result.Text = "Transaction was paid successful";

            #region Cập nhật vào db theo mã đơn hàng

            DataTable dt = DonDatHang.Thongtin_Dondathang_by_maThanhToan(mathanhtoantructuyen);
            //Nếu tồn tại đơn hàng này --> cập nhật lại trạng thái
            if (dt.Rows.Count > 0)
            {
                string tinhTrangDonHang = "1";//1: có nghĩa là thành toán thành công
                DonDatHang.Dondathang_Update(dt.Rows[0]["MaDonDatHang"].ToString(), dt.Rows[0]["NgayTao"].ToString(), dt.Rows[0]["ThanhTienDH"].ToString(), tinhTrangDonHang, dt.Rows[0]["MaKH"].ToString(), dt.Rows[0]["TenKH"].ToString(), dt.Rows[0]["sdtKH"].ToString(), dt.Rows[0]["EmailKH"].ToString());
            }
            #endregion

            Response.Write("<div class='result'>Đã thanh toán thành công</div>");
        }
        else if (hashvalidateResult == "INVALIDATED" && txnResponseCode.Trim() == "0")
        {
            #region Cập nhật vào db theo mã đơn hàng

            DataTable dt = DonDatHang.Thongtin_Dondathang_by_maThanhToan(mathanhtoantructuyen);
            //Nếu tồn tại đơn hàng này --> cập nhật lại trạng thái
            if (dt.Rows.Count > 0)
            {
                string tinhTrangDonHang = "0";//1: có nghĩa là thành toán chưa thành công
                DonDatHang.Dondathang_Update(dt.Rows[0]["MaDonDatHang"].ToString(), dt.Rows[0]["NgayTao"].ToString(), dt.Rows[0]["ThanhTienDH"].ToString(), tinhTrangDonHang, dt.Rows[0]["MaKH"].ToString(), dt.Rows[0]["TenKH"].ToString(), dt.Rows[0]["sdtKH"].ToString(), dt.Rows[0]["EmailKH"].ToString());
            }
            #endregion

            //vpc_Result.Text = "Transaction is pending";
            Response.Write("Error description : " + message + "<br/>");
            Response.Write("<div class='result'>Thanh toán đang chờ</div>");
        }
        else
        {
            #region Cập nhật vào db theo mã đơn hàng

            DataTable dt = DonDatHang.Thongtin_Dondathang_by_maThanhToan(mathanhtoantructuyen);
            //Nếu tồn tại đơn hàng này --> cập nhật lại trạng thái
            if (dt.Rows.Count > 0)
            {
                string tinhTrangDonHang = "0";//1: có nghĩa là thành toán chưa thành công
                DonDatHang.Dondathang_Update(dt.Rows[0]["MaDonDatHang"].ToString(), dt.Rows[0]["NgayTao"].ToString(), dt.Rows[0]["ThanhTienDH"].ToString(), tinhTrangDonHang, dt.Rows[0]["MaKH"].ToString(), dt.Rows[0]["TenKH"].ToString(), dt.Rows[0]["sdtKH"].ToString(), dt.Rows[0]["EmailKH"].ToString());
            }
            #endregion

            //vpc_Result.Text = "Transaction was not paid successful";
            Response.Write("Error description : " + message + "<br/>");
            Response.Write("<div class='result'>Thanh toán không thành công</div>");
        }
    }
示例#29
0
        protected void GetResponse()
        {
            // Create the VPCRequest object
            VPCRequest conn = new VPCRequest("https://vpos.amxvpos.com/vpcpay");

            //test
            //conn.setSecureSecret("C12DC6FE16681E9DD3211D2BB0C0BBA2");

            //Live
            conn.setSecureSecret("44DD98D32ECD3C1AA7F12A1D0F8B41EA");
            // Process the response
            conn.process3PartyResponse(Page.Request.QueryString);

            // Check if the transaction was successful or if there was an error
            vpc_TxnResponseCode = conn.getResultField("vpc_TxnResponseCode", "Unknown");

            // Set the display fields for the receipt with the result fields
            // Core Fields

            // Label_vpc_TxnResponseCode.Text = vpc_TxnResponseCode;

            txtRefCode = conn.getResultField("vpc_MerchTxnRef", "Unknown");
            ShoWName   = conn.getResultField("vpc_OrderInfo", "Unknown");

            Amount    = conn.getResultField("vpc_Amount", "Unknown");
            ReceiptNo = conn.getResultField("vpc_ReceiptNo", "Unknown");

            // Label_TxnResponseCodeDesc.Text = PaymentCodesHelper.getTxnResponseCodeDescription(Label_vpc_TxnResponseCode.Text);

            // Address Verification / Advanced Address Verification
            vpc_avsResultCode = conn.getResultField("vpc_AVSResultCode", "Unknown");

            // Perform the Capture if the Authorization was successful
            TranSactNo = conn.getResultField("vpc_TransactionNo", "Unknown");
            if (vpc_TxnResponseCode == "0" && (vpc_avsResultCode == "Y" || vpc_avsResultCode == "M"))
            {
                // Create a new VPCRequest Object and set the proxy details if required
                conn = new VPCRequest("https://vpos.amxvpos.com/vpcdps");
                conn.setProxyHost("");
                conn.setProxyUser("");
                conn.setProxyPassword("");
                conn.setProxyDomain("");
                //test server
                // Add the Required Fields
                //conn.addDigitialOrderField("vpc_Version", "1");
                //conn.addDigitialOrderField("vpc_AccessCode", "D30639FF");
                //conn.addDigitialOrderField("vpc_Merchant", "TEST9824533848");
                //conn.addDigitialOrderField("vpc_User", "kingdom");
                //conn.addDigitialOrderField("vpc_Password", "0password");
                //conn.addDigitialOrderField("vpc_Command", "capture");

                ////live server
                conn.addDigitialOrderField("vpc_Version", "1");
                conn.addDigitialOrderField("vpc_AccessCode", "0FE6FE77");
                conn.addDigitialOrderField("vpc_Merchant", "9824533848");
                conn.addDigitialOrderField("vpc_User", "kingdomama");
                conn.addDigitialOrderField("vpc_Password", "0password");
                conn.addDigitialOrderField("vpc_Command", "capture");

                conn.addDigitialOrderField("vpc_MerchTxnRef", txtRefCode.Substring(0, txtRefCode.Length - 2) + "-C");
                conn.addDigitialOrderField("vpc_TransNo", TranSactNo);
                conn.addDigitialOrderField("vpc_Amount", Amount);
                // Perform the transaction
                conn.sendRequest();
                // Check if the transaction was successful or if there was an error
                ResponseCode = conn.getResultField("vpc_TxnResponseCode", "Unknown");
            }
            //convert amt
            int amt = (Convert.ToInt32(Amount)) / 100;

            stramt = amt.ToString();
            //pv
            if (vpc_TxnResponseCode.ToString().Equals("0"))
            {
                //Pay Details , Sent To Loyelty Card Page --  CardType,TransID,Amt,ShowName
                UpdateTransDB();
                Response.Write("<b>Payment successful</b> <br/><br/>" + ShoWName.ToUpper() + "<br/> Amount: " + stramt.ToString() + "<br/>Transaction Id: " + txtRefCode.ToString());
            }
            else
            {
                Response.Write("Payment Not successful</b> <br/><br/>" + ShoWName.ToUpper() + "<br/> Amount: " + stramt.ToString() + "<br/>Transaction Id: " + txtRefCode.ToString());
            }
        }
示例#30
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["isPrePay"] == null)
            {
                if (Session["isFirstPay"] == null)
                {
                    Response.Redirect(Pages.CLIENT_INDEX);
                }
            }

            if (Session["AcceptSlipNo"] == null)
            {
                Response.Redirect(Pages.CLIENT_INDEX);
            }
            if (IsPostBack)
            {
                return;
            }

            string SECURE_SECRET      = "A3EFDFABA8653DF2342E8DAC29B51AF0";
            string hashvalidateResult = "";
            // Khoi tao lop thu vien
            VPCRequest conn = new VPCRequest("http://onepay.vn");

            conn.SetSecureSecret(SECURE_SECRET);
            // Xu ly tham so tra ve va kiem tra chuoi du lieu ma hoa
            hashvalidateResult = conn.Process3PartyResponse(Page.Request.QueryString);

            // Lay gia tri tham so tra ve tu cong thanh toan
            String vpc_TxnResponseCode = conn.GetResultField("vpc_TxnResponseCode", "Unknown");
            string amount          = conn.GetResultField("vpc_Amount", "Unknown");
            string localed         = conn.GetResultField("vpc_Locale", "Unknown");
            string command         = conn.GetResultField("vpc_Command", "Unknown");
            string version         = conn.GetResultField("vpc_Version", "Unknown");
            string cardBin         = conn.GetResultField("vpc_Card", "Unknown");
            string orderInfo       = conn.GetResultField("vpc_OrderInfo", "Unknown");
            string merchantID      = conn.GetResultField("vpc_Merchant", "Unknown");
            string authorizeID     = conn.GetResultField("vpc_AuthorizeId", "Unknown");
            string merchTxnRef     = conn.GetResultField("vpc_MerchTxnRef", "Unknown");
            string transactionNo   = conn.GetResultField("vpc_TransactionNo", "Unknown");
            string txnResponseCode = vpc_TxnResponseCode;
            string message         = conn.GetResultField("vpc_Message", "Unknown");

            if (hashvalidateResult == "CORRECTED" && txnResponseCode.Trim() == "0")
            {
                paySuccess();
            }
            else if (hashvalidateResult == "INVALIDATED" && txnResponseCode.Trim() == "0")
            {
                Response.Redirect(Pages.CLIENT_INDEX);
            }
            else if (hashvalidateResult == "CORRECTED" && txnResponseCode.Trim() == "99")
            {
                Response.Redirect(Pages.CLIENT_INDEX);
            }
            else
            {
                vpc_Result.Text = "<center><h1>Đặt hàng không thành công</h1> ! <br/>Có lỗi trong quá trình thanh toán. vui lòng thử lại <a href='checkout.aspx'>tại đây</a></center>";
            }
            Session["isPrePay"]     = null;
            Session["isFirstPay"]   = null;
            Session["AcceptSlipNo"] = null;
        }
示例#31
0
        }//String function end


        public VPCRequest AmexConfig()
        {
                Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Collect Information for AMEX Gateway");
                VPCRequest conn = new VPCRequest(_TNS.Properties.Settings.Default.PaymentServerURL);
                // Configure the proxy details (if needed)
                conn.SetProxyHost(_TNS.Properties.Settings.Default.ProxyHost);
                conn.SetProxyUser(_TNS.Properties.Settings.Default.ProxyUser);
                conn.SetProxyPassword(_TNS.Properties.Settings.Default.ProxyPassword);
                conn.SetProxyDomain(_TNS.Properties.Settings.Default.ProxyDomain);
                conn.SetSecureSecret(_TNS.Properties.Settings.Default.vpc_SecureSecret);
                // Add the Digital Order Fields for the functionality you wish to use
                // Core Transaction Fields
                conn.AddDigitalOrderField("vpc_Version", _TNS.Properties.Settings.Default.vpc_Version);
                conn.AddDigitalOrderField("vpc_AccessCode", _TNS.Properties.Settings.Default.vpc_AccessCode);
                conn.AddDigitalOrderField("vpc_Merchant", _TNS.Properties.Settings.Default.vpc_Merchant);
                conn.AddDigitalOrderField("vpc_User", _TNS.Properties.Settings.Default.vpc_User);
                conn.AddDigitalOrderField("vpc_Password", _TNS.Properties.Settings.Default.vpc_Password);
                return conn;   

                //Configure the Hard coded details (if needed)
                //VPCRequest conn = new VPCRequest("https://vpos.amxvpos.com/vpcdps");
                //conn.SetProxyHost("");
                //conn.SetProxyUser("");
                //conn.SetProxyPassword("");
                //conn.SetProxyDomain("");
                //conn.SetSecureSecret("44DD98D32ECD3C1AA7F12A1D0F8B41EA");

                         
        }
        public ActionResult XacNhanDonHang(FormCollection f)
        {
            if (f["CMND"].Length != 9 && f["CMND"].Length != 12)
            {
                ViewData["L1"] = "Vui lòng nhập đúng CMND";
                return(View());
            }
            List <GIOHANG> gh      = LayGioHang();
            DONDATHANG     donhang = new DONDATHANG();

            donhang.CMND              = f["CMND"];
            donhang.Ngaydat           = DateTime.Now;
            donhang.Ngaygiao          = DateTime.Parse(f["NgayGiao"]);
            donhang.DiaChiLienHe      = f["DCGiaoHang"];
            donhang.EmailLienHe       = f["Email"];
            donhang.SDTLienHe         = f["SDT"];
            donhang.Tinhtranggiaohang = false;
            donhang.TongTien          = TongTien();
            donhang.Dathanhtoan       = false;
            donhang.TrangThai         = true;
            db.DONDATHANGs.InsertOnSubmit(donhang);
            db.SubmitChanges();
            string mathanhtoantructuyen = DateTime.Now.Ticks.ToString();

            if (string.Compare(f["rbHinhThucThanhToan"], "Onepay") == 0)
            {
                string SECURE_SECRET = OnepayCode.SECURE_SECRET;// HAO : CAN THANH MA THAT TRONG APP CODE
                //// KHOI TAO LOP THU VIEN  VA GAN GIA TRI CAC THAM SO
                VPCRequest conn = new VPCRequest(OnepayCode.VPCRequest);
                conn.SetSecureSecret(SECURE_SECRET);
                //add digital order field
                conn.AddDigitalOrderField("Title", "onepay paygate");
                conn.AddDigitalOrderField("vpc_Locale", "vn");
                conn.AddDigitalOrderField("vpc_Version", "2");
                conn.AddDigitalOrderField("vpc_Command", "pay");
                conn.AddDigitalOrderField("vpc_Merchant", OnepayCode.Merchant);
                conn.AddDigitalOrderField("vpc_AccessCode", OnepayCode.AccessCode);
                conn.AddDigitalOrderField("vpc_MerchTxnRef", mathanhtoantructuyen);
                conn.AddDigitalOrderField("vpc_OrderInfo", mathanhtoantructuyen);
                conn.AddDigitalOrderField("vpc_Amount", (TongTien() * 100).ToString());
                conn.AddDigitalOrderField("vpc_Currency", "VND");
                conn.AddDigitalOrderField("vpc_ReturnURL", OnepayCode.ReturnURL);
                conn.AddDigitalOrderField("vpc_SHIP_Street01", "");
                conn.AddDigitalOrderField("vpc_SHIP_Provice", "");
                conn.AddDigitalOrderField("vpc_SHIP_City", "");
                conn.AddDigitalOrderField("vpc_SHIP_Country", "");
                conn.AddDigitalOrderField("vpc_Customer_Phone", "");
                conn.AddDigitalOrderField("vpc_Customer_Email", "");
                conn.AddDigitalOrderField("vpc_Customer_Id", "");
                conn.AddDigitalOrderField("vpc_TicketNo", Request.UserHostAddress);
                string ketQua = "";
                string url    = conn.Create3PartyQueryString();
                ketQua = url;
                foreach (var item in gh)
                {
                    CHITIETDONTHANG ctdh = new CHITIETDONTHANG();
                    DONGHO          dh   = db.DONGHOs.SingleOrDefault(m => m.MaSP == item.iMaSP);
                    ctdh.MaDonHang = donhang.MaDonHang;
                    ctdh.MaSP      = item.iMaSP;
                    ctdh.Soluong   = item.iSoLuong;
                    ctdh.ThanhTien = item.fThanhTien;
                    ctdh.Dongia    = item.fDonGia;
                    db.CHITIETDONTHANGs.InsertOnSubmit(ctdh);
                    dh.Soluongton = dh.Soluongton - item.iSoLuong;
                    UpdateModel(dh);
                }
                Session["GIOHANG"] = null;
                db.SubmitChanges();
                ViewBag.Ma = donhang.MaDonHang;
                return(Redirect(ketQua));
            }
            else
            {
                foreach (var item in gh)
                {
                    CHITIETDONTHANG ctdh = new CHITIETDONTHANG();
                    DONGHO          dh   = db.DONGHOs.SingleOrDefault(m => m.MaSP == item.iMaSP);
                    ctdh.MaDonHang = donhang.MaDonHang;
                    ctdh.MaSP      = item.iMaSP;
                    ctdh.Soluong   = item.iSoLuong;
                    ctdh.ThanhTien = item.fThanhTien;
                    ctdh.Dongia    = item.fDonGia;
                    db.CHITIETDONTHANGs.InsertOnSubmit(ctdh);
                    dh.Soluongton = dh.Soluongton - item.iSoLuong;
                    UpdateModel(dh);
                }
                Session["GIOHANG"] = null;
                db.SubmitChanges();
                return(View());
            }
        }
示例#33
0
    protected void GetResponse()
    {
        String URL = "";
        String vpc_TxnResponseCode = "";
        String txtRefCode          = "";
        String ShoWName            = "";
        String stramt             = "";
        String ReceiptNo          = "";
        String vpc_avsResultCode  = "";
        String TranSactNo         = "";
        String ResponseCode       = "";
        String Amount             = "";
        String vpc_3DSstatus      = "";
        String vpc_3DSenrolled    = "";
        String vpc_AcqAVSRespCode = "";

        try
        {
            Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Prepare to transact wth AmEx...");

            // Create the VPCRequest object
            VPCRequest conn = new VPCRequest("https://vpos.amxvpos.com/vpcpay");
            //conn.setSecureSecret("C12DC6FE16681E9DD3211D2BB0C0BBA2");

            //Live
            conn.setSecureSecret("44DD98D32ECD3C1AA7F12A1D0F8B41EA");
            // Process the response
            conn.process3PartyResponse(Page.Request.QueryString);

            // Check if the transaction was successful or if there was an error
            vpc_TxnResponseCode = conn.getResultField("vpc_TxnResponseCode", "Unknown");

            // Set the display fields for the receipt with the result fields
            // Core Fields

            // Label_vpc_TxnResponseCode.Text = vpc_TxnResponseCode;

            txtRefCode = conn.getResultField("vpc_MerchTxnRef", "Unknown");
            ShoWName   = conn.getResultField("vpc_OrderInfo", "Unknown");

            Amount    = conn.getResultField("vpc_Amount", "Unknown");
            ReceiptNo = conn.getResultField("vpc_ReceiptNo", "Unknown");
            Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("AmEx Receiot No. : " + ReceiptNo);

            //**************Safe Key and AAV Verification************//
            vpc_3DSenrolled = conn.getResultField("vpc_3DSenrolled", "Unknown");
            Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("vpc_3DSenrolled : " + vpc_3DSenrolled);

            vpc_AcqAVSRespCode = conn.getResultField("vpc_AcqAVSRespCode", "Unknown");
            Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("vpc_AcqAVSRespCode : " + vpc_AcqAVSRespCode);
            //***********************************************//

            // Address Verification / Advanced Address Verification
            vpc_avsResultCode = conn.getResultField("vpc_AVSResultCode", "Unknown");
            Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("AmEx transaction Auth result code: " + vpc_avsResultCode);

            // Perform the Capture if the Authorization was successful
            TranSactNo = conn.getResultField("vpc_TransactionNo", "Unknown");
            Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("AmEx transaction Auth response code: " + vpc_TxnResponseCode);
            string errtxnresponce   = PaymentCodesHelper.getTxnResponseCodeDescription(vpc_TxnResponseCode);
            string errAVSResultCode = PaymentCodesHelper.getAVSDescription(vpc_avsResultCode);

            if (vpc_3DSenrolled == "Y")
            {
                vpc_3DSstatus = conn.getResultField("vpc_3DSstatus", "Unknown");
                Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("AmEx transaction Auth safe key code vpc_3DSstatus: " + vpc_3DSstatus);
                if (vpc_TxnResponseCode == "0" && (vpc_3DSstatus == "Y" || vpc_3DSstatus == "A"))
                {
                    Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("AmEx authorization successful, starting capture...");
                    // Create a new VPCRequest Object and set the proxy details if required
                    conn = new VPCRequest("https://vpos.amxvpos.com/vpcdps");
                    conn.setProxyHost("");
                    conn.setProxyUser("");
                    conn.setProxyPassword("");
                    conn.setProxyDomain("");

                    //test server
                    // Add the Required Fields
                    //conn.addDigitialOrderField("vpc_Version", "1");
                    //conn.addDigitialOrderField("vpc_AccessCode", "D30639FF");
                    //conn.addDigitialOrderField("vpc_Merchant", "TEST9824533848");
                    //conn.addDigitialOrderField("vpc_User", "kingdomama");
                    //conn.addDigitialOrderField("vpc_Password", "0password");
                    //conn.addDigitialOrderField("vpc_Command", "capture");

                    //live server
                    conn.addDigitialOrderField("vpc_Version", "1");
                    conn.addDigitialOrderField("vpc_AccessCode", "0FE6FE77");
                    conn.addDigitialOrderField("vpc_Merchant", "9824533848");
                    conn.addDigitialOrderField("vpc_User", "kingdomama");
                    conn.addDigitialOrderField("vpc_Password", "0password");
                    conn.addDigitialOrderField("vpc_Command", "capture");

                    conn.addDigitialOrderField("vpc_MerchTxnRef", txtRefCode.Substring(0, txtRefCode.Length - 2) + "-C");
                    conn.addDigitialOrderField("vpc_TransNo", TranSactNo);
                    conn.addDigitialOrderField("vpc_Amount", Amount);
                    // Perform the transaction
                    conn.sendRequest();
                    // Check if the transaction was successful or if there was an error
                    ResponseCode = conn.getResultField("vpc_TxnResponseCode", "Unknown");
                    Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("AmEx transaction Capture response code: " + ResponseCode);
                }
            }
            else
            {
                if (vpc_TxnResponseCode == "0" && vpc_AcqAVSRespCode == "M")
                {
                    Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("AmEx authorization successful, starting capture...");
                    // Create a new VPCRequest Object and set the proxy details if required
                    conn = new VPCRequest("https://vpos.amxvpos.com/vpcdps");
                    conn.setProxyHost("");
                    conn.setProxyUser("");
                    conn.setProxyPassword("");
                    conn.setProxyDomain("");

                    //test server
                    // Add the Required Fields
                    //conn.addDigitialOrderField("vpc_Version", "1");
                    //conn.addDigitialOrderField("vpc_AccessCode", "D30639FF");
                    //conn.addDigitialOrderField("vpc_Merchant", "TEST9824533848");
                    //conn.addDigitialOrderField("vpc_User", "kingdomama");
                    //conn.addDigitialOrderField("vpc_Password", "0password");
                    //conn.addDigitialOrderField("vpc_Command", "capture");

                    //live server
                    conn.addDigitialOrderField("vpc_Version", "1");
                    conn.addDigitialOrderField("vpc_AccessCode", "0FE6FE77");
                    conn.addDigitialOrderField("vpc_Merchant", "9824533848");
                    conn.addDigitialOrderField("vpc_User", "kingdomama");
                    conn.addDigitialOrderField("vpc_Password", "0password");
                    conn.addDigitialOrderField("vpc_Command", "capture");

                    conn.addDigitialOrderField("vpc_MerchTxnRef", txtRefCode.Substring(0, txtRefCode.Length - 2) + "-C");
                    conn.addDigitialOrderField("vpc_TransNo", TranSactNo);
                    conn.addDigitialOrderField("vpc_Amount", Amount);
                    // Perform the transaction
                    conn.sendRequest();
                    // Check if the transaction was successful or if there was an error
                    ResponseCode = conn.getResultField("vpc_TxnResponseCode", "Unknown");
                    Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("AmEx transaction Capture response code: " + ResponseCode);
                }
            }
            /*******************Payement Gateway Error Value Code**********************/
            #region PG_DB
            if (vpc_TxnResponseCode != "0")
            {
                Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("PG_DB");
                string bookingid = txtRefCode.Split('_')[1].ToString().Split('~')[0].ToString();
                int    i         = GTICKBOL.Insert_Payment_DB(errtxnresponce, bookingid, "AMEX");
            }
            else if (vpc_avsResultCode != "X" && vpc_avsResultCode != "Y")
            {
                Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("PG_DB");
                string bookingid = txtRefCode.Split('_')[1].ToString().Split('~')[0].ToString();
                int    i         = GTICKBOL.Insert_Payment_DB(errAVSResultCode, bookingid, "AMEX");
            }
            #endregion PG_DB
            /*********************End******************************/
            //convert amt
            int amt = (Convert.ToInt32(Amount)) / 100;
            stramt = amt.ToString();
            GTICKBOL gb = new GTICKBOL();
            GTICKV.LogEntry(txtRefCode.Split('_')[0], "Return From AMEX Payment Gateway, amt : " + stramt + ",recieptNO : " + ReceiptNo, "13", txtRefCode.Split('_')[1].Split('~')[0]);
            //***********Url for address Verification*********//
            //URL = "ReturnReceipt.aspx?tid=" + txtRefCode + "&sta=" + vpc_TxnResponseCode + "&amt=" + stramt + "&rec=" + ReceiptNo + "&ResultCode=" + vpc_avsResultCode;
            //************************************************//
            URL = "ReturnReceipt.aspx?tid=" + txtRefCode + "&sta=" + vpc_TxnResponseCode + "&amt=" + stramt + "&rec=" + ReceiptNo + "&Safecode=" + vpc_3DSstatus + "&response=" + vpc_AcqAVSRespCode + "&enroll=" + vpc_3DSenrolled;
            Response.Redirect(URL, false);
        }
        catch (Exception ex)
        {
            Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Error in AmEx Payment Response: " + ex.Message);
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        string SECURE_SECRET      = "A3EFDFABA8653DF2342E8DAC29B51AF0";
        string hashvalidateResult = "";
        // Khoi tao lop thu vien
        VPCRequest conn = new VPCRequest("http://onepay.vn");

        conn.SetSecureSecret(SECURE_SECRET);
        // Xu ly tham so tra ve va kiem tra chuoi du lieu ma hoa
        hashvalidateResult = conn.Process3PartyResponse(Page.Request.QueryString);

        // Lay gia tri tham so tra ve tu cong thanh toan
        String vpc_TxnResponseCode = conn.GetResultField("vpc_TxnResponseCode", "Unknown");
        string amount          = conn.GetResultField("vpc_Amount", "Unknown");
        string localed         = conn.GetResultField("vpc_Locale", "Unknown");
        string command         = conn.GetResultField("vpc_Command", "Unknown");
        string version         = conn.GetResultField("vpc_Version", "Unknown");
        string cardBin         = conn.GetResultField("vpc_Card", "Unknown");
        string orderInfo       = conn.GetResultField("vpc_OrderInfo", "Unknown");
        string merchantID      = conn.GetResultField("vpc_Merchant", "Unknown");
        string authorizeID     = conn.GetResultField("vpc_AuthorizeId", "Unknown");
        string merchTxnRef     = conn.GetResultField("vpc_MerchTxnRef", "Unknown");
        string transactionNo   = conn.GetResultField("vpc_TransactionNo", "Unknown");
        string txnResponseCode = vpc_TxnResponseCode;
        string message         = conn.GetResultField("vpc_Message", "Unknown");
        //int loop1;

        // Bo cac ham ma hoa du lieu cu
        //NameValueCollection coll = Request.QueryString;
        //// Get names of all keys into a string array.
        //String[] arr1 = coll.AllKeys;
        //for (int j = 0; j < arr1.Length;j++ )
        //{
        //    arr1[j] = Server.HtmlEncode(arr1[j]);
        //}
        //Array.Sort(arr1, arr1);
        //string sdataHash = "";
        //for (loop1 = 0; loop1 < arr1.Length; loop1++)
        //{
        //    String[] arr2 = coll.GetValues(arr1[loop1]);
        //    if ((arr2[0] != null) && (arr2[0].Length > 0) && (arr1[loop1]!="vpc_SecureHash"))
        //    {
        //        sdataHash += Server.HtmlEncode(arr2[0]);
        //    }
        //}

        //    sdataHash = SECURE_SECRET + sdataHash;
        //    string doSecureHash = DoMD5(sdataHash).Trim();

        // Sua lai ham check chuoi ma hoa du lieu
        string mathanhtoantructuyen = merchTxnRef;


        if (hashvalidateResult == "CORRECTED" && txnResponseCode.Trim() == "0")
        {
            // var products = (from p in db.DONDATHANGs
            //                  orderby p.MaDonHang descending
            //                  select p).Skip(0).Take(1);
            //int a = 0;
            //foreach (var item in products)
            //{
            //    a = item.MaDonHang;
            //}
            //DONDATHANG dh = db.DONDATHANGs.SingleOrDefault(m => m.MaDonHang == a);
            //// nếu tôn tại đơn hàng
            //if (dh != null)
            //{

            //    dh.Dathanhtoan = true;
            //    UpdateModel(dh);
            //    db.SubmitChanges();
            //}

            //vpc_Result.Text = "Transaction was paid successful";
            Response.Write("<div class='result'>Đã Thanh Toán Thành Công</div><br/><div style='text-align:center'><a href='http://tsqwatch.somee.com/Home/Update' class='btn btn-primary' style='text-decoration:none;'>Vui lòng bấm <b style='color:red'>Xác Nhận</b> để kết thúc giao dịch</a></div>");
        }
        else if (hashvalidateResult == "INVALIDATED" && txnResponseCode.Trim() == "0")
        {
            //var products = (from p in db.DONDATHANGs
            //                orderby p.MaDonHang descending
            //                select p).Skip(0).Take(1);
            //int a = 0;
            //foreach (var item in products)
            //{
            //    a = item.MaDonHang;
            //}
            //DONDATHANG dh = db.DONDATHANGs.SingleOrDefault(m => m.MaDonHang == a);
            //// nếu tôn tại đơn hàng
            //if (dh != null)
            //{
            //    dh.Dathanhtoan = false;
            //    UpdateModel(dh);
            //    db.SubmitChanges();
            //}
            Response.Write("Error description: " + message + "<br/>");
            Response.Write("<br/><div class='result'>Thanh Toán Đang Chờ</div><br/><div style='text-align:center'><a href='http://tsqwatch.somee.com/Home/Update1' class='btn btn-primary' style='text-decoration:none;'>Vui lòng bấm <b style='color:red'>Xác Nhận</b> để kết thúc giao dịch</a></div>");
            //vpc_Result.Text = "Transaction is pending";
        }
        else
        {
            //vpc_Result.Text = "Transaction was not paid successful";
            Response.Write("Error description: " + message + "<br/>");
            Response.Write("<div style='text-align:center'><a href='/'class='btn btn-primary' style='text-decoration:none;color:red'>Về Trang Chủ</a></div><br/><div class='result'>Thanh Toán Không Thành Công</div>");
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        string SECURE_SECRET      = OnepayQuocTeCode.SECURE_SECRET;//Hòa: cần thay bằng mã thật từ app_code
        string hashvalidateResult = "";
        // Khoi tao lop thu vien
        VPCRequest conn = new VPCRequest("http://onepay.vn");

        conn.SetSecureSecret(SECURE_SECRET);
        // Xu ly tham so tra ve va kiem tra chuoi du lieu ma hoa
        hashvalidateResult = conn.Process3PartyResponse(Request.QueryString);

        // Lay gia tri tham so tra ve tu cong thanh toan
        String vpc_TxnResponseCode = conn.GetResultField("vpc_TxnResponseCode", "Unknown");
        string amount          = conn.GetResultField("vpc_Amount", "Unknown");
        string localed         = conn.GetResultField("vpc_Locale", "Unknown");
        string command         = conn.GetResultField("vpc_Command", "Unknown");
        string version         = conn.GetResultField("vpc_Version", "Unknown");
        string cardType        = conn.GetResultField("vpc_Card", "Unknown");
        string orderInfo       = conn.GetResultField("vpc_OrderInfo", "Unknown");
        string merchantID      = conn.GetResultField("vpc_Merchant", "Unknown");
        string authorizeID     = conn.GetResultField("vpc_AuthorizeId", "Unknown");
        string merchTxnRef     = conn.GetResultField("vpc_MerchTxnRef", "Unknown");
        string transactionNo   = conn.GetResultField("vpc_TransactionNo", "Unknown");
        string acqResponseCode = conn.GetResultField("vpc_AcqResponseCode", "Unknown");
        string txnResponseCode = vpc_TxnResponseCode;
        string message         = conn.GetResultField("vpc_Message", "Unknown");

        mathanhtoantructuyen = merchTxnRef;

        // Sua lai ham check chuoi ma hoa du lieu
        if (hashvalidateResult == "CORRECTED" && txnResponseCode.Trim() == "0")
        {
            //vpc_Result.Text = "Transaction was paid successful";

            #region Cập nhật vào db theo mã đơn hàng

            DataTable dt = Order.Info_Order_by_OrderPay(mathanhtoantructuyen);
            //Nếu tồn tại đơn hàng này --> cập nhật lại trạng thái
            if (dt.Rows.Count > 0)
            {
                string tinhTrangDonHang = "1";//1: có nghĩa là thành toán thành công
                string detail           = "Done";
                Order.Order_Update(dt.Rows[0]["OrderID"].ToString(), dt.Rows[0]["DateCreated"].ToString(), dt.Rows[0]["OrderMoney"].ToString(), tinhTrangDonHang, dt.Rows[0]["CustomerID"].ToString(), dt.Rows[0]["CustomerNA"].ToString(), dt.Rows[0]["CallNumCUS"].ToString(), dt.Rows[0]["EmailCUS"].ToString(), detail);
            }
            #endregion

            //Response.Write("<div class='result'>Đã thanh toán thành công</div>");
            Response.Write("<div class='result'>Payment successfully</div>");
        }
        else if (hashvalidateResult == "INVALIDATED" && txnResponseCode.Trim() == "0")
        {
            #region Cập nhật vào db theo mã đơn hàng

            DataTable dt = Order.Info_Order_by_OrderPay(mathanhtoantructuyen);
            //Nếu tồn tại đơn hàng này --> cập nhật lại trạng thái
            if (dt.Rows.Count > 0)
            {
                string tinhTrangDonHang = "0";//1: có nghĩa là thành toán chưa thành công
                string detail           = "Working";
                Order.Order_Update(dt.Rows[0]["OrderID"].ToString(), dt.Rows[0]["DateCreated"].ToString(), dt.Rows[0]["OrderMoney"].ToString(), tinhTrangDonHang, dt.Rows[0]["CustomerID"].ToString(), dt.Rows[0]["CustomerNA"].ToString(), dt.Rows[0]["CallNumCUS"].ToString(), dt.Rows[0]["EmailCUS"].ToString(), detail);
            }
            #endregion

            //vpc_Result.Text = "Transaction is pending";
            Response.Write("Error description : " + message + "<br/>");
            //Response.Write("<div class='result'>Thanh toán đang chờ</div>");
            Response.Write("<div class='result'>Payment successfully</div>");
        }
        else
        {
            #region Cập nhật vào db theo mã đơn hàng

            DataTable dt = Order.Info_Order_by_OrderPay(mathanhtoantructuyen);
            //Nếu tồn tại đơn hàng này --> cập nhật lại trạng thái
            if (dt.Rows.Count > 0)
            {
                string tinhTrangDonHang = "0";//1: có nghĩa là thành toán chưa thành công
                string detail           = "Working";
                Order.Order_Update(dt.Rows[0]["OrderID"].ToString(), dt.Rows[0]["DateCreated"].ToString(), dt.Rows[0]["OrderMoney"].ToString(), tinhTrangDonHang, dt.Rows[0]["CustomerID"].ToString(), dt.Rows[0]["CustomerNA"].ToString(), dt.Rows[0]["CallNumCUS"].ToString(), dt.Rows[0]["EmailCUS"].ToString(), detail);
            }
            #endregion

            //vpc_Result.Text = "Transaction was not paid successful";
            Response.Write("Error description : " + message + "<br/>");
            //Response.Write("<div class='result'>Thanh toán không thành công</div>");
            Response.Write("<div class='result'>Payment successfully</div>");
        }

        //ScriptManager.RegisterStartupScript(this, this.GetType(), "", "Redirect('" + TatThanhJsc.Website.URL.WebisteUrl + "', 6);", true);
    }
示例#36
0
        private Boolean AmexRefund(string BookingID, string ReferenceNo, string TotalAmount, string TransactionNo)
        {
            VPCRequest conn          = AmexConfig();
            string     MerchantRefNo = BookingID + "_" + ReferenceNo + "~WEB";
            string     vpc_TransNo   = TransactionNo;

            if (TotalAmount.Contains("."))
            {
                TotalAmount = TotalAmount.Replace(".00", "");
            }
            TotalAmount = Convert.ToString(Convert.ToInt32(TotalAmount) * 100);
            string vpc_Amount = TotalAmount;

            conn.AddDigitalOrderField("vpc_Command", "refund");
            conn.AddDigitalOrderField("vpc_MerchTxnRef", MerchantRefNo);
            conn.AddDigitalOrderField("vpc_TransNo", vpc_TransNo);
            conn.AddDigitalOrderField("vpc_Amount", vpc_Amount);
            conn.SendRequest();
            string ResponseResult = null;
            int    CounterChkAmexRefundValue;

            for (CounterChkAmexRefundValue = 1; CounterChkAmexRefundValue <= 2; CounterChkAmexRefundValue++)
            {
                string vpc_TxnResponseCode = conn.GetResultField("vpc_TxnResponseCode", "Unknown");
                ResponseResult = PaymentCodesHelper.GetTxnResponseCodeDescription(vpc_TxnResponseCode);
                if (ResponseResult == "" || ResponseResult == null)
                {
                    conn.SendRequest();
                }
                else
                {
                    StringBuilder RefundDetails = new StringBuilder();
                    RefundDetails.Append(" These are the Refund Details for Booking ID and Reference : " + BookingID + "," + ReferenceNo + "<br/>");
                    RefundDetails.Append(" vpc_TxnResponseCode : " + conn.GetResultField("vpc_TxnResponseCode", "Unknown") + "<br/>");
                    RefundDetails.Append(" vpc_MerchTxnRef : " + conn.GetResultField("vpc_MerchTxnRef", "Unknown") + "<br/>");
                    RefundDetails.Append(" vpc_Merchant : " + conn.GetResultField("vpc_Merchant", "Unknown") + "<br/>");
                    RefundDetails.Append(" vpc_OrderInfo : " + conn.GetResultField("vpc_OrderInfo", "Unknown") + "<br/>");
                    RefundDetails.Append(" vpc_Amount : " + conn.GetResultField("vpc_Amount", "Unknown") + "<br/>");
                    RefundDetails.Append(" vpc_DRExists :" + conn.GetResultField("vpc_DRExists", "Unknown") + "<br/>");
                    RefundDetails.Append(" vpc_FoundMultipleDRs : " + conn.GetResultField("vpc_FoundMultipleDRs", "Unknown") + "<br/>");
                    RefundDetails.Append(" vpc_Message : " + conn.GetResultField("vpc_Message", "Unknown") + "<br/>");
                    RefundDetails.Append(" vpc_AcqResponseCode : " + conn.GetResultField("vpc_AcqResponseCode", "Unknown") + "<br/>");
                    RefundDetails.Append(" vpc_TransactionNo : " + conn.GetResultField("vpc_TransactionNo", "Unknown") + "<br/>");
                    RefundDetails.Append(" vpc_ReceiptNo : " + conn.GetResultField("vpc_ReceiptNo", "Unknown") + "<br/>");
                    RefundDetails.Append(" vpc_AuthorizeId : " + conn.GetResultField("vpc_AuthorizeId", "Unknown") + "<br/>");
                    RefundDetails.Append(" vpc_BatchNo : " + conn.GetResultField("vpc_BatchNo", "Unknown") + "<br/>");
                    RefundDetails.Append(" vpc_TicketNo : " + conn.GetResultField("vpc_TicketNo", "Unknown") + "<br/>");
                    RefundDetails.Append(" vpc_Card : " + conn.GetResultField("vpc_Card", "Unknown") + "<br/>");
                    RefundDetails.Append(" Response Result :" + ResponseResult + "<br/>");
                    RefundDetails.Append(" vpc_AuthorisedAmount : " + conn.GetResultField("vpc_AuthorisedAmount", "Unknown") + "<br/>");
                    RefundDetails.Append(" vpc_CapturedAmount : " + conn.GetResultField("vpc_CapturedAmount", "Unknown") + "<br/>");
                    RefundDetails.Append(" vpc_RefundedAmount : " + conn.GetResultField("vpc_RefundedAmount", "Unknown") + "<br/>");
                    Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Refund Details for Amex : " + RefundDetails);

                    string vpc_avsResultCode = conn.GetResultField("vpc_AVSResultCode", "Unknown");
                    string Transaction       = conn.GetResultField("vpc_TransactionNo", "Unknown");
                    Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("vpc_AVSResultCode : " + vpc_avsResultCode + " and vpc_TransactionNo : " + TransactionNo);
                    if (vpc_TxnResponseCode == "0")//&& (vpc_avsResultCode == "Y" || vpc_avsResultCode == "M")
                    {
                        Boolean IsSuccess = Successfull_1(BookingID);
                        Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Update ISProcessed Value to ' 1 ' and Payment Successful : " + IsSuccess + " for BookingID : " + BookingID);
                        return(IsSuccess);
                    }
                    else
                    {
                        Boolean IsRefundPossible = RefundNotPossible_5(BookingID);
                        Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Update ISProcessed Value to ' 5 ' and Refund : " + IsRefundPossible + " for BookingID : " + BookingID);
                        return(IsRefundPossible);
                    }
                }
            }
            if (CounterChkAmexRefundValue == 3)
            {
                Boolean IsAmexException = ExceptioninRefund_4(BookingID);
                Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Update ISProcessed Value to ' 4 ' and Refund : " + IsAmexException + " for BookingID : " + BookingID);
                return(IsAmexException);
            }
            return(false);
        }
示例#37
0
        public IActionResult OnePayPayment([Bind("vpc_Customer_Phone,vpc_Customer_Email,vpc_Customer_Id,vpc_Customer_Name")] VPC vpc)
        {
            string value = SessionHelper.GetObjectFromJson <string>(HttpContext.Session, "User");
            var    user  = eMarketContext.TaiKhoan.Include(p => p.ThongTinTaiKhoan).Where(p => p.UserName == value).FirstOrDefault();

            List <GioHang> danhsachhang = SessionHelper.GetObjectFromJson <List <GioHang> >(HttpContext.Session, "cart");
            double         total        = 0;

            foreach (var x in danhsachhang)
            {
                total += x.HangHoa.Gia * x.SoLuong;
            }
            total = VPCRequest.USD_VND * total;
            var current_invoice = CreateInvoice(danhsachhang, vpc.vpc_Customer_Name, vpc.vpc_Customer_Email, vpc.vpc_Customer_Address, vpc.vpc_Customer_Phone);

            HttpContext.Session.SetString("cart", "");

            foreach (var item in danhsachhang)
            {
                var topselling = eMarketContext.TopSelling.Where(p => p.HangHoaId == item.HangHoa.HangHoaId).FirstOrDefault();
                if (topselling == null)
                {
                    var newcolumn = new TopSelling();
                    newcolumn.HangHoaId = item.HangHoa.HangHoaId;
                    newcolumn.SoLan     = 1;
                    eMarketContext.Add(newcolumn);
                    eMarketContext.SaveChanges();
                }
                else
                {
                    topselling.SoLan += 1;
                    eMarketContext.Update(topselling);
                    eMarketContext.SaveChanges();
                }
            }

            //Send request to OnePay
            string     returnURL = Url.Action("OnePayResult", "GioHang", null, Request.Scheme);;
            VPCRequest conn      = new VPCRequest();

            conn.SetSecureSecret(VPCRequest.SECURE_SECRET);
            conn.AddDigitalOrderField("Title", "onepay paygate");
            conn.AddDigitalOrderField("vpc_Locale", "vn");//Chon ngon ngu hien thi tren cong thanh toan (vn/en)
            conn.AddDigitalOrderField("vpc_Version", "2");
            conn.AddDigitalOrderField("vpc_Command", "pay");
            conn.AddDigitalOrderField("vpc_Merchant", VPCRequest.MERCHANT_ID);
            conn.AddDigitalOrderField("vpc_AccessCode", VPCRequest.ACCESS_CODE);
            conn.AddDigitalOrderField("vpc_MerchTxnRef", "HoaDon_" + current_invoice.HoaDonId);
            conn.AddDigitalOrderField("vpc_OrderInfo", "HoaDon_" + current_invoice.HoaDonId);
            conn.AddDigitalOrderField("vpc_Amount", total + "00");
            conn.AddDigitalOrderField("vpc_Currency", "VND");
            conn.AddDigitalOrderField("vpc_ReturnURL", returnURL);

            // Thong tin them ve khach hang. De trong neu khong co thong tin
            conn.AddDigitalOrderField("vpc_Customer_Phone", vpc.vpc_Customer_Phone);
            conn.AddDigitalOrderField("vpc_Customer_Email", vpc.vpc_Customer_Email);
            conn.AddDigitalOrderField("vpc_Customer_Id", "" + user.TaiKhoanId);

            // Dia chi IP cua khach hang
            string ipAddress = _accessor.HttpContext.Connection.RemoteIpAddress.ToString();

            conn.AddDigitalOrderField("vpc_TicketNo", ipAddress);

            // Chuyen huong trinh duyet sang cong thanh toan
            string url = conn.Create3PartyQueryString();

            return(Redirect(url));
        }
示例#38
0
        public ActionResult PaymentReturn()
        {
            string hashvalidateResult  = "";
            string vpc_TxnResponseCode = "Unknown";
            string amount          = "Unknown";
            string localed         = "Unknown";
            string command         = "Unknown";
            string version         = "Unknown";
            string cardType        = "Unknown";
            string orderInfo       = "Unknown";
            string merchantID      = "Unknown";
            string authorizeID     = "Unknown";
            string merchTxnRef     = "Unknown";
            string transactionNo   = "Unknown";
            string acqResponseCode = "Unknown";
            string txnResponseCode = "Unknown";
            string message         = "Unknown";
            string msg             = string.Empty;

            try
            {
                // Khoi tao lop thu vien
                VPCRequest conn = new VPCRequest("http://onepay.vn");
                conn.SetSecureSecret(SECURE_SECRET);
                // Xu ly tham so tra ve va kiem tra chuoi du lieu ma hoa
                hashvalidateResult = conn.Process3PartyResponse(Request.QueryString);
                // Lay gia tri tham so tra ve tu cong thanh toan
                vpc_TxnResponseCode = conn.GetResultField("vpc_TxnResponseCode", "Unknown");
                amount          = conn.GetResultField("vpc_Amount", "Unknown");
                localed         = conn.GetResultField("vpc_Locale", "Unknown");
                command         = conn.GetResultField("vpc_Command", "Unknown");
                version         = conn.GetResultField("vpc_Version", "Unknown");
                cardType        = conn.GetResultField("vpc_Card", "Unknown");
                orderInfo       = conn.GetResultField("vpc_OrderInfo", "Unknown");
                merchantID      = conn.GetResultField("vpc_Merchant", "Unknown");
                authorizeID     = conn.GetResultField("vpc_AuthorizeId", "Unknown");
                merchTxnRef     = conn.GetResultField("vpc_MerchTxnRef", "Unknown");
                transactionNo   = conn.GetResultField("vpc_TransactionNo", "Unknown");
                acqResponseCode = conn.GetResultField("vpc_AcqResponseCode", "Unknown");
                txnResponseCode = vpc_TxnResponseCode;
                message         = conn.GetResultField("vpc_Message", "Unknown");
            }
            catch (Exception ex)
            {
                msg = "The payment is in-progress, please ask administrator for looking at this!";
                Log(merchTxnRef, merchantID, amount, orderInfo, hashvalidateResult, ex.StackTrace);

                return(View(new InsertResponse {
                    Message = "An error occurs at payment service, please contact administrator!", ErrorCode = (int)ErrorCode.Error
                }));
            }

            //Find user
            var  participantType = "";
            long reference       = 0;

            long.TryParse(orderInfo, out reference);
            var transactionResponse = _transaction.FindByTransactionReference(reference);

            string userID = "";
            string email  = "";

            if (transactionResponse.Items != null && transactionResponse.Items.Count > 0)
            {
                FindItemReponse <UserModel> userResponse = _userService.FindUserByID(transactionResponse.Items.First().UserId);
                if (userResponse.Item != null)
                {
                    userID = userResponse.Item.UserID;
                    email  = userResponse.Item.Email;
                    FindAllItemReponse <MailingAddressModel> mailingResponse = _mailingService.FindMailingAddressByUser(userResponse.Item.UserID);
                    if (mailingResponse.Items != null)
                    {
                        var mailing = mailingResponse.Items.SingleOrDefault();
                        if (mailing != null)
                        {
                            participantType = mailing.ParticipantType;
                        }
                    }
                }
            }

            //Save payment
            PaymentModel payment = new PaymentModel();

            payment.PaymentID   = Guid.NewGuid().ToString();
            payment.UserID      = userID;
            payment.Amount      = double.Parse(amount) / 100;
            payment.CreatedBy   = userID;
            payment.CreatedDate = DateTime.Now;
            payment.MerchRef    = merchTxnRef;
            payment.PaymentType = participantType;

            if (string.IsNullOrEmpty(payment.PaymentType))
            {
                payment.PaymentType = "Unknown";
            }

            try
            {
                //Validate transaction
                if (hashvalidateResult == "CORRECTED" && txnResponseCode.Trim() == "0")
                {
                    //vpc_Result.Text = "Transaction was paid successful";
                    payment.Status = (int)PaymentStatus.Completed;
                    msg            = "Your payment was paid successful!";

                    //Sending email
                    //USD
                    decimal usd     = 0;
                    decimal usdrate = 0;
                    try
                    {
                        usdrate = DataHelper.GetInstance().GetCurrencyRate(FROM_CURRENCY, 22265);
                        usd     = decimal.Parse(amount) / usdrate;
                    }
                    catch (Exception) { }

                    string messageBody = DataHelper.GetInstance().BuildInvoicePdfTemplate(payment.PaymentType, merchTxnRef, transactionNo, usd.ToString(), amount, DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss.fff", CultureInfo.InvariantCulture));
                    string title       = string.Format(PAYMENT_TITLE, transactionNo);
                    Task.Run(() => DataHelper.GetInstance().SendEmail(email, title, messageBody));
                }
                else if (hashvalidateResult == "INVALIDATED" && txnResponseCode.Trim() == "0")
                {
                    //vpc_Result.Text = "Transaction is pending";
                    payment.Status = (int)PaymentStatus.Pending;
                    msg            = "Your payment was in pending status, please contact our administrator!";
                }
                else
                {
                    //vpc_Result.Text = "Transaction was not paid successful";
                    payment.Status = (int)PaymentStatus.Error;
                    msg            = "The payment was not paid successful, please try again!";
                }
            }
            catch (Exception ex)
            {
                msg = "The payment is in-progress, please ask administrator for looking at this!";
                Log(merchTxnRef, merchantID, amount, orderInfo, hashvalidateResult, ex.StackTrace);
            }

            InsertResponse _response = _paymentService.Create(payment);

            _response.Message = msg;

            // Log info
            StringBuilder strBuilder = new StringBuilder();

            strBuilder.Append(string.Format("Transaction vpc_MerchTxnRef {0}, ", merchTxnRef));
            strBuilder.Append(string.Format("Transaction vpc_Merchant {0}, ", merchantID));
            strBuilder.Append(string.Format("Transaction vpc_Amount {0}, ", amount));
            strBuilder.Append(string.Format("Transaction vpc_OrderInfo {0}, ", orderInfo));
            strBuilder.Append(string.Format("Transaction hashvalidateResult {0}, ", hashvalidateResult));
            strBuilder.Append(string.Format("Transaction userId {0}, ", userID));
            strBuilder.Append(string.Format("Transaction email {0}, ", email));

            TransactionHistoryModel transaction = new TransactionHistoryModel
            {
                Action               = "Payment completed",
                CreatedDate          = DateTime.Now,
                Log                  = strBuilder.ToString(),
                Status               = (int)TransactionStatus.Completed,
                UserId               = merchTxnRef,
                Email                = email,
                TransactionReference = reference
            };

            _transaction.Create(transaction);

            return(View(_response));
        }
示例#39
0
        protected void GetResponse()
        {
            // Create the VPCRequest object
            VPCRequest conn = new VPCRequest("https://vpos.amxvpos.com/vpcpay");
            //test
            //conn.setSecureSecret("C12DC6FE16681E9DD3211D2BB0C0BBA2");

            //Live
            conn.setSecureSecret("44DD98D32ECD3C1AA7F12A1D0F8B41EA");
            // Process the response
            conn.process3PartyResponse(Page.Request.QueryString);

            // Check if the transaction was successful or if there was an error
            vpc_TxnResponseCode = conn.getResultField("vpc_TxnResponseCode", "Unknown");

            // Set the display fields for the receipt with the result fields
            // Core Fields

            // Label_vpc_TxnResponseCode.Text = vpc_TxnResponseCode;

            txtRefCode = conn.getResultField("vpc_MerchTxnRef", "Unknown");
            ShoWName = conn.getResultField("vpc_OrderInfo", "Unknown");

            Amount = conn.getResultField("vpc_Amount", "Unknown");
            ReceiptNo = conn.getResultField("vpc_ReceiptNo", "Unknown");

            // Label_TxnResponseCodeDesc.Text = PaymentCodesHelper.getTxnResponseCodeDescription(Label_vpc_TxnResponseCode.Text);

            // Address Verification / Advanced Address Verification
            vpc_avsResultCode = conn.getResultField("vpc_AVSResultCode", "Unknown");

            // Perform the Capture if the Authorization was successful
            TranSactNo = conn.getResultField("vpc_TransactionNo", "Unknown");
            if (vpc_TxnResponseCode == "0" && (vpc_avsResultCode == "Y" || vpc_avsResultCode == "M"))
            {
                // Create a new VPCRequest Object and set the proxy details if required
                conn = new VPCRequest("https://vpos.amxvpos.com/vpcdps");
                conn.setProxyHost("");
                conn.setProxyUser("");
                conn.setProxyPassword("");
                conn.setProxyDomain("");
                //test server
                // Add the Required Fields
                //conn.addDigitialOrderField("vpc_Version", "1");
                //conn.addDigitialOrderField("vpc_AccessCode", "D30639FF");
                //conn.addDigitialOrderField("vpc_Merchant", "TEST9824533848");
                //conn.addDigitialOrderField("vpc_User", "kingdom");
                //conn.addDigitialOrderField("vpc_Password", "0password");
                //conn.addDigitialOrderField("vpc_Command", "capture");

                ////live server
                conn.addDigitialOrderField("vpc_Version", "1");
                conn.addDigitialOrderField("vpc_AccessCode", "0FE6FE77");
                conn.addDigitialOrderField("vpc_Merchant", "9824533848");
                conn.addDigitialOrderField("vpc_User", "kingdomama");
                conn.addDigitialOrderField("vpc_Password", "0password");
                conn.addDigitialOrderField("vpc_Command", "capture");

                conn.addDigitialOrderField("vpc_MerchTxnRef", txtRefCode.Substring(0, txtRefCode.Length - 2) + "-C");
                conn.addDigitialOrderField("vpc_TransNo", TranSactNo);
                conn.addDigitialOrderField("vpc_Amount", Amount);
                // Perform the transaction
                conn.sendRequest();
                // Check if the transaction was successful or if there was an error
                ResponseCode = conn.getResultField("vpc_TxnResponseCode", "Unknown");
            }
            //convert amt  
            int amt = (Convert.ToInt32(Amount)) / 100;
            stramt = amt.ToString();
            //pv
            if (vpc_TxnResponseCode.ToString().Equals("0"))
            {
                //Pay Details , Sent To Loyelty Card Page --  CardType,TransID,Amt,ShowName
                UpdateTransDB();
                Response.Write("<b>Payment successful</b> <br/><br/>" + ShoWName.ToUpper() + "<br/> Amount: " + stramt.ToString() + "<br/>Transaction Id: " + txtRefCode.ToString());
              
            }
            else
            {
                Response.Write("Payment Not successful</b> <br/><br/>" + ShoWName.ToUpper() + "<br/> Amount: " + stramt.ToString() + "<br/>Transaction Id: " + txtRefCode.ToString());
            }
        }
    private void GuiDonHang()
    {
        string ketQua = "";
        string detail = "Working";

        //Lấy các thông tin người dùng gửi lên
        string hoTen               = Request.Params["hoTen"];
        string diaChi              = Request.Params["diaChi"];
        string soDienThoai         = Request.Params["soDienThoai"];
        string email               = Request.Params["email"];
        string phuongThucThanhToan = Request.Params["phuongThucThanhToan"];


        //Nếu tồn tại giỏ hàng thì mới xử lý đặt hàng
        if (Session["GioHang"] != null)
        {
            //Khai báo datatable để chứa giỏ hàng
            DataTable dtGioHang = new DataTable();
            dtGioHang = (DataTable)Session["GioHang"];

            #region Lặp trong giỏ hàng để lấy ra tổng tiền
            double tongTien = 0;
            for (int i = 0; i < dtGioHang.Rows.Count; i++)
            {
                tongTien += int.Parse(dtGioHang.Rows[i]["SoLuong"].ToString()) * double.Parse(dtGioHang.Rows[i]["GiaSP"].ToString());
            }
            #endregion

            #region Kiểm tra và thêm thông tin vào bảng Khách hàng

            string maKH = XuLyThongTinKhachHang(hoTen, diaChi, soDienThoai, email);

            #endregion

            //Lấy ngày giờ hiện tại trả về dạng số để làm mã thanh toán trực tuyến
            string mathanhtoantructuyen = DateTime.Now.Ticks.ToString();

            #region Thêm thông tin vào bảng Đơn đặt hàng
            //Tạo đơn đặt hàng
            string ngayTao = DateTime.Now.ToString();
            Order.Order_Inser(ngayTao, tongTien.ToString(), mathanhtoantructuyen, maKH, hoTen, soDienThoai, email, detail.ToString(), "");

            //Lấy ra thông tin Đơn đặt hàng vừa tạo
            DataTable dtDonDatHang = Order.Info_Order_Desc();
            string    maDonDatHang = dtDonDatHang.Rows[0]["OrderID"].ToString();
            #endregion

            #region Đọc giỏ hàng và thêm từng sản phẩm vào bảng Chi tiết đơn đặt hàng
            for (int i = 0; i < dtGioHang.Rows.Count; i++)
            {
                OrderDetail.OrderDetail_Inser(dtGioHang.Rows[i]["MaSP"].ToString(), maDonDatHang, dtGioHang.Rows[i]["SoLuong"].ToString(), dtGioHang.Rows[i]["GiaSP"].ToString(), "");
            }
            #endregion

            #region Xóa session giỏ hàng

            Session["GioHang"] = null;

            #endregion

            #region Xử lý tương ứng cho các hình thức thanh toán


            switch (phuongThucThanhToan)
            {
            case "ChuyenKhoan":
                break;

            case "Onepay":
                #region Chuyển sang trang Onepay
                string SECURE_SECRET = OnepayCode.SECURE_SECRET;         //Hòa: cần thanh bằng mã thật cấu hình trong app_code
                                                                         // Khoi tao lop thu vien va gan gia tri cac tham so gui sang cong thanh toan
                VPCRequest conn = new VPCRequest(OnepayCode.VPCRequest); //Hòa: Cần thay bằng cổng thật cấu hình trong app_code
                conn.SetSecureSecret(SECURE_SECRET);
                // Add the Digital Order Fields for the functionality you wish to use
                // Core Transaction Fields
                conn.AddDigitalOrderField("Title", "onepay paygate");
                conn.AddDigitalOrderField("vpc_Locale", "vn");    //Chon ngon ngu hien thi tren cong thanh toan (vn/en)
                conn.AddDigitalOrderField("vpc_Version", "2");
                conn.AddDigitalOrderField("vpc_Command", "pay");
                conn.AddDigitalOrderField("vpc_Merchant", OnepayCode.Merchant);       //Hòa: cần thanh bằng mã thật cấu hình trong app_code
                conn.AddDigitalOrderField("vpc_AccessCode", OnepayCode.AccessCode);   //Hòa: cần thanh bằng mã thật cấu hình trong app_code
                conn.AddDigitalOrderField("vpc_MerchTxnRef", mathanhtoantructuyen);   //Hòa: mã thanh toán
                conn.AddDigitalOrderField("vpc_OrderInfo", mathanhtoantructuyen);     //Hòa: thông tin đơn hàng
                conn.AddDigitalOrderField("vpc_Amount", (tongTien * 100).ToString()); //Hòa: chi phí cần nhân 100 theo yêu cầu của onepay
                conn.AddDigitalOrderField("vpc_Currency", "$");
                conn.AddDigitalOrderField("vpc_ReturnURL", OnepayCode.ReturnURL);     //Hòa: địa chỉ nhận kết quả trả về
                                                                                      // Thong tin them ve khach hang. De trong neu khong co thong tin
                conn.AddDigitalOrderField("vpc_SHIP_Street01", "");
                conn.AddDigitalOrderField("vpc_SHIP_Provice", "");
                conn.AddDigitalOrderField("vpc_SHIP_City", "");
                conn.AddDigitalOrderField("vpc_SHIP_Country", "");
                conn.AddDigitalOrderField("vpc_Customer_Phone", "");
                conn.AddDigitalOrderField("vpc_Customer_Email", "");
                conn.AddDigitalOrderField("vpc_Customer_Id", "");
                // Dia chi IP cua khach hang
                conn.AddDigitalOrderField("vpc_TicketNo", Request.UserHostAddress);
                // Chuyen huong trinh duyet sang cong thanh toan
                String url = conn.Create3PartyQueryString();
                #endregion

                ketQua = url;

                break;

            case "OnepayQuocTe":
                string SECURE_SECRET1 = OnepayQuocTeCode.SECURE_SECRET;         //Hòa: cần thanh bằng mã thật cấu hình trong app_code;
                                                                                // Khoi tao lop thu vien va gan gia tri cac tham so gui sang cong thanh toan
                VPCRequest conn1 = new VPCRequest(OnepayQuocTeCode.VPCRequest); //Hòa: Cần thay bằng cổng thật
                conn1.SetSecureSecret(SECURE_SECRET1);
                // Add the Digital Order Fields for the functionality you wish to use
                // Core Transaction Fields
                conn1.AddDigitalOrderField("AgainLink", "http://onepay.vn");
                conn1.AddDigitalOrderField("Title", "onepay paygate");
                conn1.AddDigitalOrderField("vpc_Locale", "en");    //Chon ngon ngu hien thi tren cong thanh toan (vn/en)
                conn1.AddDigitalOrderField("vpc_Version", "2");
                conn1.AddDigitalOrderField("vpc_Command", "pay");
                conn1.AddDigitalOrderField("vpc_Merchant", OnepayQuocTeCode.Merchant);     //Hòa: cần thanh bằng mã thật cấu hình trong app_code
                conn1.AddDigitalOrderField("vpc_AccessCode", OnepayQuocTeCode.AccessCode); //Hòa: cần thanh bằng mã thật cấu hình trong app_code
                conn1.AddDigitalOrderField("vpc_MerchTxnRef", mathanhtoantructuyen);       //Hòa: mã thanh toán
                conn1.AddDigitalOrderField("vpc_OrderInfo", mathanhtoantructuyen);         //Hòa: mã thanh toán
                conn1.AddDigitalOrderField("vpc_Amount", (tongTien * 100).ToString());     //Hòa: chi phí cần nhân 100 theo yêu cầu của onepay

                conn1.AddDigitalOrderField("vpc_ReturnURL", OnepayQuocTeCode.ReturnURL);   //Hòa: địa chỉ nhận kết quả trả về
                                                                                           // Thong tin them ve khach hang. De trong neu khong co thong tin
                conn1.AddDigitalOrderField("vpc_SHIP_Street01", "");
                conn1.AddDigitalOrderField("vpc_SHIP_Provice", "");
                conn1.AddDigitalOrderField("vpc_SHIP_City", "");
                conn1.AddDigitalOrderField("vpc_SHIP_Country", "");
                conn1.AddDigitalOrderField("vpc_Customer_Phone", "");
                conn1.AddDigitalOrderField("vpc_Customer_Email", "");
                conn1.AddDigitalOrderField("vpc_Customer_Id", "");
                // Dia chi IP cua khach hang
                conn1.AddDigitalOrderField("vpc_TicketNo", Request.UserHostAddress);
                // Chuyen huong trinh duyet sang cong thanh toan
                String url1 = conn1.Create3PartyQueryString();
                ketQua = url1;

                break;
            }
            #endregion
        }
        else
        {
            ketQua = "Giỏ hàng đã hết hạn, vui lòng thực hiện chọn lại sản phẩm và đặt hàng lại";
        }

        Response.Write(ketQua);
    }
示例#41
0
        protected void Page_Load(object sender, EventArgs e)
        {
            string SECURE_SECRET      = OnepayCode.SECURE_SECRET;//Hòa: cần thay bằng mã thật từ app_code
            string hashvalidateResult = "";
            // Khoi tao lop thu vien
            VPCRequest conn = new VPCRequest("http://onepay.vn");

            conn.SetSecureSecret(SECURE_SECRET);
            // Xu ly tham so tra ve va kiem tra chuoi du lieu ma hoa
            hashvalidateResult = conn.Process3PartyResponse(Request.QueryString);

            // Lay gia tri tham so tra ve tu cong thanh toan
            String vpc_TxnResponseCode = conn.GetResultField("vpc_TxnResponseCode", "Unknown");
            string amount          = conn.GetResultField("vpc_Amount", "Unknown");
            string localed         = conn.GetResultField("vpc_Locale", "Unknown");
            string command         = conn.GetResultField("vpc_Command", "Unknown");
            string version         = conn.GetResultField("vpc_Version", "Unknown");
            string cardBin         = conn.GetResultField("vpc_Card", "Unknown");
            string orderInfo       = conn.GetResultField("vpc_OrderInfo", "Unknown");
            string merchantID      = conn.GetResultField("vpc_Merchant", "Unknown");
            string authorizeID     = conn.GetResultField("vpc_AuthorizeId", "Unknown");
            string merchTxnRef     = conn.GetResultField("vpc_MerchTxnRef", "Unknown");
            string transactionNo   = conn.GetResultField("vpc_TransactionNo", "Unknown");
            string txnResponseCode = vpc_TxnResponseCode;
            string message         = conn.GetResultField("vpc_Message", "Unknown");

            System.Decimal TongThanhTien = 0;
            String         hoten, sdt, diachi, tinh, quan, maDH, datetime, email;

            DataTable dt = new DataTable();
            DataTable info = new DataTable();

            // Sua lai ham check chuoi ma hoa du lieu
            if (hashvalidateResult == "CORRECTED" && txnResponseCode.Trim() == "0")
            {
                //vpc_Result.Text = "Transaction was paid successful";
                dt            = (DataTable)Session["GioHang"];
                info          = (DataTable)Session["info"];
                hoten         = info.Rows[0]["hoten"].ToString();
                sdt           = info.Rows[0]["sdt"].ToString();
                maDH          = info.Rows[0]["maDH"].ToString();
                TongThanhTien = int.Parse(info.Rows[0]["TongThanhTien"].ToString());
                datetime      = info.Rows[0]["datetime"].ToString();
                email         = info.Rows[0]["email"].ToString();
                diachi        = info.Rows[0]["diachi"].ToString();

                XuLyDonHang.getDonDatHang(2, sdt, hoten, maDH, TongThanhTien, datetime, dt, email, diachi, 0);

                #region xử lý mail

                string smtpUserName = "******";
                string smtpPassword = "******";
                string smtpHost     = "smtp.gmail.com";
                int    smtpPort     = 25;

                string emailTo = email;
                string subject = "Vương quốc son môi - thanh toán quốc tế";
                string body    = string.Format("Xin chào, " + email + Environment.NewLine +
                                               "\n Số tiền bạn đã thanh toán: " + String.Format("{0:0,00}₫", TongThanhTien) + ":" + Environment.NewLine +
                                               "\n Bạn đã thanh toán đơn hàng bằng hình thức thanh toán quốc tế thành công! Đơn hàng đang chờ được duyệt" + Environment.NewLine +
                                               "\n Cảm ơn bạn đã sử dụng dịch vụ của Vương quốc son môi!" + Environment.NewLine +
                                               "\n Chúc bạn có thêm nhiều niềm vui với bưu phẩm của mình <3");

                MailUtils service = new MailUtils();
                bool      kq      = service.Send(smtpUserName, smtpPassword, smtpHost, smtpPort, emailTo, subject, body);
                #endregion

                Session["Giohang"] = null;
                Session["info"]    = null;
                Response.Write("<div class='result'>Đã thanh toán thành công</div>");
            }
            else if (hashvalidateResult == "INVALIDATED" && txnResponseCode.Trim() == "0")
            {
                //vpc_Result.Text = "Transaction is pending";
                //Response.Write("Error description : " + message + "<br/>");
                Response.Write("<div class='result'>Thanh toán đang chờ</div>");
            }
            else
            {
                //vpc_Result.Text = "Transaction was not paid successful";
                //Response.Write("Error description : " + message + "<br/>");
                Response.Write("<div class='result'>Thanh toán không thành công</div>");
            }
        }