示例#1
0
        public JsonResult SaveOrder2(Models.m_Shop_Order model)
        {
            int orgID = int.Parse(DESEncrypt.Decrypt(ViewBag.EnOrgID));

            Model.TD_Shop_Goods goods = goodsBLL.GetModel(model.goodsID);
            if (goods.Balance.Value < model.Amount)
            {
                return(GetErrorResult("数量不足"));
            }
            var member = MemberData.GetMember();

            Model.TD_Shop_Order order = new Model.TD_Shop_Order();
            order.PayType     = Constants.PayType.WeiXin;
            order.MemberID    = member.MemberID;
            order.HeaderImage = member.HeaderImage;
            if (!string.IsNullOrEmpty(model.username) && model.username != "输入姓名")
            {
                order.NickName = model.username;
            }
            else
            {
                order.NickName = member.NickName;
            }
            order.Message   = model.message;
            order.OrderType = (int)Constants.DonationType.Shop1;
            order.OrgID     = orgID;
            order.OriPrice  = goods.Price * model.Amount;
            order.RealPrice = order.OriPrice;
            order.Status    = (int)Constants.OrderStatus.WaitPay;

            IList <Model.TD_Shop_OrderGoods> orderGoodsList = new List <Model.TD_Shop_OrderGoods>();

            Model.TD_Shop_OrderGoods orderGoods = new Model.TD_Shop_OrderGoods();
            orderGoods.GoodsID   = goods.GoodsID;
            orderGoods.Title     = goods.Title;
            orderGoods.Amount    = model.Amount;
            orderGoods.OrgID     = orgID;
            orderGoods.OriPrice  = goods.Price;
            orderGoods.RealPrice = goods.Price;
            orderGoodsList.Add(orderGoods);
            int result = orderBLL.Save(order, orderGoodsList);

            if (result > 0)
            {
                string url = string.Empty;
                if (order.PayType == Constants.PayType.WeiXin)
                {
                    url = "/WeiXinPay/PayForShop?oid=" + ViewBag.EnOrgID + "&orderid=" + order.OrderID + "&url=" + HttpUtility.UrlEncode("/Shop/Goods2/Index?oid=" + ViewBag.EnOrgID);
                }
                return(GetSucceedResult(new
                {
                    url = url
                }, ""));
            }
            else
            {
                return(GetErrorResult("保存失败,请稍候再试"));
            }
        }
示例#2
0
        private int SyncShop(Model.TD_Order_WeiXinPay model, string orderID)
        {
            Model.TD_Shop_Order order = shopOrderBLL.GetModel(orderID);
            if (order == null)
            {
                return(0);
            }
            if (order.IsPay == "1")
            {
                return(0);
            }
            DateTime now = DateTime.Now;

            order.PayTime = now;
            order.IsPay   = "1";

            IList <Model.TD_Shop_OrderGoods> orderGoodsList = orderGoodsBLL.GetListByOrderID(orderID);
            string tranID = MySqlHelperUtil.BeginTran();

            try
            {
                decimal result = dal.Sync(model, tranID);
                if (result == 0)
                {
                    MySqlHelperUtil.RollbackTran(tranID);
                    return(0);
                }
                result = goodsBLL.PayOrder(orderID, orderGoodsList, tranID);
                if (result == 0)
                {
                    //商品中不存在  去sell中找
                    result = sellGoods.PayOrderNoFrozen(orderID, orderGoodsList, tranID);
                    if (result == 0)
                    {
                        MySqlHelperUtil.RollbackTran(tranID);
                        return(0);
                    }
                }
                result = shopOrderBLL.PayOrder(order, tranID);
                if (result == 0)
                {
                    MySqlHelperUtil.RollbackTran(tranID);
                    return(0);
                }
                MySqlHelperUtil.CommitTran(tranID);
                return(1);
            }
            catch
            {
                MySqlHelperUtil.RollbackTran(tranID);
                return(0);
            }
        }
示例#3
0
        public int PayOrder(Model.TD_Shop_Order model, string tranID)
        {
            string sql = "UPDATE TD_Shop_Order SET PayTime=@PayTime,IsPay=@IsPay WHERE OrderID=@OrderID";

            MySqlParameter[] parameters =
            {
                new MySqlParameter("@PayTime", model.PayTime),
                new MySqlParameter("@IsPay",   model.IsPay),
                new MySqlParameter("@OrderID", model.OrderID)
            };
            return(MySqlHelperUtil.ExecuteNonQuery(tranID, sql, parameters));
        }
