/// <summary> /// 获取订单可执行操作 changjian.tian 20140421 /// </summary> /// <param name="pOrderId"></param> /// <returns></returns> public GetOrderActionsRD GetOrderActions(string pOrderId) { GetOrderActionsRD rdData = new GetOrderActionsRD(); DataSet ds = new DataSet(); string pDeliveryMethod = _currentDAO.GetOrderDeliveryMethod(pOrderId); ds = _currentDAO.GetOrderActions(pOrderId, pDeliveryMethod); IList <TInOutStatusNodeEntity> list = new List <TInOutStatusNodeEntity>(); using (var rd = ds.Tables[0].CreateDataReader()) { while (rd.Read()) { TInOutStatusNodeEntity m; this._currentDAO.NewLoad(rd, out m); list.Add(m); } } var OrderAction = new List <JIT.CPOS.DTO.Module.Order.Order.Response.OrderActionInfo> { }; foreach (var item in list) { var orderaction = new OrderActionInfo() { ActionCode = item.NextValue, //订单可执行操作状态码 Text = item.ActionDesc //订单状态描述 }; OrderAction.Add(orderaction); } rdData.Actions = OrderAction.ToArray(); return(rdData); }
/// <summary> /// 获得订单处理列表 /// </summary> /// <param name="oid">订单id</param> /// <returns></returns> public static List <OrderActionInfo> GetOrderActionList(int oid) { List <OrderActionInfo> orderActionList = null; if (_ordernosql != null) { orderActionList = _ordernosql.GetOrderActionList(oid); if (orderActionList == null) { orderActionList = new List <OrderActionInfo>(); IDataReader reader = NStore.Core.BMAData.RDBS.GetOrderActionList(oid); while (reader.Read()) { OrderActionInfo orderActionInfo = BuildOrderActionFromReader(reader); orderActionList.Add(orderActionInfo); } reader.Close(); _ordernosql.CreateOrderActionList(oid, orderActionList); } } else { orderActionList = new List <OrderActionInfo>(); IDataReader reader = NStore.Core.BMAData.RDBS.GetOrderActionList(oid); while (reader.Read()) { OrderActionInfo orderActionInfo = BuildOrderActionFromReader(reader); orderActionList.Add(orderActionInfo); } reader.Close(); } return(orderActionList); }
/// <summary> /// 创建订单处理 /// </summary> /// <param name="orderActionInfo">订单处理信息</param> public static void CreateOrderAction(OrderActionInfo orderActionInfo) { BrnShop.Core.BSPData.RDBS.CreateOrderAction(orderActionInfo); if (_ordernosql != null) { _ordernosql.CreateOrderAction(orderActionInfo); } }
/// <summary> /// 创建订单处理 /// </summary> /// <param name="orderActionInfo">订单处理信息</param> public static void CreateOrderAction(OrderActionInfo orderActionInfo) { NStore.Core.BMAData.RDBS.CreateOrderAction(orderActionInfo); if (_ordernosql != null) { _ordernosql.CreateOrderAction(orderActionInfo); } }
public int Add(OrderActionInfo entity) { using (var conn = new SqlConnection(connectString)) { string sql = @"INSERT INTO OrderAction( OrderId,OrderOperate,StartOrderStatus,EndOrderStatus,Note,IP,Date,AdminID,AdminName) VALUES(@OrderId,@OrderOperate,@StartOrderStatus,@EndOrderStatus,@Note,@IP,@Date,@AdminID,@AdminName); select SCOPE_IDENTITY()"; return(conn.Query <int>(sql, entity).Single()); } }
private static IOrderNOSQLStrategy _ordernosql = BMAData.OrderNOSQL;//订单非关系型数据库 #region 辅助方法 /// <summary> /// 从IDataReader创建OrderActionInfo /// </summary> public static OrderActionInfo BuildOrderActionFromReader(IDataReader reader) { OrderActionInfo orderActionInfo = new OrderActionInfo(); orderActionInfo.Oid = TypeHelper.ObjectToInt(reader["oid"]); orderActionInfo.Uid = TypeHelper.ObjectToInt(reader["uid"]); orderActionInfo.RealName = reader["realname"].ToString(); orderActionInfo.ActionType = TypeHelper.ObjectToInt(reader["actiontype"]); orderActionInfo.ActionTime = TypeHelper.ObjectToDateTime(reader["actiontime"]); orderActionInfo.ActionDes = reader["actiondes"].ToString(); return(orderActionInfo); }
public static int Add(OrderActionInfo entity) { int result; if (entity == null) { result = 0; } else { result = BizBase.dbo.InsertModel <OrderActionInfo>(entity); } return(result); }
/// <summary> /// 创建订单处理 /// </summary> /// <param name="orderActionInfo">订单处理信息</param> public void CreateOrderAction(OrderActionInfo orderActionInfo) { DbParameter[] parms = { GenerateInParam("@oid", SqlDbType.Int, 4, orderActionInfo.Oid), GenerateInParam("@uid", SqlDbType.Int, 4, orderActionInfo.Uid), GenerateInParam("@realname", SqlDbType.NVarChar, 10, orderActionInfo.RealName), GenerateInParam("@actiontype", SqlDbType.TinyInt, 1, orderActionInfo.ActionType), GenerateInParam("@actiontime", SqlDbType.DateTime, 8, orderActionInfo.ActionTime), GenerateInParam("@actiondes", SqlDbType.NVarChar, 250, orderActionInfo.ActionDes) }; RDBSHelper.ExecuteNonQuery(CommandType.StoredProcedure, string.Format("{0}createorderaction", RDBSHelper.RDBSTablePre), parms); }
/// <summary> /// 增加一条OrderAction数据(前台用户) /// </summary> /// <param name="order">OrderInfo模型变量</param> /// <param name="note">备注</param> public static int UserAddOrderAction(int orderId, int startOrderStatus, int endOrderStatus, string note, int orderOperate) { OrderActionInfo orderAction = new OrderActionInfo(); orderAction.OrderId = orderId; orderAction.OrderOperate = orderOperate; orderAction.StartOrderStatus = startOrderStatus; orderAction.EndOrderStatus = endOrderStatus; orderAction.Note = note; orderAction.IP = ClientHelper.IP; orderAction.Date = RequestHelper.DateNow; orderAction.AdminID = 0; orderAction.AdminName = string.Empty; orderAction.Id = dal.Add(orderAction); return(orderAction.Id); }
public static int UserAddOrderAction(int orderID, int startOrderStatus, int endOrderStatus, string note, int orderOperate) { OrderActionInfo info; info = new OrderActionInfo(); info.OrderID = orderID; info.OrderOperate = orderOperate; info.StartOrderStatus = startOrderStatus; info.EndOrderStatus = endOrderStatus; info.Note = note; info.IP = ClientHelper.IP; info.Date = RequestHelper.DateNow; info.AdminID = 0; info.AdminName = string.Empty; info.ID = dal.AddOrderAction(info); return(info.ID); }
protected void Page_Load(object sender, EventArgs e) { SortedDictionary <string, string> sPara = GetRequestPost(); if (sPara.Count > 0)//判断是否有带返回参数 { AlipayNotify aliNotify = new AlipayNotify(); bool verifyResult = aliNotify.Verify(sPara, Request.Form["notify_id"], Request.Form["sign"]); if (verifyResult) //验证成功 { if (Request.Form["trade_status"] == "TRADE_FINISHED" || Request.Form["trade_status"] == "TRADE_SUCCESS") // 判断支付状态TRADE_FINISHED(文档中有枚举表可以参考) { //更新数据库的订单语句 string orderNumber = RequestHelper.GetForm <string>("out_trade_no"); OrderInfo order = OrderBLL.ReadOrderByNumber(orderNumber, 0); if (order.ID > 0) { if (order.OrderStatus == (int)OrderStatus.WaitPay) { order.OrderStatus = (int)OrderStatus.WaitCheck; OrderBLL.UpdateOrder(order); //增加操作记录 OrderActionInfo orderAction = new OrderActionInfo(); orderAction.OrderID = order.ID; orderAction.OrderOperate = (int)OrderOperate.Pay; orderAction.StartOrderStatus = (int)OrderStatus.WaitPay; orderAction.EndOrderStatus = (int)OrderStatus.WaitCheck; orderAction.Note = "客户支付宝在线支付"; orderAction.IP = ClientHelper.IP; orderAction.Date = RequestHelper.DateNow; orderAction.AdminID = 0; orderAction.AdminName = string.Empty; OrderActionBLL.AddOrderAction(orderAction); } } //else //{ // UserRechargeInfo userRecharge = UserRechargeBLL.ReadUserRechargeByNumber(orderNumber, 0); // if (userRecharge.ID > 0 && userRecharge.IsFinish == (int)BoolType.False) // { // userRecharge.IsFinish = (int)BoolType.True; // UserRechargeBLL.UpdateUserRecharge(userRecharge); // //账户记录 // string note = "支付宝在线冲值:" + userRecharge.Number; // UserAccountRecordBLL.AddUserAccountRecord(userRecharge.Money, 0, note, userRecharge.UserID, userRecharge.UserName); // } //} } Response.Write("success"); //请不要修改或删除 } else//验证失败 { Response.Write("fail"); } } else { Response.Write("无通知参数"); } }
public override void ProcessNotify() { WxPayData notifyData = GetNotifyData(); //检查支付结果中transaction_id是否存在 if (!notifyData.IsSet("transaction_id")) { //若transaction_id不存在,则立即返回结果给微信支付后台 WxPayData res = new WxPayData(); res.SetValue("return_code", "FAIL"); res.SetValue("return_msg", "支付结果中微信订单号不存在"); Log.Error(this.GetType().ToString(), "The Pay result is error : " + res.ToXml()); //page.Response.Write(res.ToXml()); //page.Response.End(); } else { string transaction_id = notifyData.GetValue("transaction_id").ToString(); //查询订单,判断订单真实性 if (!QueryOrder(transaction_id)) ////沙箱测试只能用out_trade_no //if (notifyData.IsSet("out_trade_no") && !QueryOrderByout_trade_no(notifyData.GetValue("out_trade_no").ToString())) { //若订单查询失败,则立即返回结果给微信支付后台 WxPayData res = new WxPayData(); res.SetValue("return_code", "FAIL"); res.SetValue("return_msg", "订单查询失败"); Log.Error(this.GetType().ToString(), "Order query failure : " + res.ToXml()); //page.Response.Write(res.ToXml()); //page.Response.End(); } //查询订单成功 else { Log.Debug(this.GetType().ToString(), "订单查询成功 "); /************在这里加入商户自己的逻辑***********************************************************/ //attach:以逗号分开的订单Id字符串,与支付时提交的数据一致 if (notifyData.IsSet("attach")) { string attach = notifyData.GetValue("attach").ToString(); string[] orderIds = attach.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); foreach (string orderId in orderIds) { var order = OrderBLL.Read(int.Parse(orderId)); if (order.Id > 0) { #region 正常流程 待付款--》待审核 if (order.OrderStatus == (int)OrderStatus.WaitPay) { order.PayKey = "WxPay"; order.PayName = "微信支付"; order.WxPayTradeNo = transaction_id; //沙箱测试用out_trade_no //order.WxPayTradeNo = notifyData.GetValue("out_trade_no").ToString(); order.OrderStatus = (int)OrderStatus.WaitCheck; order.PayDate = RequestHelper.DateNow; OrderBLL.Update(order); #region 拼团订单付款:团长付款--开团+增加参团记录;成员付款--增加参团记录 if (order.IsActivity == (int)OrderKind.GroupBuy) { var orderDetail = OrderDetailBLL.ReadList(order.Id).FirstOrDefault() ?? new OrderDetailInfo(); if (orderDetail.Id > 0) { var product = ProductBLL.Read(orderDetail.ProductId); //团长付款 if (order.FavorableActivityId <= 0) { //开团 int groupId = GroupBuyBLL.Add(new GroupBuyInfo { Leader = order.UserId, ProductId = product.Id, StartTime = DateTime.Now, EndTime = DateTime.Now.AddDays(ShopConfig.ReadConfigInfo().GroupBuyDays), Quantity = product.GroupQuantity, //团购订单支付成功之后计数加1 SignCount = 1 }); //订单绑定团购Id Dictionary <string, object> dict = new Dictionary <string, object>(); dict.Add("[FavorableActivityId]", groupId); OrderBLL.UpdatePart("[Order]", dict, order.Id); //增加参团记录 GroupSignBLL.Add(new GroupSignInfo { GroupId = groupId, UserId = order.UserId, OrderId = order.Id, SignTime = DateTime.Now }); } else//参团者付款--放到参团者checkout { ////增加参团记录 //GroupSignBLL.Add(new GroupSignInfo //{ // GroupId = order.FavorableActivityId, // UserId = order.UserId, // OrderId = order.Id, // SignTime = DateTime.Now //}); ////开团表signcount加1 //GroupBuyBLL.PlusSignCount(order.FavorableActivityId); } } } #endregion #region 自提订单 生成提货码 //避免重复数据,一个订单对应一个提货码,提货码没有有效期,使用过后失效 if (order.SelfPick == 1 && PickUpCodeBLL.ReadByOrderId(order.Id).Id <= 0) { PickUpCodeInfo pkCode = new PickUpCodeInfo(); pkCode.OrderId = order.Id; pkCode.Status = 0; pkCode.PickCode = PickUpCodeBLL.CreatePickUpCode(); int pickCodeId = PickUpCodeBLL.Add(pkCode); } #endregion #region 价订单 if (order.IsActivity == (int)OrderKind.Bargain) { BargainOrderBLL.HandleBargainOrderPay(order.FavorableActivityId); } #endregion //发送订单支付成功通知 SendPayOrderMsg(order); //增加操作记录 OrderActionInfo orderAction = new OrderActionInfo(); orderAction.OrderId = order.Id; orderAction.OrderOperate = (int)OrderOperate.Pay; orderAction.StartOrderStatus = (int)OrderStatus.WaitPay; orderAction.EndOrderStatus = (int)OrderStatus.WaitCheck; orderAction.Note = "客户微信在线支付"; orderAction.IP = ClientHelper.IP; orderAction.Date = RequestHelper.DateNow; orderAction.AdminID = 0; orderAction.AdminName = string.Empty; OrderActionBLL.Add(orderAction); } #endregion #region 非正常流程 待付款超时已失效(未退款)--》待审核 if (order.OrderStatus == (int)OrderStatus.NoEffect && order.IsRefund == 0) { order.PayKey = "WxPay"; order.PayName = "微信支付"; order.WxPayTradeNo = transaction_id; order.OrderStatus = (int)OrderStatus.WaitCheck; order.PayDate = RequestHelper.DateNow; OrderBLL.Update(order); #region 拼团订单付款:团长付款--开团+增加参团记录;成员付款--增加参团记录 if (order.IsActivity == (int)OrderKind.GroupBuy) { var orderDetail = OrderDetailBLL.ReadList(order.Id).FirstOrDefault() ?? new OrderDetailInfo(); if (orderDetail.Id > 0) { var product = ProductBLL.Read(orderDetail.ProductId); //团长付款 if (order.FavorableActivityId <= 0) { //开团 int groupId = GroupBuyBLL.Add(new GroupBuyInfo { Leader = order.UserId, ProductId = product.Id, StartTime = DateTime.Now, EndTime = DateTime.Now.AddDays(ShopConfig.ReadConfigInfo().GroupBuyDays), Quantity = product.GroupQuantity, //团购订单支付成功之后计数加1 SignCount = 1 }); //订单绑定团购Id Dictionary <string, object> dict = new Dictionary <string, object>(); dict.Add("[FavorableActivityId]", groupId); OrderBLL.UpdatePart("[Order]", dict, order.Id); //增加参团记录 GroupSignBLL.Add(new GroupSignInfo { GroupId = groupId, UserId = order.UserId, OrderId = order.Id, SignTime = DateTime.Now }); } else//参团者付款--放到参团者checkout { ////增加参团记录 //GroupSignBLL.Add(new GroupSignInfo //{ // GroupId = order.FavorableActivityId, // UserId = order.UserId, // OrderId = order.Id, // SignTime = DateTime.Now //}); ////开团表signcount加1 //GroupBuyBLL.PlusSignCount(order.FavorableActivityId); } } } #endregion #region 自提订单 生成提货码 //避免重复数据,一个订单对应一个提货码,提货码没有有效期,使用过后失效 if (order.SelfPick == 1 && PickUpCodeBLL.ReadByOrderId(order.Id).Id <= 0) { PickUpCodeInfo pkCode = new PickUpCodeInfo(); pkCode.OrderId = order.Id; pkCode.Status = 0; pkCode.PickCode = PickUpCodeBLL.CreatePickUpCode(); int pickCodeId = PickUpCodeBLL.Add(pkCode); } #endregion #region 价订单 if (order.IsActivity == (int)OrderKind.Bargain) { BargainOrderBLL.HandleBargainOrderPay(order.FavorableActivityId); } #endregion #region 扣除支付积分 if (order.Point > 0) { //减少积分 UserAccountRecordInfo uarInfo = new UserAccountRecordInfo(); uarInfo.RecordType = (int)AccountRecordType.Point; uarInfo.UserId = order.UserId; uarInfo.UserName = order.UserName; uarInfo.Note = "支付订单:" + order.OrderNumber; uarInfo.Point = -order.Point; uarInfo.Money = 0; uarInfo.Date = DateTime.Now; uarInfo.IP = ClientHelper.IP; UserAccountRecordBLL.Add(uarInfo); } #endregion #region 减少商品库存 ProductBLL.ChangeOrderCountByOrder(order.Id, ChangeAction.Plus); #endregion //发送订单支付成功通知 SendPayOrderMsg(order); //增加操作记录 OrderActionInfo orderAction = new OrderActionInfo(); orderAction.OrderId = order.Id; orderAction.OrderOperate = (int)OrderOperate.Pay; orderAction.StartOrderStatus = (int)OrderStatus.WaitPay; orderAction.EndOrderStatus = (int)OrderStatus.WaitCheck; orderAction.Note = "客户微信在线支付"; orderAction.IP = ClientHelper.IP; orderAction.Date = RequestHelper.DateNow; orderAction.AdminID = 0; orderAction.AdminName = string.Empty; OrderActionBLL.Add(orderAction); } #endregion //记录微信支付交易单号 if (order.OrderStatus == (int)OrderStatus.WaitCheck && string.IsNullOrEmpty(order.WxPayTradeNo)) { order.WxPayTradeNo = transaction_id; OrderBLL.Update(order); } notifyResult = true; } } } /************在这里加入商户自己的逻辑***********************************************************/ WxPayData res = new WxPayData(); res.SetValue("return_code", "SUCCESS"); res.SetValue("return_msg", "OK"); Log.Info(this.GetType().ToString(), "order query success : " + res.ToXml()); //page.Response.Write(res.ToXml()); //page.Response.End(); } } }
public override void ProcessNotify() { WxPayData notifyData = GetNotifyData(); //检查支付结果中transaction_id是否存在 if (!notifyData.IsSet("transaction_id")) { //若transaction_id不存在,则立即返回结果给微信支付后台 WxPayData res = new WxPayData(); res.SetValue("return_code", "FAIL"); res.SetValue("return_msg", "支付结果中微信订单号不存在"); Log.Error(this.GetType().ToString(), "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(this.GetType().ToString(), "Order query failure : " + res.ToXml()); page.Response.Write(res.ToXml()); page.Response.End(); } //查询订单成功 else { //更新数据库的订单语句 string orderNumber = notifyData.GetValue("out_trade_no").ToString(); OrderInfo order = OrderBLL.ReadOrderByNumber(orderNumber, 0); if (order.ID > 0) { if (order.OrderStatus == (int)OrderStatus.WaitPay) { order.OrderStatus = (int)OrderStatus.WaitCheck; OrderBLL.UpdateOrder(order); //增加操作记录 OrderActionInfo orderAction = new OrderActionInfo(); orderAction.OrderID = order.ID; orderAction.OrderOperate = (int)OrderOperate.Pay; orderAction.StartOrderStatus = (int)OrderStatus.WaitPay; orderAction.EndOrderStatus = (int)OrderStatus.WaitCheck; orderAction.Note = "微信支付"; orderAction.IP = ClientHelper.IP; orderAction.Date = RequestHelper.DateNow; orderAction.AdminID = 0; orderAction.AdminName = string.Empty; OrderActionBLL.AddOrderAction(orderAction); } } WxPayData res = new WxPayData(); res.SetValue("return_code", "SUCCESS"); res.SetValue("return_msg", "OK"); Log.Info(this.GetType().ToString(), "order query success : " + res.ToXml()); page.Response.Write(res.ToXml()); page.Response.End(); } }
public static bool Update(OrderActionInfo entity) { return(entity != null && BizBase.dbo.UpdateModel <OrderActionInfo>(entity)); }
protected void Page_Load(object sender, EventArgs e) { SortedDictionary <string, string> sPara = GetRequestGet(); if (sPara.Count > 0)//判断是否有带返回参数 { AlipayNotify aliNotify = new AlipayNotify(); bool verifyResult = aliNotify.Verify(sPara, Request.QueryString["notify_id"], Request.QueryString["sign"]); if (verifyResult)//验证成功 { if (Request.QueryString["trade_status"] == "TRADE_FINISHED" || Request.QueryString["trade_status"] == "TRADE_SUCCESS") { //更新数据库的订单语句 message = "成功付款"; string orderNumber = RequestHelper.GetQueryString <string>("out_trade_no"); OrderInfo order = OrderBLL.ReadOrderByNumber(orderNumber, 0); if (order.ID > 0) { if (order.OrderStatus == (int)OrderStatus.WaitPay) { order.OrderStatus = (int)OrderStatus.WaitCheck; OrderBLL.UpdateOrder(order); //增加操作记录 OrderActionInfo orderAction = new OrderActionInfo(); orderAction.OrderID = order.ID; orderAction.OrderOperate = (int)OrderOperate.Pay; orderAction.StartOrderStatus = (int)OrderStatus.WaitPay; orderAction.EndOrderStatus = (int)OrderStatus.WaitCheck; orderAction.Note = "客户支付宝在线支付"; orderAction.IP = ClientHelper.IP; orderAction.Date = RequestHelper.DateNow; orderAction.AdminID = 0; orderAction.AdminName = string.Empty; OrderActionBLL.AddOrderAction(orderAction); message = "您已经成功支付订单:" + orderNumber; } } //else //{ // UserRechargeInfo userRecharge = UserRechargeBLL.ReadUserRechargeByNumber(orderNumber, 0); // if (userRecharge.ID > 0 && userRecharge.IsFinish == (int)BoolType.False) // { // userRecharge.IsFinish = (int)BoolType.True; // UserRechargeBLL.UpdateUserRecharge(userRecharge); // //账户记录 // string note = "支付宝在线冲值:" + userRecharge.Number; // UserAccountRecordBLL.AddUserAccountRecord(userRecharge.Money, 0, note, userRecharge.UserID, userRecharge.UserName); // message = "您的冲值已经成功完成"; // } //} ResponseHelper.Redirect("PrePaidCourse.aspx"); } else { Response.Write("trade_status=" + Request.QueryString["trade_status"]); } } else//验证失败 { Response.Write("验证失败"); } } else { Response.Write("无返回参数"); } }
protected void Page_Load(object sender, EventArgs e) { string out_trade_no = RequestHelper.GetQueryString <string>("order_id"); string[] orderIds = out_trade_no.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); foreach (string orderId in orderIds) { var order = OrderBLL.Read(int.Parse(orderId)); if (order.Id > 0) { #region 正常流程 待付款--》待审核 if (order.OrderStatus == (int)OrderStatus.WaitPay) { order.PayKey = "WxPay"; order.PayName = "微信支付"; order.OrderStatus = (int)OrderStatus.WaitCheck; order.PayDate = RequestHelper.DateNow; OrderBLL.Update(order); //增加操作记录 OrderActionInfo orderAction = new OrderActionInfo(); orderAction.OrderId = order.Id; orderAction.OrderOperate = (int)OrderOperate.Pay; orderAction.StartOrderStatus = (int)OrderStatus.WaitPay; orderAction.EndOrderStatus = (int)OrderStatus.WaitCheck; orderAction.Note = "客户微信在线支付"; orderAction.IP = ClientHelper.IP; orderAction.Date = RequestHelper.DateNow; orderAction.AdminID = 0; orderAction.AdminName = string.Empty; OrderActionBLL.Add(orderAction); } #endregion #region 非正常流程 待付款超时已失效--》待审核 if (order.OrderStatus == (int)OrderStatus.NoEffect) { order.PayKey = "WxPay"; order.PayName = "微信支付"; order.OrderStatus = (int)OrderStatus.WaitCheck; order.PayDate = RequestHelper.DateNow; OrderBLL.Update(order); #region 扣除支付积分 if (order.Point > 0) { //减少积分 UserAccountRecordInfo uarInfo = new UserAccountRecordInfo(); uarInfo.RecordType = (int)AccountRecordType.Point; uarInfo.UserId = order.UserId; uarInfo.UserName = order.UserName; uarInfo.Note = "支付订单:" + order.OrderNumber; uarInfo.Point = -order.Point; uarInfo.Money = 0; uarInfo.Date = DateTime.Now; uarInfo.IP = ClientHelper.IP; UserAccountRecordBLL.Add(uarInfo); } #endregion #region 减少商品库存 ProductBLL.ChangeOrderCountByOrder(order.Id, ChangeAction.Plus); #endregion //增加操作记录 OrderActionInfo orderAction = new OrderActionInfo(); orderAction.OrderId = order.Id; orderAction.OrderOperate = (int)OrderOperate.Pay; orderAction.StartOrderStatus = (int)OrderStatus.WaitPay; orderAction.EndOrderStatus = (int)OrderStatus.WaitCheck; orderAction.Note = "客户微信在线支付"; orderAction.IP = ClientHelper.IP; orderAction.Date = RequestHelper.DateNow; orderAction.AdminID = 0; orderAction.AdminName = string.Empty; OrderActionBLL.Add(orderAction); } #endregion } } }
protected void Page_Load(object sender, EventArgs e) { PayConfig payConfig = new PayConfig(); string merchant_key = payConfig.MerchantKey; ///商户密钥 string merchant_id = Request["merchant_id"].ToString(); ///获取商户编号 string orderid = Request["orderid"].ToString(); ///获取订单编号 string amount = Request["amount"].ToString(); ///获取订单金额 string dealdate = Request["date"].ToString(); ///获取交易日期 string succeed = Request["succeed"].ToString(); ///获取交易结果,Y成功,N失败 string mac = Request["mac"].ToString(); ///获取安全加密串 string merchant_param = Request["merchant_param"].ToString(); ///获取商户私有参数 string couponid = Request["couponid"].ToString(); ///获取优惠券编码 string couponvalue = Request["couponvalue"].ToString(); ///获取优惠券面额 ///生成加密串,注意顺序 string SrctStr = "merchant_id=" + merchant_id + "&orderid=" + orderid + "&amount=" + amount + "&date=" + dealdate + "&succeed=" + succeed + "&merchant_key=" + merchant_key; string mymac = FormsAuthentication.HashPasswordForStoringInConfigFile(SrctStr, "MD5"); if (mac == mymac) { if (succeed == "Y") { //更新数据库的订单语句 message = "成功付款"; string orderNumber = orderid; OrderInfo order = OrderBLL.ReadOrderByNumber(orderNumber, 0); if (order.ID > 0) { if (order.OrderStatus == (int)OrderStatus.WaitPay) { order.OrderStatus = (int)OrderStatus.WaitCheck; OrderBLL.UpdateOrder(order); //增加操作记录 OrderActionInfo orderAction = new OrderActionInfo(); orderAction.OrderID = order.ID; orderAction.OrderOperate = (int)OrderOperate.Pay; orderAction.StartOrderStatus = (int)OrderStatus.WaitPay; orderAction.EndOrderStatus = (int)OrderStatus.WaitCheck; orderAction.Note = "客户快钱在线支付"; orderAction.IP = ClientHelper.IP; orderAction.Date = RequestHelper.DateNow; orderAction.AdminID = 0; orderAction.AdminName = string.Empty; OrderActionBLL.AddOrderAction(orderAction); message = "您已经成功支付订单:" + orderNumber; } } else { UserRechargeInfo userRecharge = UserRechargeBLL.ReadUserRechargeByNumber(orderNumber, 0); if (userRecharge.ID > 0 && userRecharge.IsFinish == (int)BoolType.False) { userRecharge.IsFinish = (int)BoolType.True; UserRechargeBLL.UpdateUserRecharge(userRecharge); //账户记录 string note = "快钱在线冲值:" + userRecharge.Number; UserAccountRecordBLL.AddUserAccountRecord(userRecharge.Money, 0, note, userRecharge.UserID, userRecharge.UserName); message = "您的冲值已经成功完成"; } } } else { message = "支付订单失败"; } } else { message = "签名错误"; } }
public static int Add(OrderActionInfo entity) { return(dal.Add(entity)); }
public static int AddOrderAction(OrderActionInfo orderAction) { orderAction.ID = dal.AddOrderAction(orderAction); return(orderAction.ID); }
protected void Page_Load(object sender, EventArgs e) { PayConfig payConfig = new PayConfig(); string alipayNotifyURL = "https://www.alipay.com/cooperate/gateway.do?"; string key = payConfig.SecurityKey; //partner 的对应交易安全校验码(必须填写) string _input_charset = "utf-8"; string partner = payConfig.Partner; //partner合作伙伴id(必须填写) alipayNotifyURL = alipayNotifyURL + "service=notify_verify" + "&partner=" + partner + "¬ify_id=" + Request.QueryString["notify_id"]; //获取支付宝ATN返回结果,true是正确的订单信息,false 是无效的 string responseTxt = Get_Http(alipayNotifyURL, 120000); int i; NameValueCollection coll = Request.QueryString; String[] requestarr = coll.AllKeys; //进行排序; string[] Sortedstr = BubbleSort(requestarr); //构造待md5摘要字符串 ; StringBuilder prestr = new StringBuilder(); for (i = 0; i < Sortedstr.Length; i++) { if (Request.Form[Sortedstr[i]] != "" && Sortedstr[i] != "sign" && Sortedstr[i] != "sign_type") { if (i == Sortedstr.Length - 1) { prestr.Append(Sortedstr[i] + "=" + Request.QueryString[Sortedstr[i]]); } else { prestr.Append(Sortedstr[i] + "=" + Request.QueryString[Sortedstr[i]] + "&"); } } } prestr.Append(key); //生成Md5摘要; string mysign = GetMD5(prestr.ToString(), _input_charset); string sign = Request.QueryString["sign"]; if (mysign == sign && responseTxt == "true") //验证支付发过来的消息,签名是否正确 { //更新数据库的订单语句 message = "成功付款"; string orderNumber = RequestHelper.GetQueryString <string>("out_trade_no"); OrderInfo order = OrderBLL.ReadOrderByNumber(orderNumber, 0); if (order.ID > 0) { if (order.OrderStatus == (int)OrderStatus.WaitPay) { order.OrderStatus = (int)OrderStatus.WaitCheck; OrderBLL.UpdateOrder(order); //增加操作记录 OrderActionInfo orderAction = new OrderActionInfo(); orderAction.OrderID = order.ID; orderAction.OrderOperate = (int)OrderOperate.Pay; orderAction.StartOrderStatus = (int)OrderStatus.WaitPay; orderAction.EndOrderStatus = (int)OrderStatus.WaitCheck; orderAction.Note = "客户支付宝在线支付"; orderAction.IP = ClientHelper.IP; orderAction.Date = RequestHelper.DateNow; orderAction.AdminID = 0; orderAction.AdminName = string.Empty; OrderActionBLL.AddOrderAction(orderAction); message = "您已经成功支付订单:" + orderNumber; } } else { UserRechargeInfo userRecharge = UserRechargeBLL.ReadUserRechargeByNumber(orderNumber, 0); if (userRecharge.ID > 0 && userRecharge.IsFinish == (int)BoolType.False) { userRecharge.IsFinish = (int)BoolType.True; UserRechargeBLL.UpdateUserRecharge(userRecharge); //账户记录 string note = "支付宝在线冲值:" + userRecharge.Number; UserAccountRecordBLL.AddUserAccountRecord(userRecharge.Money, 0, note, userRecharge.UserID, userRecharge.UserName); message = "您的冲值已经成功完成"; } } } else { message = "支付订单出现问题"; } }
/// <summary> /// 创建订单处理 /// </summary> /// <param name="orderActionInfo">订单处理信息</param> public static void CreateOrderAction(OrderActionInfo orderActionInfo) { BrnShop.Data.OrderActions.CreateOrderAction(orderActionInfo); }
/// <summary> /// 创建订单处理 /// </summary> /// <param name="orderActionInfo">订单处理信息</param> public static void CreateOrderAction(OrderActionInfo orderActionInfo) { NStore.Data.OrderActions.CreateOrderAction(orderActionInfo); }
protected void Page_Load(object sender, EventArgs e) { string suchtml = "<meta content=\"China TENCENT\" name=\"TENCENT_ONLINE_PAYMENT\">\n" + "<script language=\"javascript\">\n" + "window.location.href='http://" + Request.ServerVariables["Http_Host"] + "/Plugins/Pay/TenPay/Show.aspx';\n" + "</script>"; string errmsg = ""; PayConfig payConfig = new PayConfig(); Md5Pay md5pay = new Md5Pay(); md5pay.Key = payConfig.BusinessKey; //卖家商户key md5pay.Bargainor_id = payConfig.BargainorID; //判断签名 if (md5pay.GetPayValueFromUrl(Request.QueryString, out errmsg)) { //认证签名成功 //支付判断 if (md5pay.Pay_Result == Md5Pay.PAYOK) { //支付成功,同定单号md5pay.Transaction_id可能会多次通知,请务必注意判断订单是否重复的逻辑 //跳转到成功页面,财付通收到<meta content=\"China TENCENT\" name=\"TENCENT_ONLINE_PAYMENT\">,认为通知成功 string orderNumber = md5pay.Sp_billno; OrderInfo order = OrderBLL.ReadOrderByNumber(orderNumber, 0); if (order.ID > 0) { if (order.OrderStatus == (int)OrderStatus.WaitPay) { order.OrderStatus = (int)OrderStatus.WaitCheck; OrderBLL.UpdateOrder(order); //增加操作记录 OrderActionInfo orderAction = new OrderActionInfo(); orderAction.OrderID = order.ID; orderAction.OrderOperate = (int)OrderOperate.Pay; orderAction.StartOrderStatus = (int)OrderStatus.WaitPay; orderAction.EndOrderStatus = (int)OrderStatus.WaitCheck; orderAction.Note = "客户财付通在线支付"; orderAction.IP = ClientHelper.IP; orderAction.Date = RequestHelper.DateNow; orderAction.AdminID = 0; orderAction.AdminName = string.Empty; OrderActionBLL.AddOrderAction(orderAction); } } else { UserRechargeInfo userRecharge = UserRechargeBLL.ReadUserRechargeByNumber(orderNumber, 0); if (userRecharge.ID > 0 && userRecharge.IsFinish == (int)BoolType.False) { userRecharge.IsFinish = (int)BoolType.True; UserRechargeBLL.UpdateUserRecharge(userRecharge); //账户记录 string note = "财付通在线冲值:" + userRecharge.Number; UserAccountRecordBLL.AddUserAccountRecord(userRecharge.Money, 0, note, userRecharge.UserID, userRecharge.UserName); } } //StreamWriter sw = File.AppendText(Server.MapPath("log.txt")); //sw.WriteLine(DateTime.Now.ToString() + orderNumber); //sw.Flush(); //sw.Close(); Response.Write(suchtml); } else { //支付失败,请不要按成功处理 Response.Write("支付失败" + errmsg); } } else { //认证签名失败 Response.Write("认证签名失败"); } }
protected void Page_Load(object sender, EventArgs e) { PayConfig payConfig = new PayConfig(); string alipayNotifyURL = "https://www.alipay.com/cooperate/gateway.do?"; string key = payConfig.SecurityKey; //partner 的对应交易安全校验码(必须填写) string partner = payConfig.Partner; //partner合作伙伴id(必须填写) alipayNotifyURL = alipayNotifyURL + "service=notify_verify" + "&partner=" + partner + "¬ify_id=" + Request.Form["notify_id"]; //获取支付宝ATN返回结果,true是正确的订单信息,false 是无效的 string responseTxt = Get_Http(alipayNotifyURL, 120000000); int i; NameValueCollection coll = Request.Form; String[] requestarr = coll.AllKeys; //进行排序; string[] Sortedstr = BubbleSort(requestarr); //构造待md5摘要字符串 ; string prestr = ""; for (i = 0; i < Sortedstr.Length; i++) { if (Request.Form[Sortedstr[i]] != "" && Sortedstr[i] != "sign" && Sortedstr[i] != "sign_type") { if (i == Sortedstr.Length - 1) { prestr = prestr + Sortedstr[i] + "=" + Request.Form[Sortedstr[i]]; } else { prestr = prestr + Sortedstr[i] + "=" + Request.Form[Sortedstr[i]] + "&"; } } } prestr = prestr + key; //生成Md5摘要; string mysign = GetMD5(prestr); string sign = Request.Form["sign"]; //StreamWriter sw = File.AppendText(Server.MapPath("log.txt")); //sw.WriteLine(DateTime.Now.ToString() + "返回页面:" + RequestHelper.GetStringForm("out_trade_no") + ":" + Request.Form["trade_status"]); //sw.WriteLine("mysign:" + mysign + ";sign:" + sign + ";responseTxt:" + responseTxt); //sw.Flush(); //sw.Close(); if (mysign == sign && responseTxt == "true") //验证支付发过来的消息,签名是否正确 { //sw = File.AppendText(Server.MapPath("log.txt")); //sw.WriteLine(DateTime.Now.ToString() + "验证成功:" + RequestHelper.GetStringForm("out_trade_no") +":"+ Request.Form["trade_status"]); //sw.Flush(); //sw.Close(); if (Request.Form["trade_status"] == "TRADE_FINISHED" || Request.Form["trade_status"] == "WAIT_SELLER_SEND_GOODS")// 判断支付状态TRADE_FINISHED(文档中有枚举表可以参考) { //更新数据库的订单语句 string orderNumber = RequestHelper.GetForm <string>("out_trade_no"); OrderInfo order = OrderBLL.ReadOrderByNumber(orderNumber, 0); if (order.ID > 0) { if (order.OrderStatus == (int)OrderStatus.WaitPay) { order.OrderStatus = (int)OrderStatus.WaitCheck; OrderBLL.UpdateOrder(order); //增加操作记录 OrderActionInfo orderAction = new OrderActionInfo(); orderAction.OrderID = order.ID; orderAction.OrderOperate = (int)OrderOperate.Pay; orderAction.StartOrderStatus = (int)OrderStatus.WaitPay; orderAction.EndOrderStatus = (int)OrderStatus.WaitCheck; orderAction.Note = "客户支付宝在线支付"; orderAction.IP = ClientHelper.IP; orderAction.Date = RequestHelper.DateNow; orderAction.AdminID = 0; orderAction.AdminName = string.Empty; OrderActionBLL.AddOrderAction(orderAction); } } else { UserRechargeInfo userRecharge = UserRechargeBLL.ReadUserRechargeByNumber(orderNumber, 0); if (userRecharge.ID > 0 && userRecharge.IsFinish == (int)BoolType.False) { userRecharge.IsFinish = (int)BoolType.True; UserRechargeBLL.UpdateUserRecharge(userRecharge); //账户记录 string note = "支付宝在线冲值:" + userRecharge.Number; UserAccountRecordBLL.AddUserAccountRecord(userRecharge.Money, 0, note, userRecharge.UserID, userRecharge.UserName); } } Response.Write("success"); } else { Response.Write("fail"); } } else { Response.Write("fail"); } }