Пример #1
0
 public bool addTgOrder(TgOrder modle)
 {
     using (DbOperator operators = ConnectionManager.CreateConnection())
     {
         return(Add(modle, operators));
     }
 }
Пример #2
0
        /// <summary>
        /// 添加推广人员成功订单记录
        /// </summary>
        /// <param name="modle"></param>
        /// <returns></returns>
        public static bool Addperson(TgOrder modle)
        {
            ITgOrder factory = TgOrderFactory.GetFactory();
            bool     result  = factory.addTgOrder(modle);

            if (result)
            {
                OperateLogServices.AddOperateLog(OperateType.Add, string.Format("orderId:{0},personName:{1},parkingname:{2}", modle.ID, modle.PersonName, modle.PKName));
            }
            return(result);
        }
Пример #3
0
        public bool Add(TgOrder modle, DbOperator operators)
        {
            StringBuilder sb = new StringBuilder();

            sb.AppendFormat("insert into TgOrder(OrderID,PKID,PKName,PlateNo,Amount,RealPayTime,PersonId,PersonName)");
            sb.AppendFormat("values(@OrderID,@PKID,@PKName,@PlateNo,@Amount,@RealPayTime,@PersonId,@PersonName)");
            operators.ClearParameters();
            operators.AddParameter("OrderID", modle.OrderID);
            operators.AddParameter("PKID", modle.PKID);
            operators.AddParameter("PKName", modle.PKName);
            operators.AddParameter("PlateNo", modle.PlateNo);
            operators.AddParameter("Amount", modle.Amount);
            operators.AddParameter("RealPayTime", modle.RealPayTime);
            operators.AddParameter("PersonId", modle.PersonId);
            operators.AddParameter("PersonName", modle.PersonName);
            return(operators.ExecuteNonQuery(sb.ToString()) > 0);
        }
Пример #4
0
        public List <TgOrder> CountTgPersonOrder(InParams paras, int PageSize, int PageIndex)
        {
            List <TgOrder> Personlist = new List <TgOrder>();
            string         strSql     = "select top " + PageSize + " * from ( select top " + PageIndex * PageSize + " PersonId,PersonName,PKID,PKName,sum(Amount) as Amount,COUNT(OrderID) as count from TgOrder where 1=1";

            if (!string.IsNullOrEmpty(paras.ParkingID))
            {
                strSql += " and PKID=@PKID";
            }
            if (paras.StartTime != null)
            {
                strSql += " and RealPayTime>=@StartTime";
            }
            if (paras.EndTime != null)
            {
                strSql += " and RealPayTime<@EndTime";
            }
            strSql += " group by PersonId,PersonName,PKID,PKName order by PersonId desc )a order by PersonId";
            using (DbOperator dboperator = ConnectionManager.CreateReadConnection())
            {
                dboperator.ClearParameters();
                dboperator.AddParameter("PKID", paras.ParkingID);
                dboperator.AddParameter("StartTime", paras.StartTime);
                dboperator.AddParameter("EndTime", paras.EndTime);
                using (DbDataReader dr = dboperator.ExecuteReader(strSql))
                {
                    while (dr.Read())
                    {
                        TgOrder tg = new TgOrder();
                        tg.PersonId   = int.Parse(dr["PersonId"].ToString());
                        tg.PersonName = dr["PersonName"].ToString();
                        tg.PKID       = dr["PKID"].ToString();
                        tg.PKName     = dr["PKName"].ToString();
                        tg.Amount     = decimal.Parse(dr["Amount"].ToString());
                        tg.Count      = int.Parse(dr["count"].ToString());

                        Personlist.Add(tg);
                    }
                }
            }
            return(Personlist);
        }