示例#4
0
        public int Save(Model.TD_Shop_Order order, Model.TD_Shop_Order_Consignee consignee, IList <Model.TD_Shop_OrderGoods> ordderGoodsList)
        {
            string tranID = MySqlHelperUtil.BeginTran();

            try
            {
                string orderID = GetOrderID();
                order.OrderID         = orderID;
                order.PayNo           = orderID;
                order.IsMemberDeleted = "0";
                order.IsPay           = "0";
                order.OrderTime       = DateTime.Now;
                int result = dal.Add(order, tranID);
                if (result == 0)
                {
                    MySqlHelperUtil.RollbackTran(tranID);
                    return(0);
                }
                foreach (var orderGoods in ordderGoodsList)
                {
                    orderGoods.OrderID      = orderID;
                    orderGoods.OrderTime    = order.OrderTime;
                    orderGoods.OrderGoodsID = Guid.NewGuid().ToString();
                    result = orderGoodsBLL.Add(orderGoods, tranID);
                    if (result == 0)
                    {
                        MySqlHelperUtil.RollbackTran(tranID);
                        return(0);
                    }
                    result = goodsBLL.Frozen(orderGoods.GoodsID, orderGoods.Amount.Value, tranID);
                    if (result == 0)
                    {
                        MySqlHelperUtil.RollbackTran(tranID);
                        return(0);
                    }
                }
                MySqlHelperUtil.CommitTran(tranID);
                return(1);
            }
            catch (Exception ex)
            {
                MySqlHelperUtil.RollbackTran(tranID);
                return(0);
            }
        }
示例#5
0
        public JsonResult SaveOrder(Models.m_YueBing model)
        {
            int orgID = int.Parse(DESEncrypt.Decrypt(ViewBag.EnOrgID));
            var goods = sellBLL.GetModel(model.goodsID);

            if (null == goods)
            {
                throw new Exception("该商品已达上限");
            }
            //if (goods.Balance.Value < model.Amount)
            //{
            //    return GetErrorResult("数量不足");
            //}
            ShiMiao.Model.TD_Shop_Order_Consignee consignee = new Model.TD_Shop_Order_Consignee();
            consignee.Address = model.useraddress;
            consignee.Name    = model.username;
            consignee.Phone   = model.userphone;

            var member = MemberData.GetMember();

            Model.TD_Shop_Order order = new Model.TD_Shop_Order();
            order.PayType     = Constants.PayType.WeiXin;
            order.MemberID    = member.MemberID;
            order.HeaderImage = member.HeaderImage;
            order.NickName    = member.NickName;
            order.OrderType   = (int)Constants.DonationType.Shop1;
            order.OrgID       = orgID;
            //月饼常规价格 + 快递费
            decimal ExtraPrice = 0;

            switch (model.ExtraPrice)
            {
            case 0:    //自提
                ExtraPrice = 0;
                break;

            case 1:    //省内
                ExtraPrice = 6;
                break;

            case 2:    //省外
                ExtraPrice = 8;
                break;

            default:    //其他
                ExtraPrice = 8;
                break;
            }
            order.ExtraPrice = ExtraPrice * model.Amount;
            order.OriPrice   = goods.Price * model.Amount + order.ExtraPrice;
            decimal realPrice = goods.Price.Value;

            if (model.Amount >= 5)
            {//优惠价格 + 快递费
                order.RealPrice = 88 * model.Amount + ExtraPrice * model.Amount;
                realPrice       = 88;
            }
            else
            {
                order.RealPrice = order.OriPrice;
            }
            order.Status = (int)Constants.OrderStatus.WaitPay;

            IList <Model.TD_Shop_OrderGoods> orderGoodsList = new List <Model.TD_Shop_OrderGoods>();

            Model.TD_Shop_OrderGoods orderGoods = new Model.TD_Shop_OrderGoods();
            orderGoods.GoodsID   = goods.GoodsID;
            orderGoods.Title     = goods.Title;
            orderGoods.Amount    = model.Amount;
            orderGoods.OrgID     = orgID;
            orderGoods.OriPrice  = goods.Price;
            orderGoods.RealPrice = realPrice;//goods.Price;
            orderGoodsList.Add(orderGoods);
            int result = orderBLL.Save(order, consignee, orderGoodsList);

            if (result > 0)
            {
                string url = string.Empty;
                if (order.PayType == Constants.PayType.WeiXin)
                {
                    url = "/WeiXinPay/PayForShop?oid=" + ViewBag.EnOrgID + "&orderid=" + order.OrderID + "&url=" + HttpUtility.UrlEncode("/Shop/YueBing/Index?oid=" + ViewBag.EnOrgID);
                }
                return(GetSucceedResult(new
                {
                    url = url
                }, ""));
            }
            else
            {
                return(GetErrorResult("保存失败,请稍候再试"));
            }
        }
