Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        /// <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);
        }
Beispiel #3
0
 /// <summary>
 /// 创建订单处理
 /// </summary>
 /// <param name="orderActionInfo">订单处理信息</param>
 public static void CreateOrderAction(OrderActionInfo orderActionInfo)
 {
     BrnShop.Core.BSPData.RDBS.CreateOrderAction(orderActionInfo);
     if (_ordernosql != null)
     {
         _ordernosql.CreateOrderAction(orderActionInfo);
     }
 }
Beispiel #4
0
 /// <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());
            }
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
        public static int Add(OrderActionInfo entity)
        {
            int result;

            if (entity == null)
            {
                result = 0;
            }
            else
            {
                result = BizBase.dbo.InsertModel <OrderActionInfo>(entity);
            }
            return(result);
        }
Beispiel #8
0
 /// <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);
        }
Beispiel #10
0
        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);
        }
Beispiel #11
0
        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("无通知参数");
            }
        }
Beispiel #12
0
        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();
                }
            }
        }
Beispiel #13
0
        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();
            }
        }
Beispiel #14
0
 public static bool Update(OrderActionInfo entity)
 {
     return(entity != null && BizBase.dbo.UpdateModel <OrderActionInfo>(entity));
 }
Beispiel #15
0
        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("无返回参数");
            }
        }
Beispiel #16
0
        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
                }
            }
        }
Beispiel #17
0
        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 = "签名错误";
            }
        }
Beispiel #18
0
 public static int Add(OrderActionInfo entity)
 {
     return(dal.Add(entity));
 }
Beispiel #19
0
 public static int AddOrderAction(OrderActionInfo orderAction)
 {
     orderAction.ID = dal.AddOrderAction(orderAction);
     return(orderAction.ID);
 }
Beispiel #20
0
        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 + "&notify_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 = "支付订单出现问题";
            }
        }
Beispiel #21
0
 /// <summary>
 /// 创建订单处理
 /// </summary>
 /// <param name="orderActionInfo">订单处理信息</param>
 public static void CreateOrderAction(OrderActionInfo orderActionInfo)
 {
     BrnShop.Data.OrderActions.CreateOrderAction(orderActionInfo);
 }
Beispiel #22
0
 /// <summary>
 /// 创建订单处理
 /// </summary>
 /// <param name="orderActionInfo">订单处理信息</param>
 public static void CreateOrderAction(OrderActionInfo orderActionInfo)
 {
     NStore.Data.OrderActions.CreateOrderAction(orderActionInfo);
 }
Beispiel #23
0
        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("认证签名失败");
            }
        }
Beispiel #24
0
        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 + "&notify_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");
            }
        }