Esempio n. 1
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());
            }
        }
Esempio n. 2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                pnlReceiptError.Visible = false;
                pnlResponse.Visible     = false;
            }

            try
            {
                // Create a new VPCRequest object
                VPCRequest conn = new VPCRequest();

                // Process the response received
                conn.Process3PartyResponse(Page.Request.QueryString);

                // Check if the transaction was successful or if there was an error
                String 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;
                Label_vpc_MerchTxnRef.Text       = conn.GetResultField("vpc_MerchTxnRef", "Unknown");
                Label_vpc_OrderInfo.Text         = conn.GetResultField("vpc_OrderInfo", "Unknown");
                Label_vpc_Merchant.Text          = conn.GetResultField("vpc_Merchant", "Unknown");
                Label_vpc_Amount.Text            = conn.GetResultField("vpc_Amount", "Unknown");
                Label_vpc_Message.Text           = conn.GetResultField("vpc_Message", "Unknown");
                Label_vpc_ReceiptNo.Text         = conn.GetResultField("vpc_ReceiptNo", "Unknown");
                Label_vpc_AcqResponseCode.Text   = conn.GetResultField("vpc_AcqResponseCode", "Unknown");
                Label_vpc_AuthorizeId.Text       = conn.GetResultField("vpc_AuthorizeId", "Unknown");
                Label_vpc_BatchNo.Text           = conn.GetResultField("vpc_BatchNo", "Unknown");
                Label_vpc_TransactionNo.Text     = conn.GetResultField("vpc_TransactionNo", "Unknown");
                Label_vpc_Card.Text              = conn.GetResultField("vpc_Card", "Unknown");
                Label_vpc_3DSECI.Text            = conn.GetResultField("vpc_3DSECI", "Unknown");
                Label_vpc_3DSXID.Text            = conn.GetResultField("vpc_3DSXID", "Unknown");
                Label_vpc_3DSenrolled.Text       = conn.GetResultField("vpc_3DSenrolled", "Unknown");
                Label_vpc_3DSstatus.Text         = conn.GetResultField("vpc_3DSstatus", "Unknown");
                Label_vpc_VerToken.Text          = conn.GetResultField("vpc_VerToken", "Unknown");
                Label_vpc_VerType.Text           = conn.GetResultField("vpc_VerType", "Unknown");
                Label_vpc_VerSecurityLevel.Text  = conn.GetResultField("vpc_VerSecurityLevel", "Unknown");
                Label_vpc_VerStatus.Text         = conn.GetResultField("vpc_VerStatus", "Unknown");
                Label_vpc_RiskOverallResult.Text = conn.GetResultField("vpc_RiskOverallResult", "Unknown");
                Label_vpc_TxnReversalResult.Text = conn.GetResultField("vpc_TxnReversalResult", "No Value Returned");
                Label_TxnResponseCodeDesc.Text   = PaymentCodesHelper.GetTxnResponseCodeDescription(Label_vpc_TxnResponseCode.Text);

                // Card Security Code Fields
                Label_vpc_cscResultCode.Text = conn.GetResultField("vpc_cscResultCode", "Unknown");
                Label_cscResultCodeDesc.Text = PaymentCodesHelper.GetCSCDescription(Label_vpc_cscResultCode.Text);

                // Display the response fields
                pnlResponse.Visible = true;
            }
            catch (Exception ex)
            {
                // Capture the error and display the error information
                lblReceiptErrorMessage.Text = ex.Message + (ex.InnerException != null ? ex.InnerException.Message : "");
                pnlReceiptError.Visible     = true;
            }
        }
    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);
    }
Esempio n. 4
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));
        }
    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>");
        }
    }
        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);
        }
Esempio n. 7
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>");
            }
        }
    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>");
        }
    }
Esempio n. 9
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;
        }
Esempio n. 10
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"));
            }
        }
    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);
    }
Esempio n. 12
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"));
            }
        }
Esempio n. 13
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);
        }
