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()); } }
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); }
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); }
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>"); } }
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; }
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); }
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")); } }
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); }
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); }
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")); }