Example #1
0
        public List <string> HelloWorld(int orderCount, TicketTargetType ticketTarget)
        {
            Stopwatch sw = new Stopwatch();

            sw.Start();


            try
            {
                string strQPRReq = String.Format("{0},{1}", orderCount, ticketTarget.ToString());
                string strLog    = String.Format("Req:{0}:{{{1}}}", RequestIP, strQPRReq);
                _log.Info(strLog);
            }
            catch (Exception ex)
            {
                string strLogErr = String.Format("Req Log Exception:{0}", ex.Message);
                _log.Error(strLogErr);
            }

            List <string> resultList = new List <string>();

            try
            {
                StressTestHelper sth = new StressTestHelper();

                List <WebPayResultRespondVo> webPayResultRespondVoList = sth.FillPayedWebOrder(orderCount, ticketTarget);

                foreach (WebPayResultRespondVo eachWebPayResultRespondVo in webPayResultRespondVoList)
                {
                    string eachResult = String.Format("{0}|{1}", eachWebPayResultRespondVo.TradeNo, eachWebPayResultRespondVo.Voucher);
                    resultList.Add(eachResult);
                }
            }
            catch (Exception ex)
            {
                _log.Error(ex.Message);
            }

            try
            {
                string strQPRResp = resultList.Count.ToString();
                string strLog     = String.Format("Resp:{{{0}}}", strQPRResp);

                _log.Info(strLog);
            }
            catch (Exception ex)
            {
                string strLogErr = String.Format("Resp Log Exception:{0}", ex.Message);
                _log.Error(strLogErr);
            }

            sw.Stop();
            TimeSpan ts = sw.Elapsed;

            _log.Debug(ts.TotalMilliseconds);

            return(resultList);
        }
 public WebOrderRespondVo(WebOrder webOrder)
 {
     if (null != webOrder)
     {
         TradeNo               = webOrder.TradeNo;
         ExternalTradeNo       = webOrder.ExternalTradeNo;
         BuyTime               = webOrder.BuyTime;
         IsWebOrderVaild       = true;
         PaymentVendor         = webOrder.PaymentVendor;
         OriAFCStationCode     = webOrder.OriAFCStationCode;
         DesAFCStationCode     = webOrder.DesAFCStationCode;
         OriStationChineseName = String.Empty;
         DesStationChineseName = String.Empty;
         OriStationEnglishName = String.Empty;
         DesStationEnglishName = String.Empty;
         TicketPrice           = webOrder.TicketPrice;
         TicketNum             = webOrder.TicketNum;
         Discount              = webOrder.Discount;
         ActualFee             = 0;
         if (null != webOrder.ActualFee)
         {
             ActualFee = webOrder.ActualFee.Value;
         }
         TicketTarget = TicketTargetType.NONE;
         if (!String.IsNullOrEmpty(webOrder.TicketTarget))
         {
             try
             {
                 TicketTarget = EnumHelper.GetTicketTargetType(webOrder.TicketTarget);
             }
             catch (Exception)
             { }
         }
         TransactionId = webOrder.TransactionId;
         PayEndTime    = webOrder.PayEndTime;
         //// 临时处理
         //ExpiryTime = new DateTime();
         Voucher       = String.Empty;
         TicketTakeNum = 0;
         if (null != webOrder.TicketTakeNum)
         {
             TicketTakeNum = webOrder.TicketTakeNum.Value;
             IsUsed        = true;
         }
         UsedTime    = webOrder.TicketTakeTime;
         OrderStatus = OrderStatusType.None;
         try
         {
             OrderStatus = EnumHelper.GetOrderStatusTypeByFlagString(webOrder.OrderStatus);
         }
         catch (Exception)
         { }
         OrderStep = EnumHelper.GetWebOrderStep(webOrder.Step);
     }
 }
