Beispiel #1
0
    protected void Page_Load(object sender, EventArgs e)
    {
        ExHelper.CheckUserAuth("cash");
        mu = buser.GetLogin();
        M_Store_Info storeMod = ExHelper.Store_User();

        orderMod = orderBll.SelReturnModel(OrderID);
        client   = buser.SelReturnModel(DataConvert.CLng(orderMod.Receiver));
        OrderHelper.CheckIsCanPay(orderMod);
        if (function.isAjax())
        {
            M_Payment payMod = payBll.CreateByOrder(orderMod);
            payMod.UserID  = mu.UserID;
            payMod.CStatus = true;
            payMod.Status  = (int)M_Payment.PayStatus.HasPayed;
            string result = "";
            try
            {
                string type = Request.Form["type"];
                switch (type)
                {
                case "money":
                    #region 现金支付/扫码支付
                {
                    double rece = DataConvert.CDouble(Request.Form["rece"]);
                    if (rece < payMod.MoneyPay)
                    {
                        throw new Exception("金额不正确,不能少于应收金额");
                    }
                    payMod.Remark    = string.Format("应收{0},实收{1},找零{2}", payMod.MoneyPay, rece, rece - payMod.MoneyPay);
                    payMod.MoneyTrue = rece > payMod.MoneyPay ? payMod.MoneyPay : rece;
                    payMod.PayPlatID = (int)M_PayPlat.Plat.Offline;        //现金扫码支付
                }
                    #endregion
                    break;

                case "mcard":
                    #region 会员卡支付
                {
                    if (client.IsNull)
                    {
                        throw new Exception("未指定会员,无法使用会员卡支付");
                    }
                    else if (client.Purse < orderMod.Ordersamount)
                    {
                        throw new Exception("会员卡余额不足");
                    }
                    else
                    {
                        buser.MinusVMoney(client.UserID, orderMod.Ordersamount, M_UserExpHis.SType.Purse, "会员卡支付[" + orderMod.OrderNo + "]");
                        //检测会员卡余额是否充足
                        payMod.Remark    = "会员卡支付";
                        payMod.MoneyTrue = orderMod.Ordersamount;
                        payMod.PayPlatID = (int)M_PayPlat.Plat.ECPSS;        //会员卡支付
                    }
                }
                    #endregion
                    break;

                default:
                    throw new Exception("支付方式[" + type + "]不存在");
                }
                payMod.PaymentID = payBll.Add(payMod);
                OrderHelper.FinalStep(payMod, orderMod, null);
                result = "1";
            }
            catch (Exception ex)
            {
                ZLLog.L(ZLEnum.Log.pay, "订单:" + orderMod.id + ",原因:" + ex.Message);
                result = ex.Message;
            }
            if (client.UserID > 0)
            {
                DBCenter.UpdateSQL(client.TbName, "UpdateTime=getdate()", "UserID=" + client.UserID);
            }
            Response.Write(result); Response.Flush(); Response.End();
        }
        if (!IsPostBack)
        {
            StoreName_L.Text    = storeMod.Title;
            Cart_RPT.DataSource = cpBll.SelByOrderID(orderMod.id);
            Cart_RPT.DataBind();
        }
    }
