public int createAOrder(DTO.Order dto_PDH, DTO.OrderDetails[] dto_CT, int so_nl) { try { if (MessageBox.Show("Bạn có chắc chắn muốn lưu phiếu đặt hàng?", "Xác nhận!", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { DAO.Order dao_PKH = new DAO.Order(); int maphieu = dao_PKH.createAOrder(dto_PDH); BUS.OrderDetails bus = new BUS.OrderDetails(); for (int i = 0; i < so_nl; i++) { bus.addOrderDetails(dto_CT[i], maphieu); } MessageBox.Show("Lưu phiếu đặt hàng thành công!", "Thông báo!", MessageBoxButtons.OK, MessageBoxIcon.Information); return(1); } return(0); } catch (Exception e) { MessageBox.Show("Thêm phiếu đặt thất bại!", "Thông báo!", MessageBoxButtons.OK, MessageBoxIcon.Information); throw e; return(0); } }
/// <summary> /// 订单详情 /// </summary> /// <param name="uid"></param> /// <param name="orderNum"></param> /// <returns></returns> public OrderDetail OrderDetail(string uid, string orderNum) { OrderDetail order = new model.OrderDetail(); string orderSql = " select * from [Order] where Uid={0} and OrderId={1}"; DAO.Order o = db.Database.SqlQuery <DAO.Order>(string.Format(orderSql, uid, orderNum)).FirstOrDefault(); string opSql = " SELECT * FROM [OrderProList] where [OrderId] ={0}"; List <DAO.OrderProList> opList = db.Database.SqlQuery <DAO.OrderProList>(string.Format(opSql, orderNum)).ToList(); string imgSql = "select * from imgstock where partID in (select ProductID from orderProList where orderID={0})"; List <DAO.ImgStock> imgList = db.Database.SqlQuery <DAO.ImgStock>(string.Format(imgSql, orderNum)).ToList(); string expSql = "select * from ExpRecord where orderNum ='{0}'"; DAO.ExpRecord ex = db.Database.SqlQuery <DAO.ExpRecord>(string.Format(expSql, orderNum)).FirstOrDefault(); int? exp = 0; if (ex != null) { exp = ex.Exp; } order.order = o; order.opList = opList; order.pimgList = imgList; order.exp = exp == null ? 0 : exp; return(order); }
public DAO.Order getAddress(string uid) { string ordersql = "select * from [Order] where Uid={0}"; DAO.Order carder = db.Database.SqlQuery <DAO.Order>(string.Format(ordersql, Convert.ToInt32(uid))).FirstOrDefault(); return(carder); }
public ActionResult selAddress() { string uid = Session["memberID"].ToString(); Dictionary <string, object> map = new Dictionary <string, object>(); OrderBuss obll = new OrderBuss(); DAO.Order info = obll.getAddress(uid); if (info == null) { map.Add("er", "0"); return(Json(map, JsonRequestBehavior.AllowGet)); } else { map.Add("name", info.UserName); map.Add("Prov", info.Prov); map.Add("City", info.City); map.Add("Area", info.Area); map.Add("Address", info.Address); map.Add("CellPhone", info.CellPhone); return(Json(map, JsonRequestBehavior.AllowGet)); } }
private ActionResult CompleteOrder(string out_trade_no, string trade_no, OrderBuss obll) { DAO.OrderPay op = obll.GetOrderPay(out_trade_no); if (op != null) { if (op.PayState == "未支付") { op.PayState = "已支付"; if (op.PayType == 0) { op.Bank = "支付宝"; } op.Remark = string.Format("{1},由支付宝电子对账单更新{0:yyyy-MM-dd HH:mm:ss},状态为:已支付", DateTime.Now, trade_no); //修改OrderPay log.Info("*********即将修改OrderPay**************"); bool r = obll.upDataOrderPay(op); log.Info("orderPay 更新结果:" + r); log.Info("orderPay 更新参数:op.Orderid=" + op.OrderId + " op.PayState-" + op.PayState + "op.Bank-" + op.Bank + "trade_no-" + trade_no); //支付成功修改订单状态 log.Info("*********即将修改Order状态**************"); DAO.Order order = obll.GetOrder(out_trade_no); //计算组合支付总金额==订单金额 bool r_vali_price = obll.ValidataPayPrice(out_trade_no, order.TotalPrice); log.Info("订单:" + op.OrderId + "金额,支付金额校验--" + r_vali_price); if (r_vali_price) { bool r_oder = obll.upOrder(out_trade_no); log.Info("订单:" + op.OrderId + " 修改结果--" + r_oder); } else { log.Info("订单:" + op.OrderId + " 修改状态失败,金额验证不通过"); return(Redirect(string.Format("/Order/Detail/{0}", out_trade_no))); } } } else { log.Info("OrderPay is Null"); return(Redirect(string.Format("/Order/Detail/{0}", out_trade_no))); } //打印页面 //orderpay 订单支付类型 0 正常订单 1 充值订单 if (op.OrderType == 0) { return(Redirect(string.Format("/Order/Detail/{0}", out_trade_no))); } else if (op.OrderType == 1) { return(Redirect("/pay/recharge_success.html")); } else { return(Redirect(string.Format("/Order/Detail/{0}", out_trade_no))); } }
public OrderDetail OrderDetail(string orderNum) { OrderDetail order = new model.OrderDetail(); string orderSql = " select * from [Order] where OrderId={0}"; DAO.Order o = db.Database.SqlQuery <DAO.Order>(string.Format(orderSql, orderNum)).FirstOrDefault(); string opSql = " SELECT * FROM [OrderProList] where [OrderId] ={0}"; List <DAO.OrderProList> opList = db.Database.SqlQuery <DAO.OrderProList>(string.Format(opSql, orderNum)).ToList(); order.order = o; order.opList = opList; return(order); }
/// <summary> /// 更新状态 /// </summary> /// <param name="Orede"></param> /// <returns></returns> public bool upt(DAO.Order Orede) { string sql = "UPDATE [Order] SET [OrderStatus]='已处理' where [orderID]='{0}'"; int date = db.Database.ExecuteSqlCommand(string.Format(sql, Orede.OrderId)); if (date > 0) { return(true); } else { return(false); } }
/// <summary> /// 修改地址 /// </summary> /// <param name="orders"></param> /// <returns></returns> public bool updatedz(DAO.Order orders) { string sql = "UPDATE [Order] SET [City] ='{0}',[Consignee]='{1}',[CellPhone]='{2}',[Prov]='{3}',[Address]='{4}',[Area]='{5}' WHERE OrderId='{6}'"; int date = db.Database.ExecuteSqlCommand(string.Format(sql, orders.City, orders.Consignee, orders.CellPhone, orders.Prov, orders.Address, orders.Area, orders.OrderId)); string sqlc = "UPDATE [Addship] SET [scity] ='{0}',[province]='{1}',[region]='{2}',[address]='{3}',[name]='{4}',[phone]='{5}' WHERE UID='{6}'"; int datec = db.Database.ExecuteSqlCommand(string.Format(sqlc, orders.City, orders.Prov, orders.Area, orders.Address, orders.Consignee, orders.CellPhone, orders.Uid)); if (date > 0 && datec > 0) { return(true); } else { return(false); } }
public void ProcessRequest(HttpContext context) { log.Debug("**********************支付宝回调autoreceive**********************"); Dictionary <string, string> sPara = GetRequestPost(); log.Debug("参数个数:" + sPara.Count); if (sPara.Count > 0)//判断是否有带返回参数 { Notify aliNotify = new Notify(); bool verifyResult = aliNotify.VerifyNotify(sPara, context.Request.Form["sign"]); log.Debug("autoreceive是否支付宝发出的验证:" + verifyResult + "参数sPara:" + sPara + "参数sign:" + context.Request.Form["sign"]); if (verifyResult)//验证成功 { log.Debug("autoreceive验证成功"); ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //请在这里加上商户的业务逻辑程序代码 //——请根据您的业务逻辑来编写程序(以下代码仅作参考)—— //获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表 //解密(如果是RSA签名需要解密,如果是MD5签名则下面一行清注释掉) sPara = aliNotify.Decrypt(sPara); //XML解析notify_data数据 try { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(sPara["notify_data"]); //商户订单号 string out_trade_no = xmlDoc.SelectSingleNode("/notify/out_trade_no").InnerText; //支付宝交易号 string trade_no = xmlDoc.SelectSingleNode("/notify/trade_no").InnerText; string trade_status = xmlDoc.SelectSingleNode("/notify/trade_status").InnerText; log.Debug("autoreceive商户订单号:" + out_trade_no + "支付宝交易号:" + trade_no + "支付宝交易状态:" + trade_status); OrderBuss obll = new OrderBuss(); if (trade_status == "TRADE_FINISHED") { //判断该笔订单是否在商户网站中已经做过处理 //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 //如果有做过处理,不执行商户的业务程序 //注意: //该种交易状态只在两种情况下出现 //1、开通了普通即时到账,买家付款成功后。 //2、开通了高级即时到账,从该笔交易成功时间算起,过了签约时的可退款时限(如:三个月以内可退款、一年以内可退款等)后。 DAO.OrderPay op = obll.GetOrderPay(out_trade_no); if (op.PayState == "未支付") { op.PayState = "已支付"; if (op.PayType == 0) { op.Bank = "支付宝"; } op.Remark = string.Format("{1},由支付宝电子对账单更新{0:yyyy-MM-dd HH:mm:ss},状态为:已支付", DateTime.Now, trade_no); //修改OrderPay log.Info("*********即将修改OrderPay**************"); bool r = obll.upDataOrderPay(op); log.Info("orderPay 更新结果:" + r); log.Info("orderPay 更新参数:op.Orderid=" + op.OrderId + " op.PayState-" + op.PayState + "op.Bank-" + op.Bank + "trade_no-" + trade_no); //支付成功修改订单状态 log.Info("*********即将修改Order状态**************"); DAO.Order order = obll.GetOrder(out_trade_no); //计算组合支付总金额==订单金额 bool r_vali_price = obll.ValidataPayPrice(out_trade_no, order.TotalPrice); log.Info("订单:" + op.OrderId + "金额,支付金额校验--" + r_vali_price); if (r_vali_price) { bool r_oder = obll.upOrder(out_trade_no); log.Info("订单:" + op.OrderId + " 修改结果--" + r_oder); } } context.Response.Write("success"); //请不要修改或删除 } if (trade_status == "TRADE_SUCCESS") { DAO.OrderPay op = obll.GetOrderPay(out_trade_no); //判断该笔订单是否在商户网站中已经做过处理 //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 //如果有做过处理,不执行商户的业务程序 //注意: //该种交易状态只在一种情况下出现——开通了高级即时到账,买家付款成功后。 if (op.PayState == "未支付") { op.PayState = "已支付"; if (op.PayType == 0) { op.Bank = "支付宝"; } op.Remark = string.Format("{1},由支付宝电子对账单更新{0:yyyy-MM-dd HH:mm:ss},状态为:已支付", DateTime.Now, trade_no); //修改OrderPay log.Info("*********即将修改OrderPay**************"); bool r = obll.upDataOrderPay(op); log.Info("orderPay 更新结果:" + r); log.Info("orderPay 更新参数:op.Orderid=" + op.OrderId + " op.PayState-" + op.PayState + "op.Bank-" + op.Bank + "trade_no-" + trade_no); //支付成功修改订单状态 log.Info("*********即将修改Order状态**************"); DAO.Order order = obll.GetOrder(out_trade_no); //计算组合支付总金额==订单金额 bool r_vali_price = obll.ValidataPayPrice(out_trade_no, order.TotalPrice); log.Info("订单:" + op.OrderId + "金额,支付金额校验--" + r_vali_price); if (r_vali_price) { bool r_oder = obll.upOrder(out_trade_no); log.Info("订单:" + op.OrderId + " 修改结果--" + r_oder); } } context.Response.Write("success"); //请不要修改或删除 } else { context.Response.Write(trade_status); } } catch (Exception exc) { context.Response.Write(exc.ToString()); //MJZCake.Utility.Common.Log(exc.Message, MJZCake.Utility.Common.LogLevel.high, "mjz"); } //——请根据您的业务逻辑来编写程序(以上代码仅作参考)—— ///////////////////////////////////////////////////////////////////////////////////////////////////////////// } else//验证失败 { context.Response.Write("fail"); } context.Response.End(); } }
//异步通知 public ActionResult autoreceive() { log.Info("**********************支付宝回调autoreceive**********************"); SortedDictionary <string, string> sPara = GetRequestPost(); log.Info("参数个数:" + sPara.Count); if (sPara.Count > 0)//判断是否有带返回参数 { Notify aliNotify = new Notify(); bool verifyResult = aliNotify.Verify(sPara, Request.Form["notify_id"], Request.Form["sign"]); log.Info("autoreceive是否支付宝发出的验证:" + verifyResult + "参数sPara:" + sPara + "参数sign:" + Request.Form["sign"]); if (verifyResult)//验证成功 { log.Info("autoreceive验证成功"); //商户订单号 string out_trade_no = Request.Form["out_trade_no"]; //支付宝交易号 string trade_no = Request.Form["trade_no"]; //交易状态 string trade_status = Request.Form["trade_status"]; log.Info("autoreceive商户订单号:" + out_trade_no + "支付宝交易号:" + trade_no + "支付宝交易状态:" + trade_status); try { OrderBuss obll = new OrderBuss(); if (trade_status == "TRADE_FINISHED") { //判断该笔订单是否在商户网站中已经做过处理 //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 //如果有做过处理,不执行商户的业务程序 //注意: //该种交易状态只在两种情况下出现 //1、开通了普通即时到账,买家付款成功后。 //2、开通了高级即时到账,从该笔交易成功时间算起,过了签约时的可退款时限(如:三个月以内可退款、一年以内可退款等)后。 } if (trade_status == "TRADE_SUCCESS") { //判断该笔订单是否在商户网站中已经做过处理 //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 //如果有做过处理,不执行商户的业务程序 //注意: //该种交易状态只在一种情况下出现——开通了高级即时到账,买家付款成功后。 DAO.OrderPay op = obll.GetOrderPay(out_trade_no); if (op.PayState == "未支付") { op.PayState = "已支付"; if (op.PayType == 0) { op.Bank = "支付宝"; } op.Remark = string.Format("{1},由支付宝电子对账单更新{0:yyyy-MM-dd HH:mm:ss},状态为:已支付", DateTime.Now, trade_no); //修改OrderPay log.Info("*********即将修改OrderPay**************"); bool r = obll.upDataOrderPay(op); log.Info("orderPay 更新结果:" + r); log.Info("orderPay 更新参数:op.Orderid=" + op.OrderId + " op.PayState-" + op.PayState + "op.Bank-" + op.Bank + "trade_no-" + trade_no); //支付成功修改订单状态 log.Info("*********即将修改Order状态**************"); DAO.Order order = obll.GetOrder(out_trade_no); //计算组合支付总金额==订单金额 bool r_vali_price = obll.ValidataPayPrice(out_trade_no, order.TotalPrice); log.Info("订单:" + op.OrderId + "金额,支付金额校验--" + r_vali_price); if (r_vali_price) { bool r_oder = obll.upOrder(out_trade_no); log.Info("订单:" + op.OrderId + " 修改结果--" + r_oder); } } } else { Response.Write(trade_status); } Response.Write("success"); //请不要修改或删除 } catch (Exception exc) { Response.Write(exc.ToString()); } //——请根据您的业务逻辑来编写程序(以上代码仅作参考)—— } else//验证失败 { Response.Write("fail"); } Response.End(); } log.Info("**********************支付宝回调autoreceive结束**********************"); return(View()); }
public DataTable searchOrder_byDate(DateTime tungay, DateTime denngay) { DAO.Order dao = new DAO.Order(); return(dao.searchOrder_byDate(tungay, denngay)); }
public DAO.Order GetOrder(string orderNum) { DAO.Order o = db.Order.Where(m => m.OrderId == orderNum).FirstOrDefault(); return(o); }
public DataTable searchOrder_byNumber(string ma) { DAO.Order dao = new DAO.Order(); return(dao.searchOrder_byNumber(ma)); }
public DataTable loadOrder() { DAO.Order dao = new DAO.Order(); return(dao.loadOrder()); }
/// <summary> /// 提交订单 /// </summary> /// <param name="shopList">商品列表</param> /// <param name="sendinfo">配送信息</param> /// <param name="uid">当前用户</param> /// <param name="ratio">当前用户折扣</param> /// <param name="orderPrice">订单金额</param> /// <param name="shopListTotle">商品列表总金额</param> /// <returns>订单号</returns> public string AddOrder(List <Shop> shopList, SendInfo sendinfo, string uid, decimal ratio, decimal orderPrice, decimal shopListTotle) { PartExtendBll pbll = new PartExtendBll(); ProductBll proBll = new ProductBll(); MemberBLL memBll = new MemberBLL(); DAO.MemberBase user = memBll.GetUserByID(uid); DAO.Order order = new DAO.Order(); order.OrderId = CommonUtils.OrderUtil.NewOrderId; if (order != null) { order.Uid = user.ID; order.UserName = user.LoginName; order.UserPhone = user.Mobile; } order.OrderSource = "0"; order.OrderTime = DateTime.Now; order.OrderStatus = "未处理";//订单初始状态 order.Consignee = sendinfo.Name; order.Address = sendinfo.Address; order.CellPhone = sendinfo.Phone; order.PayStatus = "未支付"; order.Payment = ""; order.Remarks = ""; order.Ratio = ratio; decimal disAmout = shopList.Where(h => h.Type == "-1").Sum(h => (decimal.Parse(h.Price))); order.DiscountAmount = (1 - ratio) * disAmout; order.ShippingCost = 0; order.TotalPrice = orderPrice; order.SearchTag = ""; order.OperatorRemarks = ""; order.OrderType = "0"; order.OrderFrom = 0;//网站 order.Prov = sendinfo.Prov; order.City = sendinfo.City; order.Area = sendinfo.Area; db.Order.Add(order); DAO.Addship addShip = new DAO.Addship(); addShip = isAddressByUid(uid); if (addShip != null) { upAddShip(sendinfo.Name, uid, sendinfo.City, sendinfo.Prov, sendinfo.Area, sendinfo.Address, sendinfo.Phone); } else { DAO.Addship addShipS = new DAO.Addship(); addShipS.name = sendinfo.Name; addShipS.province = sendinfo.Prov; addShipS.scity = sendinfo.City; addShipS.region = sendinfo.Area; addShipS.address = sendinfo.Address; addShipS.UID = Convert.ToInt32(uid); addShipS.phone = sendinfo.Phone; db.Addship.Add(addShipS); db.SaveChanges(); } //db.SaveChanges(); foreach (Shop item in shopList) { CarProductDetail m; int i = -1; int pid = -1; if (int.TryParse(item.ID, out pid)) { if (!string.IsNullOrEmpty(item.Attrs) && int.TryParse(item.Attrs, out i)) { m = proBll.GetProDetail(pid, i, item.Type); } else { m = proBll.GetProDetail(pid, -1, item.Type); } if (m != null) { m.Qty = int.Parse(item.Qty); m.lastAttr = item.Attrs; DAO.OrderProList pro = new DAO.OrderProList(); pro.OrderId = order.OrderId; pro.ProductID = m.proDetail.ID; pro.ProductName = m.proDetail.PartName; pro.SupplyNo = m.proDetail.PartSuppyNo; pro.Num = m.Qty; pro.Price = m.proDetail.Price; pro.InputTime = DateTime.Now; pro.PType = m.proDetail.CategoryID; pro.AttrID = i; pro.IsFlag = int.Parse(item.Type); //活动号 pro.activeName = m.activeM == null ? "" : m.activeM.Name; StringBuilder sb = new StringBuilder(""); foreach (var ext in m.partExt) { sb.Append("|" + ext.AttrName + ":" + ext.AttrValue + "|"); } pro.AttrDecribe = sb.ToString(); db.OrderProList.Add(pro); opActiveStock(pro.IsFlag, pro.ProductID, pro.AttrID, pro.Num); OrderBuss obll = new OrderBuss(); int number = Convert.ToInt32(obll.getPartStock(m.proDetail.ID).StockNUM) - 1; obll.upPartStock(m.proDetail.ID, number); //db.SaveChanges(); } } } int addResult = db.SaveChanges();//db.SaveChanges(); if (addResult > 0) { return(order.OrderId.ToString()); } else { return(null); } }
public ActionResult PayOrder(PayOrderModel o) { try { if (Session["memberID"] != null) { int uid = Convert.ToInt32(Session["memberID"]); List <DAO.OrderPay> ol = new List <DAO.OrderPay>(); DAO.Order order = obbll.GetOrder(o.oid); decimal totle = order.TotalPrice; decimal dis = 0; decimal payprice = 0; if (!string.IsNullOrEmpty(o.coupon))//复合付款有优惠券 { //验证优惠券 DAO.Voucher voucher = vbll.GetVoucherModel(uid, o.coupon, 0); if (voucher == null) { return(Json(new { r = "error", msg = "优惠券验证失败!" })); } else { dis = voucher.Price;//优惠券优惠金额 DAO.OrderPay io = new DAO.OrderPay(); io.Amount = dis; io.Bank = "优惠券"; io.OrderId = o.oid; io.OrderType = o.ordertype; io.PayState = "未支付"; io.PayType = 1;//直接支付1优惠券 io.RecordState = 1; io.Uid = Convert.ToInt32(Session["memberID"]); io.Remark = voucher.VoucherNumber; ol.Add(io); } } payprice = totle - dis; if (payprice > 0) { DAO.OrderPay io = new DAO.OrderPay(); io.Amount = payprice; if (o.paytype == "alipay") { io.Bank = "支付宝"; } if (o.paytype == "weixin") { io.Bank = "微信"; } io.OrderId = o.oid; io.OrderType = o.ordertype; io.PayState = "未支付"; io.PayType = 0;//直接支付1优惠券 io.RecordState = 1; io.Uid = Convert.ToInt32(Session["memberID"]); ol.Add(io); } bool r = obbll.AddOrderPay(o.oid, ol); return(Json(new { r = "ok" })); } else { return(Json(new { r = "nologin" })); } } catch (Exception e) { return(Json(new { r = "error", msg = "异常:" + e.Message })); } }
public override void ProcessNotify() { WxPayData notifyData = GetNotifyData(); WxPayData res = new WxPayData(); if (notifyData.GetValue("return_code").ToString() == "SUCCESS") { log.Info("return_code:SUCCESS"); bool result = notifyData.GetValue("result_code").ToString() == "SUCCESS"?true:false; // out_trade_no if (result) { string out_trade_no = notifyData.GetValue("out_trade_no").ToString(); log.Info("获得订单号:" + out_trade_no); DAO.OrderPay op = obll.GetOrderPay(out_trade_no); if (op != null) { if (op.PayState == "未支付") { op.PayState = "已支付"; if (op.PayType == 0) { op.Bank = "微信支付"; } op.Remark = string.Format("{1},微信支付{0:yyyy-MM-dd HH:mm:ss},状态为:已支付", DateTime.Now, out_trade_no); //修改OrderPay log.Info("*********即将修改OrderPay**************"); bool r = obll.upDataOrderPay(op); log.Info("orderPay 更新结果:" + r); log.Info("orderPay 更新参数:op.Orderid=" + op.OrderId + " op.PayState-" + op.PayState + "op.Bank-" + op.Bank + "trade_no-" + out_trade_no); //支付成功修改订单状态 log.Info("*********即将修改Order状态**************"); DAO.Order order = obll.GetOrder(out_trade_no); //计算组合支付总金额==订单金额 bool r_vali_price = obll.ValidataPayPrice(out_trade_no, order.TotalPrice); log.Info("订单:" + op.OrderId + "金额,支付金额校验--" + r_vali_price); if (r_vali_price) { bool r_oder = obll.upOrder(out_trade_no); log.Info("订单:" + op.OrderId + " 修改结果--" + r_oder); } } res.SetValue("return_code", "SUCCESS"); res.SetValue("return_msg", "OK"); log.Info("return_code :SUCCESS"); page.Response.Write(res.ToXml()); page.Response.End(); } else { res.SetValue("result_code", "FAIL"); res.SetValue("return_msg", "OrderPay is Null"); log.Error("支付结果失败result_code :FAil ==>OrderPay is Null"); page.Response.Write(res.ToXml()); page.Response.End(); } } else { res.SetValue("result_code", "FAIL"); res.SetValue("return_msg", "result_code fail"); log.Error("支付结果失败result_code :FAil ==>" + res.ToXml()); page.Response.Write(res.ToXml()); page.Response.End(); } } else { res.SetValue("return_code", "FAIL"); res.SetValue("return_msg", "retrun_code fail"); log.Error("return_code :FAil ==>" + res.ToXml()); page.Response.Write(res.ToXml()); page.Response.End(); } /** * //检查支付结果中transaction_id是否存在 * if (!notifyData.IsSet("transaction_id")) * { * //若transaction_id不存在,则立即返回结果给微信支付后台 * WxPayData res = new WxPayData(); * res.SetValue("return_code", "FAIL"); * res.SetValue("return_msg", "支付结果中微信订单号不存在"); * Log.Error("The Pay result is error : " + res.ToXml()); * page.Response.Write(res.ToXml()); * page.Response.End(); * } * * string transaction_id = notifyData.GetValue("transaction_id").ToString(); * * //查询订单,判断订单真实性 * if (!QueryOrder(transaction_id)) * { * //若订单查询失败,则立即返回结果给微信支付后台 * WxPayData res = new WxPayData(); * res.SetValue("return_code", "FAIL"); * res.SetValue("return_msg", "订单查询失败"); * Log.Error("Order query failure : " + res.ToXml()); * page.Response.Write(res.ToXml()); * page.Response.End(); * } * //查询订单成功 * else * { * WxPayData res = new WxPayData(); * res.SetValue("return_code", "SUCCESS"); * res.SetValue("return_msg", "OK"); * Log.Info("order query success : " + res.ToXml()); * page.Response.Write(res.ToXml()); * page.Response.End(); * }*****/ }
public void cancelOrder(int maphieu) { DAO.Order dao = new DAO.Order(); dao.cancelOrder(maphieu); }
// GET: /Alipay/ //同步通知 public ActionResult receive() { log.Info("**********************支付宝回调receive**********************"); //商户订单号 string out_trade_no = Request.QueryString["out_trade_no"]; SortedDictionary <string, string> sPara = GetRequestGet(); //日志 log.Info("商户订单号" + out_trade_no + ",参数个数:" + sPara.Count); if (sPara.Count > 0)//判断是否有带返回参数 { Notify aliNotify = new Notify(); bool verifyResult = aliNotify.Verify(sPara, Request.QueryString["notify_id"], Request.QueryString["sign"]);//Request.Form["notify_id"], Request.Form["sign"] log.Info("是否支付宝发出的验证:" + verifyResult + "参数sPara:" + sPara.ToString() + "参数sign:" + Request.QueryString["sign"]); //日志 // Common.Log(out_trade_no + ",回调判断:" + verifyResult, Common.LogLevel.low, "微网站支付宝回调"); if (verifyResult)//验证成功 verifyResult { log.Info("支付宝返回验证成功"); //支付宝交易号 string trade_no = Request.QueryString["trade_no"]; //交易状态 string trade_status = Request.QueryString["trade_status"]; log.Info("支付宝交易号:" + trade_no + "支付宝交易状态:" + trade_status); OrderBuss obll = new OrderBuss(); if (trade_status == "TRADE_FINISHED" || trade_status == "TRADE_SUCCESS") { DAO.OrderPay op = obll.GetOrderPay(out_trade_no); if (op != null) { if (op.PayState == "未支付") { op.PayState = "已支付"; if (op.PayType == 0) { op.Bank = "支付宝"; } op.Remark = string.Format("{1},由支付宝电子对账单更新{0:yyyy-MM-dd HH:mm:ss},状态为:已支付", DateTime.Now, trade_no); //修改OrderPay log.Info("*********即将修改OrderPay**************"); bool r = obll.upDataOrderPay(op); log.Info("orderPay 更新结果:" + r); log.Info("orderPay 更新参数:op.Orderid=" + op.OrderId + " op.PayState-" + op.PayState + "op.Bank-" + op.Bank + "trade_no-" + trade_no); //支付成功修改订单状态 log.Info("*********即将修改Order状态**************"); DAO.Order order = obll.GetOrder(out_trade_no); //计算组合支付总金额==订单金额 bool r_vali_price = obll.ValidataPayPrice(out_trade_no, order.TotalPrice); log.Info("订单:" + op.OrderId + "金额,支付金额校验--" + r_vali_price); if (r_vali_price) { bool r_oder = obll.upOrder(out_trade_no); log.Info("订单:" + op.OrderId + " 修改结果--" + r_oder); } } } else { log.Info("OrderPay is Null"); } //打印页面 //orderpay 订单支付类型 0 正常订单 1 充值订单 if (op.OrderType == 0) { return(Redirect(string.Format("/Order/Detail?oid={0}", out_trade_no))); } else if (op.OrderType == 1) { return(Redirect("/pay/recharge_success.html")); } } else { log.Info("支付宝交易状态未通过"); } } else //验证失败 { log.Info("支付宝返回验证失败"); Response.Write("验证失败"); } } else { Response.Write("无返回参数"); } log.Info("**********************支付宝回调receive结束**********************"); return(View()); }