public HttpResponseMessage SmsOrderStatus([FromUri] SmsOrderStatusRequest request)
        {
            logInfo.Info(string.Format("获取短信充值状态修改接口请求串:{0}", Request.RequestUri));
            var viewModel = new BaseViewModel();

            if (!ModelState.IsValid)
            {
                viewModel.BusinessStatus = -10000;
                string msg = ModelState.Values.Where(item => item.Errors.Count == 1).Aggregate(string.Empty, (current, item) => current + (item.Errors[0].ErrorMessage + ";   "));
                viewModel.StatusMessage = "输入参数错误," + msg;
                return(viewModel.ResponseToJson());
            }
            var response = _smsService.SmsOrderStatus(request, Request.GetQueryNameValuePairs());

            logInfo.Info("获取短信充值状态修改接口返回值" + response.ToJson());
            if (response.Status == HttpStatusCode.BadRequest || response.Status == HttpStatusCode.Forbidden)
            {
                viewModel.BusinessStatus = -10001;
                viewModel.StatusMessage  = "参数校验错误,请检查您的校验码";
                return(viewModel.ResponseToJson());
            }
            if (response.Status == HttpStatusCode.ExpectationFailed)
            {
                viewModel.BusinessStatus = -10002;
                viewModel.StatusMessage  = response.ErrMsg;//充值订单修改状态失败
                return(viewModel.ResponseToJson());
            }
            if (response.Status == HttpStatusCode.OK)
            {
                viewModel.BusinessStatus = 1;
                viewModel.StatusMessage  = response.ErrMsg; //充值订单修改状态失败
            }
            else
            {
                viewModel.BusinessStatus = -10002;
                viewModel.StatusMessage  = response.ErrMsg;//充值订单修改状态失败
            }

            return(viewModel.ResponseToJson());
        }
        /// <summary>
        /// 更新短信充值订单状态
        /// </summary>
        /// <param name="request"></param>
        /// <param name="pairs"></param>
        /// <returns></returns>
        public GetSmsOrderStatusResponse SmsOrderStatus(SmsOrderStatusRequest request, IEnumerable <KeyValuePair <string, string> > pairs)
        {
            var response = new GetSmsOrderStatusResponse();
            //参数校验
            //bx_agent agentModel = GetAgent(request.Agent);
            //if (agentModel == null)
            //{
            //    response.Status = HttpStatusCode.Forbidden;
            //    return response;
            //}
            //if (!ValidateReqest(pairs, agentModel.SecretKey, request.SecCode))
            //{
            //    response.Status = HttpStatusCode.Forbidden;
            //    return response;
            //}

            var orderItem = _smsOrderRepository.Find(request.OrderNum);

            if (orderItem != null)
            {
                int orderStatusBak = orderItem.OrderStatus;//备份订单当前状态,如果短信更新失败,则还原状态
                if (request.OrderStatus == 2)
                {
                    if (orderItem.OrderStatus > 1)
                    {
                        response.Status = HttpStatusCode.ExpectationFailed;
                        response.Count  = 0;
                        response.ErrMsg = "状态修改失败,订单已支付";
                        logError.Info("状态修改失败,订单已支付,订单信息:" + request.ToJson());
                        return(response);
                    }
                    if (string.IsNullOrEmpty(request.TradeNo))
                    {
                        response.Status = HttpStatusCode.ExpectationFailed;
                        response.Count  = 0;
                        response.ErrMsg = "状态修改失败";
                        logError.Info("状态修改失败,订单信息:" + request.ToJson());
                        return(response);
                    }
                    orderItem.PayDateTime       = DateTime.Now;
                    orderItem.ThirdPartOrderNum = request.TradeNo;
                }
                //更新短信订状态和支付时间
                orderItem.OrderStatus = request.OrderStatus;
                int orderUpdateCount = _smsOrderRepository.Update(orderItem);
                //订单状态更新成功
                if (orderUpdateCount > 0)
                {
                    //如果是支付成功,则开始充值
                    if (request.OrderStatus == 2)
                    {
                        int countRecharge = SmsRecharge(orderItem.Id, orderItem.AgentId, orderItem.SmsQuantity);
                        if (countRecharge > 0)
                        {
                            response.Status = HttpStatusCode.OK;
                            response.Count  = countRecharge;
                            response.ErrMsg = "短信充值成功";
                            logInfo.Info("短信充值成功,订单信息:" + request.ToJson());
                        }
                        else
                        {
                            response.Status = HttpStatusCode.ExpectationFailed;
                            response.Count  = 0;

                            //充值失败,还原订单状态
                            orderItem.OrderStatus = orderStatusBak;
                            _smsOrderRepository.Update(orderItem);
                            response.ErrMsg = "短信充值失败";
                            logError.Info("短信充值失败,订单信息:" + request.ToJson());
                        }
                    }
                    else
                    {
                        response.Status = HttpStatusCode.OK;
                        response.ErrMsg = "状态修改成功";
                        logInfo.Info("状态修改成功,订单信息:" + request.ToJson());
                    }
                }
                //失败
                else
                {
                    response.Status = HttpStatusCode.ExpectationFailed;
                    response.Count  = 0;
                    response.ErrMsg = "状态修改失败";
                    logError.Info("状态修改失败,订单信息:" + request.ToJson());
                }
            }

            return(response);
        }