Beispiel #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            //B_User.CheckIsLogged(Request.RawUrl);
            M_UserInfo mu = SnsHelper.GetLogin();

            if (!IsPostBack)
            {
                M_Payment payMod  = new M_Payment();
                DataTable orderDT = new DataTable();
                if (!string.IsNullOrEmpty(PayNo))
                {
                    payMod = payBll.SelModelByPayNo(PayNo);
                    OrderHelper.OrdersCheck(payMod);
                    orderDT = orderBll.GetOrderbyOrderNo(payMod.PaymentNum);
                }
                else if (!string.IsNullOrEmpty(OrderNo))
                {
                    M_OrderList orderMod = orderBll.SelModelByOrderNo(OrderNo);
                    OrderHelper.CheckIsCanPay(orderMod);
                    orderDT = orderBll.GetOrderbyOrderNo(OrderNo);
                }
                else
                {
                    function.WriteErrMsg("Unspecified order or payment single number");
                }
                if (orderDT != null && orderDT.Rows.Count > 0)
                {
                    //总金额,如有支付单,以支付单的为准
                    GetTotal(orderDT, ref price, ref fare, ref allamount);
                    if (!string.IsNullOrEmpty(PayNo))
                    {
                        allamount    = (double)payMod.MoneyPay;
                        arrive       = payMod.ArriveMoney;
                        point        = payMod.UsePoint;
                        point_arrive = payMod.UsePointArrive;
                    }
                    TotalMoney_L.Text     = allamount.ToString("f2");
                    TotalMoneyInfo_T.Text = price.ToString("f2") + " + " + fare.ToString("f2") + " - " + arrive.ToString("f2") + "-" + point_arrive.ToString("f2") + "(" + point + ")" + " = " + allamount.ToString("f2");
                    TotalMoneyInfo_T.Text = TotalMoneyInfo_T.Text + " (Product+Freight-Coupon-Point)";
                    if (string.IsNullOrEmpty(OrderNo) && Money > 0)
                    {
                        OrderNo_L.Text = "";
                    }
                    else if (payMod.PaymentID > 0)
                    {
                        OrderNo_L.Text = payMod.PaymentNum.Trim(',');
                    }
                    else
                    {
                        OrderNo_L.Text = OrderNo;
                    }
                }
                //支付平台
                BindPlat();
                // if (payMod.SysRemark == "用户充值") { virtual_ul.Visible = false; }
                //如果已用优惠券|积分,抵扣了金额,则可直接支付
                if (payMod.PaymentID > 0 && payMod.MoneyReal == 0)
                {
                    FinalStep(payMod);
                }
            }
        }
Beispiel #3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            B_User.CheckIsLogged(Request.RawUrl);
            M_UserInfo mu = buser.GetLogin();

            if (mu.Status != 0)
            {
                function.WriteErrMsg("你的帐户未通过验证或被锁定");
            }
            if (!IsPostBack)
            {
                M_Payment payMod  = new M_Payment();
                DataTable orderDT = new DataTable();
                purseli.Visible = SiteConfig.SiteOption.SiteID.Contains("purse");
                siconli.Visible = SiteConfig.SiteOption.SiteID.Contains("sicon");
                pointli.Visible = SiteConfig.SiteOption.SiteID.Contains("point");
                if (Money > 0)//直接传要充多少,用于充值余额等
                {
                    payMod = CreateChargePay(mu);
                    Response.Redirect("OrderPay.aspx?Payno=" + payMod.PayNo); return;
                }
                else if (!string.IsNullOrEmpty(PayNo))
                {
                    payMod = payBll.SelModelByPayNo(PayNo);
                    OrderHelper.OrdersCheck(payMod);
                    orderDT = orderBll.GetOrderbyOrderNo(payMod.PaymentNum);
                }
                else
                {
                    M_OrderList orderMod = orderBll.SelModelByOrderNo(OrderNo);
                    OrderHelper.CheckIsCanPay(orderMod);
                    orderDT = orderBll.GetOrderbyOrderNo(OrderNo);
                }
                if (orderDT != null && orderDT.Rows.Count > 0)
                {
                    //如果是跳转回来的,检测其是否包含充值订单
                    foreach (DataRow dr in orderDT.Rows)
                    {
                        if (DataConverter.CLng(dr["Ordertype"]) == (int)M_OrderList.OrderEnum.Purse)
                        {
                            virtual_ul.Visible = false; break;
                        }
                    }
                    //总金额,如有支付单,以支付单的为准
                    GetTotal(orderDT, ref price, ref fare, ref allamount);
                    if (!string.IsNullOrEmpty(PayNo))
                    {
                        allamount    = (double)payMod.MoneyPay;
                        arrive       = payMod.ArriveMoney;
                        point        = payMod.UsePoint;
                        point_arrive = payMod.UsePointArrive;
                    }
                    TotalMoney_L.Text     = allamount.ToString("f2");
                    TotalMoneyInfo_T.Text = price.ToString("f2") + " + " + fare.ToString("f2") + " - " + arrive.ToString("f2") + "-" + point_arrive.ToString("f2") + "(" + point + ")" + " = " + allamount.ToString("f2");
                    TotalMoneyInfo_T.Text = TotalMoneyInfo_T.Text + " (商品总价+运费-优惠券-积分兑换=总额)";
                    if (string.IsNullOrEmpty(OrderNo) && Money > 0)
                    {
                        OrderNo_L.Text = "用户充值";
                    }
                    else if (payMod.PaymentID > 0)
                    {
                        OrderNo_L.Text = payMod.PaymentNum.Trim(',');
                    }
                    else
                    {
                        OrderNo_L.Text = OrderNo;
                    }
                }
                //支付平台
                BindPlat();
                if (payMod.SysRemark == "用户充值")
                {
                    virtual_ul.Visible = false;
                }
                //如果已用优惠券|积分,抵扣了金额,则可直接支付
                if (payMod.MoneyReal == 0)
                {
                    FinalStep(payMod);
                }
            }
        }