示例#6
0
        public ActionResult PayForShop(string orderid, string url)
        {
            var member = MemberData.GetMember();
            var now    = DateTime.Now;

            if (string.IsNullOrEmpty(orderid))
            {
                return(GotoErrorResult("未找到该订单"));
            }
            Model.TD_Shop_Order model = shopOrderBLL.GetModel(orderid);
            if (model == null)
            {
                return(GotoErrorResult("未找到该订单"));
            }
            if (model.Status == (int)Constants.OrderStatus.Cancel)
            {
                return(GotoErrorResult("订单已取消"));
            }
            if (model.IsPay == "0")
            {
                bool exists = weiXinPayBLL.OrderIsPay(model.OrderID, 1);
                if (exists)
                {
                    return(GotoErrorResult("订单已微信支付,请联系平台"));
                }
                string     ip   = Request.UserHostAddress;
                WeiXinPort port = new WeiXinPort();
                try
                {
                    port.InitSignature(HttpContext.Request.Url.AbsoluteUri);
                    string domain = Request.Url.Scheme + "://" + Request.Url.Authority;
                    port.InitPaySignature(model.OrderID.ToString(), model.RealPrice.Value, member.OpenID, domain, ip);
                    if (!string.IsNullOrEmpty(port.ErrorMessage))
                    {
                        return(GotoErrorResult(port.ErrorMessage));
                    }
                    Model.TD_Order_WeiXinPay weiXinPay = new Model.TD_Order_WeiXinPay();
                    weiXinPay.OrderID   = model.OrderID.ToString();
                    weiXinPay.Timestamp = port.Timestamp;
                    weiXinPay.NonceStr  = port.NonceStr;
                    weiXinPay.Package   = port.Package;
                    weiXinPay.Status    = 0;
                    weiXinPay.PayTime   = now;
                    weiXinPayBLL.Add(weiXinPay);
                    ViewBag.ThirdPortConfig = new ThirdSharedInfo()
                    {
                        AppID        = port.AppID,
                        NonceStr     = port.NonceStr,
                        Timestamp    = port.Timestamp,
                        Package      = port.Package,
                        SignType     = port.SignType,
                        Signature    = port.Signature,
                        PaySignature = port.PaySignature
                    };
                }
                catch
                { }
                ViewBag.BackURL = HttpUtility.UrlEncode(url);
                return(View(model));
            }
            else
            {
                return(GotoErrorResult("订单状态有误"));
            }
        }
示例#7
0
 public int PayOrder(Model.TD_Shop_Order model, string tranID)
 {
     return(dal.PayOrder(model, tranID));
 }