Example #3
0
        /// <summary>
        /// 填充已支付网络订单
        /// </summary>
        /// <param name="orderCount"></param>
        /// <param name="ticketTarget"></param>
        /// <returns></returns>
        public List <WebPayResultRespondVo> FillPayedWebOrder(int orderCount, TicketTargetType ticketTarget)
        {
            List <WebPayResultRespondVo> result = new List <WebPayResultRespondVo>();

            string strUserOpenId  = "UserOpenId";
            string strUserAccount = "UserAccount";

            try
            {
                //VoucherBo vb = new VoucherBo();
                //vb.FillNewVoucher(orderCount, DateTime.Now, DateTime.Now.AddYears(1));

                WebPreOrderBo wbo                = new WebPreOrderBo();
                string        webTradeNo         = String.Empty;
                string        webExternalTradeNo = Guid.NewGuid().ToString();


                for (int orderIndex = 1; orderIndex <= orderCount; orderIndex++)
                {
                    webExternalTradeNo = Guid.NewGuid().ToString();

                    #region 获得 商家订单号


                    int amount = 400;
                    WebTradeNoRequestVo newWebTradeNoRequestVo = new WebTradeNoRequestVo()
                    {
                        ExternalTradeNo   = webExternalTradeNo,
                        BuyTime           = DateTime.Now,
                        OperationCode     = String.Empty,
                        CityCode          = "020",
                        DeviceId          = String.Empty,
                        ChannelType       = String.Empty,
                        PaymentVendor     = String.Empty,
                        OriAFCStationCode = "0101",
                        DesAFCStationCode = "0102",
                        TicketPrice       = 200,
                        TicketNum         = 2,
                        Discount          = 1,
                        Amount            = amount,
                        TicketTarget      = ticketTarget,
                        UserOpenId        = strUserOpenId,
                        UserAccount       = strUserAccount
                    };

                    //Console.WriteLine("WebTradeNoRespondVo");
                    WebTradeNoRespondVo webTradeNoRespondVo = wbo.GetTradeNo(newWebTradeNoRequestVo);
                    //Console.WriteLine(webTradeNoRespondVo.IsSuccess);
                    //Console.WriteLine(webTradeNoRespondVo.WebOrderId);
                    //Console.WriteLine(webTradeNoRespondVo.TradeNo);
                    //Console.WriteLine(webTradeNoRespondVo.IsVaild);
                    //Console.WriteLine(webTradeNoRespondVo.StepStatus);

                    webTradeNo = webTradeNoRespondVo.TradeNo;

                    #endregion 获得 商家订单号

                    #region 记录 预支付交易会话标识
                    string             testPrepayId       = Guid.NewGuid().ToString();
                    WebPrePayRequestVo webPrePayRequestVo = new WebPrePayRequestVo();
                    webPrePayRequestVo.WebOrderId = null;
                    webPrePayRequestVo.TradeNo    = webTradeNo;
                    webPrePayRequestVo.PrepayId   = testPrepayId;

                    //Console.WriteLine("WebPrePayRespondVo");
                    WebPrePayRespondVo webPrePayRespondVo = wbo.PrePayRecord(webPrePayRequestVo);
                    //Console.WriteLine(webPrePayRespondVo.IsSuccess);
                    //Console.WriteLine(webPrePayRespondVo.WebOrderId);
                    //Console.WriteLine(webPrePayRespondVo.TradeNo);
                    //Console.WriteLine(webPrePayRespondVo.ExternalTradeNo);
                    //Console.WriteLine(webPrePayRespondVo.StepStatus);

                    #endregion 记录 预支付交易会话标识


                    #region 支付异步结果记录
                    WebPayResultRequestVo webPayResultRequestVo = new WebPayResultRequestVo();
                    webPayResultRequestVo.TradeNo       = webTradeNo;
                    webPayResultRequestVo.TransactionId = Guid.NewGuid().ToString();
                    webPayResultRequestVo.PayEndTime    = DateTime.Now.ToString("yyyyMMddHHmmss");
                    webPayResultRequestVo.BankType      = "BankType";
                    webPayResultRequestVo.ActualFee     = amount;
                    webPayResultRequestVo.ErrCodeDes    = String.Empty;
                    webPayResultRequestVo.IsSuccess     = true;
                    webPayResultRequestVo.UserOpenId    = strUserOpenId;
                    webPayResultRequestVo.UserAccount   = strUserAccount;

                    //Console.WriteLine("WebPayResultRequestVo");
                    WebPayResultRespondVo webPayResultRespondVo = wbo.PayResultRecord(webPayResultRequestVo);
                    //Console.WriteLine(webPayResultRespondVo.IsSuccess);
                    //Console.WriteLine(webPayResultRespondVo.WebOrderId);
                    //Console.WriteLine(webPayResultRespondVo.TradeNo);
                    //Console.WriteLine(webPayResultRespondVo.ExternalTradeNo);
                    //Console.WriteLine(webPayResultRespondVo.OriAFCStationCode);
                    //Console.WriteLine(webPayResultRespondVo.DesAFCStationCode);
                    //Console.WriteLine(webPayResultRespondVo.TicketPrice);
                    //Console.WriteLine(webPayResultRespondVo.TicketNum);
                    //Console.WriteLine(webPayResultRespondVo.Discount);
                    //Console.WriteLine(webPayResultRespondVo.PayEndTime);
                    //Console.WriteLine(webPayResultRespondVo.TicketTarget.ToString());
                    //Console.WriteLine(webPayResultRespondVo.Voucher);
                    //Console.WriteLine(webPayResultRespondVo.StepStatus);

                    #endregion 支付异步结果记录

                    result.Add(webPayResultRespondVo);
                    _log.Debug(result.Count);
                }
            }
            catch (Exception ex)
            {
                _log.Error(ex.Message);
            }

            return(result);
        }