Esempio n. 14
0
        public Boolean AmexQuery(string BookingID, string ReferenceNo, string TotalAmount)
        {
            VPCRequest conn          = AmexConfig();
            string     MerchantRefNo = BookingID + "_" + ReferenceNo + "~WEB";

            conn.AddDigitalOrderField("vpc_Command", "queryDR");
            conn.AddDigitalOrderField("vpc_MerchTxnRef", MerchantRefNo);
            Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Amex Reversal Payment process for MerchantRefNo. : " + MerchantRefNo);
            // Perform the transaction
            conn.SendRequest();
            Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Returning form Amex Gateway");
            string ResponseResult = null;
            int    CounterChkAmexQueryValue;

            for (CounterChkAmexQueryValue = 1; CounterChkAmexQueryValue <= 2; CounterChkAmexQueryValue++)
            {
                string vpc_TxnResponseCode = conn.GetResultField("vpc_TxnResponseCode", "Unknown");
                ResponseResult = PaymentCodesHelper.GetTxnResponseCodeDescription(vpc_TxnResponseCode);
                Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Response Code : " + ResponseResult);
                if (ResponseResult == "" || ResponseResult == null || ResponseResult == "null response")
                {
                    conn.SendRequest();
                }
                else
                {
                    StringBuilder InquiryDetails = new StringBuilder();
                    InquiryDetails.Append("These are the Inquiry Details for Booking ID and Reference :" + BookingID + "," + ReferenceNo + "<br/>");
                    InquiryDetails.Append(" vpc_TxnResponseCode :" + conn.GetResultField("vpc_TxnResponseCode", "Unknown") + "<br/>");
                    InquiryDetails.Append(" vpc_MerchTxnRef :" + conn.GetResultField("vpc_MerchTxnRef", "Unknown") + "<br/>");
                    InquiryDetails.Append(" vpc_Merchant :" + conn.GetResultField("vpc_Merchant", "Unknown") + "<br/>");
                    InquiryDetails.Append(" vpc_OrderInfo :" + conn.GetResultField("vpc_OrderInfo", "Unknown") + "<br/>");
                    InquiryDetails.Append(" vpc_Amount :" + conn.GetResultField("vpc_Amount", "Unknown") + "<br/>");
                    InquiryDetails.Append(" vpc_DRExists :" + conn.GetResultField("vpc_DRExists", "Unknown"));
                    InquiryDetails.Append(" vpc_FoundMultipleDRs :" + conn.GetResultField("vpc_FoundMultipleDRs", "Unknown") + "<br/>");
                    InquiryDetails.Append(" vpc_Message :" + conn.GetResultField("vpc_Message", "Unknown") + "<br/>");
                    InquiryDetails.Append(" vpc_AcqResponseCode :" + conn.GetResultField("vpc_AcqResponseCode", "Unknown") + "<br/>");
                    InquiryDetails.Append(" vpc_TransactionNo :" + conn.GetResultField("vpc_TransactionNo", "Unknown") + "<br/>");
                    InquiryDetails.Append(" vpc_ReceiptNo :" + conn.GetResultField("vpc_ReceiptNo", "Unknown") + "<br/>");
                    InquiryDetails.Append(" vpc_AuthorizeId :" + conn.GetResultField("vpc_AuthorizeId", "Unknown") + "<br/>");
                    InquiryDetails.Append(" vpc_BatchNo :" + conn.GetResultField("vpc_BatchNo", "Unknown") + "<br/>");
                    InquiryDetails.Append(" vpc_TicketNo :" + conn.GetResultField("vpc_TicketNo", "Unknown") + "<br/>");
                    InquiryDetails.Append(" vpc_Card :" + conn.GetResultField("vpc_Card", "Unknown") + "<br/>");
                    InquiryDetails.Append(" Response Result :" + ResponseResult + "<br/>");
                    Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Inquiry Details for Amex : " + InquiryDetails);
                    string vpc_avsResultCode = conn.GetResultField("vpc_AVSResultCode", "Unknown");
                    string TransactionNo     = 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"))
                    {
                        if ((MerchantRefNo != "" || MerchantRefNo != null) && (TotalAmount != "" || TotalAmount != null) && (TransactionNo != "" || TransactionNo != null))
                        {
                            Boolean Result = AmexRefund(BookingID, ReferenceNo, TotalAmount, TransactionNo);
                            Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Value Return from AmexRefund i.e. IsSuccess : " + Result);
                            if (Result == true)
                            {
                                return(true);
                            }
                            else
                            {
                                return(false);
                            }
                        }
                        else
                        {
                            return(false);
                        }
                    }
                    else
                    {
                        Boolean IsPaymentSuccess = UserPaymentNotSuccess_3(BookingID);
                        Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Update ISProcessed Value to ' 3 ' and Inquiry Payment Success : " + IsPaymentSuccess + " for BookingID : " + BookingID);
                        return(IsPaymentSuccess);
                    }
                }
            }//for loop end
            if (CounterChkAmexQueryValue == 3)
            {
                Boolean IsHDFCInquirySuccess = ExceptioninInquiry_2(BookingID);
                Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write("Update ISProcessed Value to ' 2 ' and Inquiry Payment Success : " + IsHDFCInquirySuccess + " for BookingID : " + BookingID);
                return(IsHDFCInquirySuccess);
            }
            return(false);
        }
Esempio n. 15
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");
            }
        }
        // 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"));
        }