Exemplo n.º 1
0
    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);
        }