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); }