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); }
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 + "" }); }
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 + "" }); }