コード例 #1
0
ファイル: order.cs プロジェクト: lxyandy66/x.yfj
        protected override XResp Execute()
        {
            var od = new x_order()
            {
                ctime   = DateTime.Now,
                user_id = cu.user_id,
                no      = Secret.MD5(Guid.NewGuid().ToString(), 0),
                status  = 1
            };

            var et = cu.etime > DateTime.Now ? (DateTime)cu.etime : DateTime.Now;

            od.etime  = et.AddMonths(mo);
            od.amount = mo * 10;//(decimal)0.01;

            od.desc = "业主房源服务续费到" + od.etime.Value.ToString("yyyy-MM-dd HH:mm:ss");

            DB.x_order.InsertOnSubmit(od);
            SubmitDBChanges();

            var co = Wx.Pay.MdOrder(od.desc, od.no, ((int)(od.amount * 100)).ToString(), "http://" + cfg.domain + "/wx/bw/notify-" + od.no + ".html", opid, cfg.wx_appid, cfg.wx_mch_id, cfg.wx_paykey);

            if (co.return_code == "FAIL")
            {
                throw new XExcep(co.return_msg);
            }
            if (co.result_code == "FAIL")
            {
                throw new XExcep(co.err_code + "," + co.err_code_des);
            }
            if (string.IsNullOrEmpty(co.prepay_id))
            {
                throw new XExcep("T预付款号为空");
            }

            od.wx_no = co.prepay_id;
            SubmitDBChanges();

            var ps = new Dictionary <string, string>();

            ps.Add("appId", cfg.wx_appid);
            ps.Add("timeStamp", Tools.GetGreenTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")));
            ps.Add("nonceStr", Tools.GetRandRom(24, 3));
            ps.Add("package", "prepay_id=" + od.wx_no);
            ps.Add("signType", "MD5");

            var r = new od()
            {
                ns   = ps["nonceStr"],
                ts   = ps["timeStamp"],
                pkg  = ps["package"],
                sign = Wx.ToSign(ps, false, cfg.wx_paykey)
            };

            return(r);
        }
コード例 #2
0
ファイル: md.cs プロジェクト: orapow/x.yc
        protected override XResp Execute()
        {
            var c = CacheHelper.Get <string>("pay." + cu.id);

            if (!string.IsNullOrEmpty(c))
            {
                throw new XExcep("0x0048");
            }

            var adr = cu.x_address.FirstOrDefault(o => o.address_id == ad);

            if (adr == null)
            {
                throw new XExcep("0x0041");
            }

            var gds = cu.x_cart.Where(o => o.sel == true);

            if (gds == null || gds.Count() == 0)
            {
                throw new XExcep("0x0049");
            }

            CacheHelper.Save("pay." + cu.id, "1");

            var od = new x_order();

            od.no        = DateTime.Now.ToString("yyyyMMddHHmmssff") + Tools.GetRandNext(100, 999);
            od.ctime     = DateTime.Now;
            od.status    = 1;
            od.iscancel  = false;
            od.isclosing = false;
            od.isrefund  = false;

            //od.city = cu.city;

            decimal shipamount = gds.Where(o => o.calcfreight == 1).Sum(o => o.price * o.count).Value;

            foreach (var g in gds)
            {
                od.x_order_detail.Add(new x_order_detail()
                {
                    count       = g.count,
                    cover       = g.cover,
                    goods_id    = g.goods_id,
                    name        = g.goods_name,
                    price       = g.price,
                    unit        = g.unit,
                    stand       = g.desc,
                    total_price = g.count * g.price
                });
            }

            od.fav_amount = 0;  //优惠金额
            od.fav_remark = ""; //优惠说明

            //对运费处理 超过包邮限额可包邮
            if (shipamount >= cfg.free_ship)
            {
                od.freight_amount = 0;//云费
            }
            else
            {
                od.freight_amount = cfg.shipfee;
            }

            //od.onfloor = fl;
            od.amount  = od.x_order_detail.Sum(o => o.count * o.price);
            od.pay_way = way;

            od.rec_addr = adr.sheng + " " + adr.shi + " " + adr.qu + " " + adr.zhen + " " + adr.addr;
            od.rec_man  = adr.name;
            od.rec_tel  = adr.tel;
            //od.ret_integral = 0;
            od.pay_amount = 0;
            //od.uptype = upst;
            //od.up_amount = 0;//上楼费用
            od.user_remark = remark;
            od.yf_amount   = od.amount - od.fav_amount + od.freight_amount;//应付金额

            cu.x_order.Add(od);

            DB.x_cart.DeleteAllOnSubmit(gds.ToList());
            //if (od.pay_way == 2) od.status = 2;
            SubmitDBChanges();

            CacheHelper.Remove("pay." + cu.id);

            return(new XResp()
            {
                msg = od.order_id + ""
            });
        }
コード例 #3
0
ファイル: md.cs プロジェクト: hongweichang/x.yfj
        protected override XResp Execute()
        {
            var c = CacheHelper.Get <string>("pay." + cu.id);

            if (!string.IsNullOrEmpty(c))
            {
                throw new XExcep("T当前订单正在处理中,请稍后...");
            }

            var adr = cu.x_address.FirstOrDefault(o => o.address_id == ad);

            if (adr == null)
            {
                throw new XExcep("T收货地址不存在");
            }

            var gds = cu.x_cart.Where(o => o.sel == true);

            if (gds == null || gds.Count() == 0)
            {
                throw new XExcep("T购物车内没有商品");
            }

            CacheHelper.Save("pay." + cu.id, "1");

            var od = new x_order();

            od.no     = DateTime.Now.ToString("yyyyMMddHHmmssff") + Tools.GetRandNext(100, 999);
            od.ctime  = DateTime.Now;
            od.status = 1;

            od.city = cu.city;

            foreach (var g in gds)
            {
                od.x_order_detail.Add(new x_order_detail()
                {
                    count       = g.count,
                    cover       = g.cover,
                    goods_id    = g.goods_id,
                    name        = g.goods_name,
                    price       = g.price,
                    unit        = g.unit,
                    stand       = g.desc,
                    total_price = g.count * g.price
                });
            }

            od.fav_amount     = 0;  //优惠金额
            od.fav_remark     = ""; //优惠说明
            od.freight_amount = 0;  //云费
            //od.onfloor = fl;
            od.amount  = od.x_order_detail.Sum(o => o.count * o.price);
            od.pay_way = way;

            od.send_date = DateTime.Parse(date);
            od.send_time = time;

            od.rec_addr     = adr.shi + " " + adr.qu + " " + adr.zhen + " " + adr.addr;
            od.rec_man      = adr.name;
            od.rec_tel      = adr.tel;
            od.ret_integral = 0;
            od.pay_amount   = 0;
            //od.uptype = upst;
            od.up_amount   = 0;                                                            //上楼费用
            od.user_remark = remark;
            od.yf_amount   = od.amount - od.fav_amount + od.up_amount + od.freight_amount; //应用金额

            cu.x_order.Add(od);

            DB.x_cart.DeleteAllOnSubmit(gds.ToList());
            if (od.pay_way == 2)
            {
                od.status = 2;
            }
            SubmitDBChanges();

            CacheHelper.Remove("pay." + cu.id);

            return(new XResp()
            {
                msg = od.order_id + ""
            });
        }