示例#8
0
        public int Save(Model.TD_Shop_Order order, Model.TD_Shop_Order_Consignee consignee, IList <Model.TD_Shop_OrderGoods> ordderGoodsList)
        {
            string tranID    = MySqlHelperUtil.BeginTran();
            bool   isNotFind = true;

            try
            {
                string orderID = GetOrderID();
                order.OrderID         = orderID;
                order.PayNo           = orderID;
                order.IsMemberDeleted = "0";
                order.IsPay           = "0";
                order.OrderTime       = DateTime.Now;
                int result = dal.Add(order, tranID);
                if (result == 0)
                {
                    MySqlHelperUtil.RollbackTran(tranID);
                    return(0);
                }
                consignee.OrderID = orderID;
                result            = dl_consignee.Add(consignee, tranID);
                if (result == 0)
                {
                    MySqlHelperUtil.RollbackTran(tranID);
                    return(0);
                }
                foreach (var orderGoods in ordderGoodsList)
                {
                    isNotFind               = true;
                    orderGoods.OrderID      = orderID;
                    orderGoods.OrderTime    = order.OrderTime;
                    orderGoods.OrderGoodsID = Guid.NewGuid().ToString();
                    result = orderGoodsBLL.Add(orderGoods, tranID);
                    if (result == 0)
                    {
                        MySqlHelperUtil.RollbackTran(tranID);
                        return(0);
                    }
                    var ShopGoodsModel = goodsBLL.GetModel(orderGoods.GoodsID);
                    if (null != ShopGoodsModel)
                    {
                        //商城商品处理冻结
                        result = goodsBLL.Frozen(orderGoods.GoodsID, orderGoods.Amount.Value, tranID);
                        if (result == 0)
                        {
                            MySqlHelperUtil.RollbackTran(tranID);
                            return(0);
                        }
                        isNotFind = false;
                    }
                    else
                    {
                        var SellGoodsModel = sellgoods.GetModel(orderGoods.GoodsID);
                        if (null != SellGoodsModel)
                        {
                            if (!bl_Config.noFrozen.Contains(orderGoods.GoodsID))
                            {//义卖商品处理冻结
                                result = sellgoods.Frozen(orderGoods.GoodsID, orderGoods.Amount.Value, tranID);
                                if (result == 0)
                                {
                                    MySqlHelperUtil.RollbackTran(tranID);
                                    return(0);
                                }
                            }
                            isNotFind = false;
                        }
                    }
                    if (isNotFind)
                    {
                        throw new Exception("认领失败了,请重新认领!");
                    }
                }
                MySqlHelperUtil.CommitTran(tranID);
                return(1);
            }
            catch (Exception ex)
            {
                MySqlHelperUtil.RollbackTran(tranID);
                return(0);
            }
        }
示例#9
0
        public JsonResult SaveOrder(Models.m_YueBing model)
        {
            int orgID = int.Parse(DESEncrypt.Decrypt(ViewBag.EnOrgID));

            Model.TD_Shop_Goods goods = goodsBLL.GetModel(model.goodsID);
            if (goods.Balance.Value < model.Amount)
            {
                return(GetErrorResult("数量不足"));
            }
            ShiMiao.Model.TD_Shop_Order_Consignee consignee = new Model.TD_Shop_Order_Consignee();
            consignee.Address        = model.Adress;
            consignee.Name           = model.username;
            consignee.Phone          = model.Phone;
            consignee.Identification = model.Identification;

            var member = MemberData.GetMember();

            Model.TD_Shop_Order order = new Model.TD_Shop_Order();
            order.PayType     = Constants.PayType.WeiXin;
            order.MemberID    = member.MemberID;
            order.HeaderImage = member.HeaderImage;
            order.NickName    = member.NickName;
            order.OrderType   = (int)Constants.DonationType.Shop1;
            order.OrgID       = orgID;
            //月饼常规价格 + 快递费
            order.OriPrice = goods.Price * model.Amount + model.ExtraPrice * model.Amount;
            if (model.Amount >= 5)
            {//优惠价格 + 快递费
                order.RealPrice = 88 * model.Amount + model.ExtraPrice * model.Amount;
            }
            else
            {
                order.RealPrice = order.OriPrice;
            }
            order.Status = (int)Constants.OrderStatus.WaitPay;

            IList <Model.TD_Shop_OrderGoods> orderGoodsList = new List <Model.TD_Shop_OrderGoods>();

            Model.TD_Shop_OrderGoods orderGoods = new Model.TD_Shop_OrderGoods();
            orderGoods.GoodsID   = goods.GoodsID;
            orderGoods.Title     = goods.Title;
            orderGoods.Amount    = model.Amount;
            orderGoods.OrgID     = orgID;
            orderGoods.OriPrice  = goods.Price;
            orderGoods.RealPrice = goods.Price;
            orderGoodsList.Add(orderGoods);
            int result = orderBLL.Save(order, orderGoodsList);

            if (result > 0)
            {
                string url = string.Empty;
                if (order.PayType == Constants.PayType.WeiXin)
                {
                    url = "/WeiXinPay/PayForShop?oid=" + ViewBag.EnOrgID + "&orderid=" + order.OrderID + "&url=" + HttpUtility.UrlEncode("/Shop/Goods2/Index?oid=" + ViewBag.EnOrgID);
                }
                return(GetSucceedResult(new
                {
                    url = url
                }, ""));
            }
            else
            {
                return(GetErrorResult("保存失败,请稍候再试"));
            }
        }