Пример #5
0
        /// <summary>
        /// 订单支付通道
        /// </summary>
        public void Index()
        {
            ReturnMessage returnMsg = new ReturnMessage()
            {
                Return_Code = "SUCCESS", Return_Msg = ""
            };
            string        xmlString = GetXmlString(Request);
            NotifyMessage message   = null;

            try
            {
                TxtLogServices.WriteTxtLogEx("WeiXinPayNotify", xmlString);
                //此处应记录日志
                message = XmlHelper.Deserialize <NotifyMessage>(xmlString);

                XmlDocument doc = new XmlDocument();
                doc.LoadXml(xmlString);

                Dictionary <string, string> dic = new Dictionary <string, string>();
                string sign = string.Empty;
                foreach (XmlNode node in doc.FirstChild.ChildNodes)
                {
                    if (node.Name.ToLower() != "sign")
                    {
                        dic.Add(node.Name, node.InnerText);
                    }
                    else
                    {
                        sign = node.InnerText;
                    }
                }
                //处理通知
                decimal orderId;
                if (!dic.ContainsKey("out_trade_no") || !decimal.TryParse(dic["out_trade_no"], out orderId))
                {
                    throw new MyException("支付回调订单编号格式不正确");
                }

                OnlineOrder order = OnlineOrderServices.QueryByOrderId(orderId);
                if (order == null)
                {
                    throw new MyException("订单存在,orderId:" + orderId);
                }

                UnifiedPayModel model = UnifiedPayModel.CreateUnifiedModel(order.CompanyID);
                if (!model.ValidateMD5Signature(dic, sign))
                {
                    throw new Exception("签名未通过!");
                }

                if (!dic.ContainsKey("transaction_id"))
                {
                    throw new MyException("支付流水号不存在");
                }

                string payTradeNo = dic["transaction_id"];

                DateTime payTime = DateTime.Now;
                if (dic.ContainsKey("time_end") && dic["time_end"].Length == 14)
                {
                    string strDate = dic["time_end"].Insert(4, "-").Insert(7, "-").Insert(10, " ").Insert(13, ":").Insert(16, ":");
                    if (!DateTime.TryParse(strDate, out payTime))
                    {
                        payTime = DateTime.Now;
                    }
                }
                string payAccount = string.Empty;
                if (dic.ContainsKey("attach") && dic["attach"] == "MWEB" && dic.ContainsKey("openid") && !string.IsNullOrWhiteSpace(dic["openid"]))
                {
                    payAccount = dic["openid"];
                }
                else if (dic.ContainsKey("attach") && dic["attach"].Length > 0)
                {
                    //统计二维码推广订单信息
                    string   sAgendID = dic["attach"];
                    tgPerson person   = tgPersonServices.QueryPersonByID(int.Parse(sAgendID));
                    TgOrder  to       = new TgOrder();
                    to.OrderID     = order.OrderID;
                    to.PKID        = order.PKID;
                    to.PKName      = order.PKName;
                    to.PlateNo     = order.PlateNo;
                    to.Amount      = order.Amount;
                    to.RealPayTime = payTime;
                    to.PersonId    = person.id;
                    to.PersonName  = person.name;
                    TgOrderService.Addperson(to);
                }

                //if (Request.Cookies["SmartSystem_WeiXinTg_personid"] != null)
                //{

                //}
                WeiXinInerface.ParkingFeeService.DeleteParkingFee(order.PlateNo + order.PKID);
                OnlineOrderServices.PaySuccess(orderId, payTradeNo, payTime, payAccount);
            }
            catch (MyException ex)
            {
                ExceptionsServices.AddExceptionToDbAndTxt("WeiXinPayNotify", "支付通知出错:" + ex.Message, ex, LogFrom.WeiXin);
                //此处记录异常日志
                returnMsg.Return_Code = "FAIL";
                returnMsg.Return_Msg  = ex.Message;
            }
            catch (Exception ex)
            {
                ExceptionsServices.AddExceptionToDbAndTxt("WeiXinPayNotify", "支付通知出错", ex, LogFrom.WeiXin);
                //此处记录异常日志
                returnMsg.Return_Code = "FAIL";
                returnMsg.Return_Msg  = ex.Message;
            }
            Response.Write(returnMsg.ToXmlString());
            Response.End();
        }