Beispiel #4
0
        public IActionResult OrderPay()
        {
            /*
             * 币种与平台支付均在该页面指定
             * 现金支付的中转页,支付以其金额为准,支持传入订单号(多张订单以,切割)生成支付单或支付单号补完信息
             */
            M_Payment payMod  = new M_Payment();
            DataTable orderDT = new DataTable();

            if (Money > 0)//直接传要充多少,用于充值余额等
            {
                payMod = CreateChargePay(mu);
                return(RedirectToAction("OrderPay", new { Payno = payMod.PayNo }));
            }
            else if (!string.IsNullOrEmpty(PayNo))
            {
                payMod = payBll.SelModelByPayNo(PayNo);
                OrderHelper.OrdersCheck(payMod);
                orderDT = orderBll.GetOrderbyOrderNo(payMod.PaymentNum);
            }
            else if (!string.IsNullOrEmpty(OrderNo))
            {
                M_OrderList orderMod = orderBll.SelModelByOrderNo(OrderNo);
                OrderHelper.CheckIsCanPay(orderMod);
                orderDT = orderBll.GetOrderbyOrderNo(OrderNo);
            }
            else
            {
                return(WriteErr("未指定订单或支付单号"));
            }
            bool ShowVMoney = true;

            if (payMod.SysRemark == "用户充值 ")
            {
                ShowVMoney = false;
            }
            if (string.IsNullOrEmpty(SiteConfig.SiteOption.SiteID.Replace(",", "")))
            {
                ShowVMoney = false;
            }
            if (orderDT != null && orderDT.Rows.Count > 0)
            {
                //如果是跳转回来的,检测其是否包含充值订单
                foreach (DataRow dr in orderDT.Rows)
                {
                    if (DataConverter.CLng(dr["Ordertype"]) == (int)M_OrderList.OrderEnum.Purse)
                    {
                        ShowVMoney = false; break;
                    }
                }
                //总金额,如有支付单,以支付单的为准(运费暂以订单为准)
                GetTotal(orderDT, ref price, ref fare, ref allamount);
                if (!string.IsNullOrEmpty(PayNo))
                {
                    allamount    = (double)payMod.MoneyPay;
                    arrive       = payMod.ArriveMoney;
                    point        = payMod.UsePoint;
                    point_arrive = payMod.UsePointArrive;
                }
                ViewBag.allmount     = allamount.ToString("F2");
                ViewBag.price        = price.ToString("F2");
                ViewBag.fare         = fare.ToString("F2");
                ViewBag.arrive       = arrive.ToString("F2");
                ViewBag.point        = point.ToString("F0");
                ViewBag.point_arrive = point_arrive.ToString("F0");

                if (string.IsNullOrEmpty(OrderNo) && Money > 0)
                {
                    ViewBag.orderNo = "用户充值";
                }
                else if (payMod.PaymentID > 0)
                {
                    ViewBag.orderNo = payMod.PaymentNum.Trim(',');
                }
                else
                {
                    ViewBag.orderNo = OrderNo;
                }
            }
            //如果已用优惠券|积分,抵扣了金额,则可直接支付
            if (payMod.PaymentID > 0 && payMod.MoneyReal == 0)
            {
                FinalStep(payMod);
            }
            ViewBag.ShowVMoney = ShowVMoney;
            return(View(payMod));
        }