private void GuiDonHang() { string ketQua = ""; //Lấy các thông tin người dùng gửi lên string hoTen = Request.Params["hoTen"]; string diaChi = Request.Params["diaChi"]; string soDienThoai = Request.Params["soDienThoai"]; string email = Request.Params["email"]; string phuongThucThanhToan = Request.Params["phuongThucThanhToan"]; //Nếu tồn tại giỏ hàng thì mới xử lý đặt hàng if (Session["GioHang"] != null) { //Khai báo datatable để chứa giỏ hàng DataTable dtGioHang = new DataTable(); dtGioHang = (DataTable)Session["GioHang"]; #region Lặp trong giỏ hàng để lấy ra tổng tiền double tongTien = 0; for (int i = 0; i < dtGioHang.Rows.Count; i++) { tongTien += int.Parse(dtGioHang.Rows[i]["SoLuong"].ToString()) * double.Parse(dtGioHang.Rows[i]["GiaSP"].ToString()); } #endregion #region Kiểm tra và thêm thông tin vào bảng Khách hàng string maKH = XuLyThongTinKhachHang(hoTen, diaChi, soDienThoai, email); #endregion //Lấy ngày giờ hiện tại trả về dạng số để làm mã thanh toán trực tuyến string mathanhtoantructuyen = DateTime.Now.Ticks.ToString(); #region Thêm thông tin vào bảng Đơn đặt hàng //Tạo đơn đặt hàng string ngayTao = DateTime.Now.ToString(); DonDatHang.Dondathang_Inser(ngayTao, tongTien.ToString(), mathanhtoantructuyen, maKH, hoTen, soDienThoai, email, ""); //Lấy ra thông tin Đơn đặt hàng vừa tạo DataTable dtDonDatHang = DonDatHang.Thongtin_Dondathang_Desc(); string maDonDatHang = dtDonDatHang.Rows[0]["MaDonDatHang"].ToString(); #endregion #region Đọc giỏ hàng và thêm từng sản phẩm vào bảng Chi tiết đơn đặt hàng for (int i = 0; i < dtGioHang.Rows.Count; i++) { ChiTietDonDatHang.Chitietdondathang_Inser(dtGioHang.Rows[i]["MaSP"].ToString(), maDonDatHang, dtGioHang.Rows[i]["SoLuong"].ToString(), dtGioHang.Rows[i]["GiaSP"].ToString(), ""); } #endregion #region Xóa session giỏ hàng Session["GioHang"] = null; #endregion #region Xử lý tương ứng cho các hình thức thanh toán switch (phuongThucThanhToan) { case "ChuyenKhoan": break; case "Onepay": #region Chuyển sang trang Onepay string SECURE_SECRET = OnepayCode.SECURE_SECRET; //Hòa: cần thanh bằng mã thật cấu hình trong app_code // Khoi tao lop thu vien va gan gia tri cac tham so gui sang cong thanh toan VPCRequest conn = new VPCRequest(OnepayCode.VPCRequest); //Hòa: Cần thay bằng cổng thật cấu hình trong app_code conn.SetSecureSecret(SECURE_SECRET); // Add the Digital Order Fields for the functionality you wish to use // Core Transaction Fields conn.AddDigitalOrderField("Title", "onepay paygate"); conn.AddDigitalOrderField("vpc_Locale", "vn"); //Chon ngon ngu hien thi tren cong thanh toan (vn/en) conn.AddDigitalOrderField("vpc_Version", "2"); conn.AddDigitalOrderField("vpc_Command", "pay"); conn.AddDigitalOrderField("vpc_Merchant", OnepayCode.Merchant); //Hòa: cần thanh bằng mã thật cấu hình trong app_code conn.AddDigitalOrderField("vpc_AccessCode", OnepayCode.AccessCode); //Hòa: cần thanh bằng mã thật cấu hình trong app_code conn.AddDigitalOrderField("vpc_MerchTxnRef", mathanhtoantructuyen); //Hòa: mã thanh toán conn.AddDigitalOrderField("vpc_OrderInfo", mathanhtoantructuyen); //Hòa: thông tin đơn hàng conn.AddDigitalOrderField("vpc_Amount", (tongTien * 100).ToString()); //Hòa: chi phí cần nhân 100 theo yêu cầu của onepay conn.AddDigitalOrderField("vpc_Currency", "VND"); conn.AddDigitalOrderField("vpc_ReturnURL", OnepayCode.ReturnURL); //Hòa: địa chỉ nhận kết quả trả về // Thong tin them ve khach hang. De trong neu khong co thong tin conn.AddDigitalOrderField("vpc_SHIP_Street01", ""); conn.AddDigitalOrderField("vpc_SHIP_Provice", ""); conn.AddDigitalOrderField("vpc_SHIP_City", ""); conn.AddDigitalOrderField("vpc_SHIP_Country", ""); conn.AddDigitalOrderField("vpc_Customer_Phone", ""); conn.AddDigitalOrderField("vpc_Customer_Email", ""); conn.AddDigitalOrderField("vpc_Customer_Id", ""); // Dia chi IP cua khach hang conn.AddDigitalOrderField("vpc_TicketNo", Request.UserHostAddress); // Chuyen huong trinh duyet sang cong thanh toan String url = conn.Create3PartyQueryString(); #endregion ketQua = url; break; case "OnepayQuocTe": string SECURE_SECRET1 = OnepayQuocTeCode.SECURE_SECRET; //Hòa: cần thanh bằng mã thật cấu hình trong app_code; // Khoi tao lop thu vien va gan gia tri cac tham so gui sang cong thanh toan VPCRequest conn1 = new VPCRequest(OnepayQuocTeCode.VPCRequest); //Hòa: Cần thay bằng cổng thật conn1.SetSecureSecret(SECURE_SECRET1); // Add the Digital Order Fields for the functionality you wish to use // Core Transaction Fields conn1.AddDigitalOrderField("AgainLink", "http://onepay.vn"); conn1.AddDigitalOrderField("Title", "onepay paygate"); conn1.AddDigitalOrderField("vpc_Locale", "en"); //Chon ngon ngu hien thi tren cong thanh toan (vn/en) conn1.AddDigitalOrderField("vpc_Version", "2"); conn1.AddDigitalOrderField("vpc_Command", "pay"); conn1.AddDigitalOrderField("vpc_Merchant", OnepayQuocTeCode.Merchant); //Hòa: cần thanh bằng mã thật cấu hình trong app_code conn1.AddDigitalOrderField("vpc_AccessCode", OnepayQuocTeCode.AccessCode); //Hòa: cần thanh bằng mã thật cấu hình trong app_code conn1.AddDigitalOrderField("vpc_MerchTxnRef", mathanhtoantructuyen); //Hòa: mã thanh toán conn1.AddDigitalOrderField("vpc_OrderInfo", mathanhtoantructuyen); //Hòa: mã thanh toán conn1.AddDigitalOrderField("vpc_Amount", (tongTien * 100).ToString()); //Hòa: chi phí cần nhân 100 theo yêu cầu của onepay conn1.AddDigitalOrderField("vpc_ReturnURL", OnepayQuocTeCode.ReturnURL); //Hòa: địa chỉ nhận kết quả trả về // Thong tin them ve khach hang. De trong neu khong co thong tin conn1.AddDigitalOrderField("vpc_SHIP_Street01", ""); conn1.AddDigitalOrderField("vpc_SHIP_Provice", ""); conn1.AddDigitalOrderField("vpc_SHIP_City", ""); conn1.AddDigitalOrderField("vpc_SHIP_Country", ""); conn1.AddDigitalOrderField("vpc_Customer_Phone", ""); conn1.AddDigitalOrderField("vpc_Customer_Email", ""); conn1.AddDigitalOrderField("vpc_Customer_Id", ""); // Dia chi IP cua khach hang conn1.AddDigitalOrderField("vpc_TicketNo", Request.UserHostAddress); // Chuyen huong trinh duyet sang cong thanh toan String url1 = conn1.Create3PartyQueryString(); ketQua = url1; break; } #endregion } else { ketQua = "Giỏ hàng đã hết hạn, vui lòng thực hiện chọn lại sản phẩm và đặt hàng lại"; } Response.Write(ketQua); }
private void GuiDonHang() { string ketQua = ""; //Lấy các thông tin người dùng gửi lên string hoTen = Request.Params["hoTen"]; string diaChi = Request.Params["diaChi"]; string soDienThoai = Request.Params["soDienThoai"]; string email = Request.Params["email"]; //Nếu tồn tại giỏ hàng thì mới xử lý đặt hàng if (Session["GioHang"] != null) { //Khai báo datatable để chứa giỏ hàng DataTable dtGioHang = new DataTable(); dtGioHang = (DataTable)Session["GioHang"]; #region Lặp trong giỏ hàng để lấy ra tổng tiền double tongTien = 0; for (int i = 0; i < dtGioHang.Rows.Count; i++) { tongTien += int.Parse(dtGioHang.Rows[i]["SoLuong"].ToString()) * double.Parse(dtGioHang.Rows[i]["GiaSP"].ToString()); } #endregion #region Kiểm tra và thêm thông tin vào bảng Khách hàng string maKH = XuLyThongTinKhachHang(hoTen, diaChi, soDienThoai, email); #endregion //Lấy ngày giờ hiện tại trả về dạng số để làm mã thanh toán trực tuyến string mathanhtoantructuyen = DateTime.Now.Ticks.ToString(); #region Thêm thông tin vào bảng Đơn đặt hàng //Tạo đơn đặt hàng DateTime ngayTao = DateTime.Now; DonDatHang.Dondathang_Inser(ngayTao, tongTien.ToString(), "", maKH, hoTen, soDienThoai, email, ""); //Lấy ra thông tin Đơn đặt hàng vừa tạo DataTable dtDonDatHang = DonDatHang.Thongtin_Dondathang_Desc(); string maDonDatHang = dtDonDatHang.Rows[0]["MaDonDatHang"].ToString(); #endregion #region Đọc giỏ hàng và thêm từng sản phẩm vào bảng Chi tiết đơn đặt hàng for (int i = 0; i < dtGioHang.Rows.Count; i++) { ChiTietDonDatHang.Chitietdondathang_Inser(dtGioHang.Rows[i]["MaSP"].ToString(), maDonDatHang, dtGioHang.Rows[i]["SoLuong"].ToString(), dtGioHang.Rows[i]["GiaSP"].ToString(), ""); } #endregion #region Xóa session giỏ hàng Session["GioHang"] = null; #endregion } else { ketQua = "Giỏ hàng đã hết hạn, vui lòng thực hiện chọn lại sản phẩm và đặt hàng lại"; } Response.Write(ketQua); }