Example #4
0
        /// <summary>
        /// 通用订单查询
        /// </summary>
        /// <param name="isQueryUsedTime">查询使用时间标识,启用时查询已使用订单的使用时间,不启用查询所有订单的购买时间</param>
        /// <param name="fromTime"></param>
        /// <param name="toTime"></param>
        /// <param name="paymentVendor">必须为“1001”或“1002”,空字符串或null包含所有</param>
        /// <param name="ticketOrderType">购票方式,为None时同时查询车站和网络2种类型</param>
        /// <param name="ticketTarget">车票使用目标设备类型,为None时查询所有</param>
        /// <returns></returns>
        public List <CommonOrderVo> CommonOrderQuery(bool isQueryUsedTime, DateTime fromTime, DateTime toTime, string paymentVendor, OrderType ticketOrderType, TicketTargetType ticketTarget)
        {
            List <CommonOrderVo> commonOrderList = new List <CommonOrderVo>();

            try
            {
                if (String.IsNullOrEmpty(paymentVendor) ||
                    paymentVendor.Equals("1001") ||
                    paymentVendor.Equals("1002"))
                {
                    switch (ticketOrderType)
                    {
                    case OrderType.None:
                    {
                        StationOrderBo       stationOrderBo         = new StationOrderBo();
                        List <CommonOrderVo> stationCommonOrderList = stationOrderBo.CommonOrderQuery(isQueryUsedTime, fromTime, toTime, paymentVendor);
                        commonOrderList.AddRange(stationCommonOrderList);

                        WebPreOrderBo        webPreOrderBo      = new WebPreOrderBo();
                        List <CommonOrderVo> webCommonOrderList = webPreOrderBo.CommonOrderQuery(isQueryUsedTime, fromTime, toTime, paymentVendor, ticketTarget);
                        commonOrderList.AddRange(webCommonOrderList);

                        break;
                    }

                    case OrderType.StationOrder:
                    {
                        StationOrderBo stationOrderBo = new StationOrderBo();
                        commonOrderList = stationOrderBo.CommonOrderQuery(isQueryUsedTime, fromTime, toTime, paymentVendor);

                        break;
                    }

                    case OrderType.WebOrder:
                    {
                        WebPreOrderBo webPreOrderBo = new WebPreOrderBo();
                        commonOrderList = webPreOrderBo.CommonOrderQuery(isQueryUsedTime, fromTime, toTime, paymentVendor, ticketTarget);

                        break;
                    }
                    }
                }
            }
            catch (Exception ex)
            {
                _log.Error(ex.Message);
                if (null != ex.InnerException)
                {
                    _log.Error(ex.InnerException.Message);
                }
            }

            return(commonOrderList);
        }
Example #5
0
        public static TicketTargetType GetTicketTargetType(string ticketTargetTypeString)
        {
            TicketTargetType ticketTargetType = (TicketTargetType)Enum.Parse(typeof(TicketTargetType), ticketTargetTypeString);

            return(ticketTargetType);
        }