/// <summary> /// 更新差旅订单返现状态 /// </summary> /// <param name="OrderId"></param> /// <returns></returns> public int UpdateEnterpriseOrderBackState(EnterpriseOrder _EnterpriseOrder) { #region sql string wherestr = string.Empty; if (!string.IsNullOrEmpty(_EnterpriseOrder.OrderId)) { wherestr += " AND OrderId = @0"; } string sql = string.Format(@" SET BackStatus=1,BackTime=@1,UserInterestRate=@2,UserInterest=@3 WHERE 1 = 1 {0} ", wherestr); #endregion return(CgtTravelDB.GetInstance().Update <EnterpriseOrder>(sql, _EnterpriseOrder.OrderId, DateTime.Now, _EnterpriseOrder.UserInterestRate, _EnterpriseOrder.UserInterest)); }
/// <summary> /// 调用保理订单支付返现 /// </summary> /// <param name="payRemony">数据实体</param> /// <param name="BaoLiServiceUrl">保理接口地址</param> /// <param name="Path">证书路径</param> /// <param name="Pwd">密码</param> /// <param name="MerchantId">商户编号</param> /// <param name="UserKey">key值</param> /// <param name="respons">返回支付返现信息</param> /// <returns>接口返回信息</returns> public ResponsePayAPIMessage BaoLiOrderPayMoney(PayRemoneyImportModel payRemony, UserAccount userAccount, string BaoLiServiceUrl, string Path, string Pwd, string MerchantId, string UserKey, ref ResponsePayModel respons) { respons = new ResponsePayModel(); ResponsePayAPIMessage result = new ResponsePayAPIMessage(); try { #region 乘机人信息 TravelPassenger pmodel = new TravelPassenger(); pmodel.PassengerName = payRemony.person.PersonName; pmodel.PassengerType = payRemony.person.PersonType; pmodel.CertificateNumber = payRemony.person.IdNumber; pmodel.CertificateType = payRemony.person.CardType; pmodel.Birthday = payRemony.person.BrithDay.ToString("yyyy-MM-dd"); pmodel.AirTicketNo = payRemony.person.TicketId; #endregion #region 航段 Voyage vmodel = new Voyage(); vmodel.Departure = payRemony.DepartCode; vmodel.Arrival = payRemony.ArriveCode; vmodel.DepartureTime = payRemony.DepartureTime.ToString(); vmodel.ArrivalTime = payRemony.ArriveTime.ToString(); vmodel.Bunk = payRemony.Cabin; vmodel.Airline = payRemony.AirCompanyCode; vmodel.FlightNo = payRemony.FlightNo; #endregion var item = new RequestBaoLiPayAPIModel { PayUserName = payRemony.PayAccount, IsRemoney = payRemony.IsRemoney.ToString(), UserName = payRemony.RemoneyAccount, OrderId = payRemony.PlateCode, MerchantCode = payRemony.CompanyCode, StartDate = payRemony.StartDate.ToString("yyyy-MM-dd"), TicketTime = payRemony.TicketTime.ToString("yyyy-MM-dd HH:mm:ss"), NotifyUrl = payRemony.CallBackUrl, ReturnUrl = payRemony.TimelyUrl, Rebate = Convert.ToInt32(payRemony.Rebate), RetMoney = Convert.ToInt32(payRemony.SomeRebate), Pnr = payRemony.PNR, OrderPrice = payRemony.OrderPrice.ToString("#0.00"), TicketPrice = payRemony.TicketPrice.ToString("#0.00"), AirPortTax = Convert.ToInt32(payRemony.AirFee), FuelTax = Convert.ToInt32(payRemony.FuelFee), Passenger = pmodel, Voyage = vmodel, TimesTamp = payRemony.TimesTamp, Ip = payRemony.Ip, Mac = payRemony.Mac, UserKey = payRemony.UserKey, EnterpriseID = Convert.ToInt32(payRemony.EnterpriseID), IsValid = true }; PayRequestBaseModel baseModel = apiResult <RequestBaoLiPayAPIModel>(item, Path, Pwd, MerchantId, UserKey); string url = BaoLiServiceUrl + "api/Travel/Pay"; var jsonData = JsonConvert.SerializeObject(baseModel); //var post = HttpRequest.HttpRequestUtility.SendPostRequestCore(url, jsonData, "UTF-8", null); var post = apiPost(url, jsonData); result = JsonConvert.DeserializeObject <ResponsePayAPIMessage>(post); if (result.Status == 100) { var _EnterpriseOrder = new EnterpriseOrder() { OrderId = item.OrderId, UserInterestRate = userAccount.FactoringInterestRate, UserInterest = decimal.Parse(item.TicketPrice) * userAccount.FactoringInterestRate }; enterpriseOrderRep.UpdateEnterpriseOrderBackState(_EnterpriseOrder); } if (!string.IsNullOrEmpty(result.Result)) { respons = JsonConvert.DeserializeObject <ResponsePayModel>(result.Result); } return(result); } catch (Exception ex) { LoggerFactory.Instance.Logger_Error(ex, "ReviewTravelOrderError"); return(result); } }
/// <summary> /// 添加订单和订单风控数据 /// </summary> public void AddEnterpriseOrderAndRiksListPay(int ReviewState) { var EnterpriseOrderList = new List <EnterpriseOrder>(); var EnterpriseOrderRiskList = new List <EnterpriseOrderRisk>(); var financingOrderlist = new List <FinancingOrder>(); foreach (var baseRiskModel in ManageRiskModelBase.baseRiskModelList) { #region 差旅订单实体 var enterpriseOrderModel = new EnterpriseOrder() { OrderId = baseRiskModel.TicketNum, TicketNo = baseRiskModel.TicketNum, PassengerName = baseRiskModel.PersonName, DepartureTime = baseRiskModel.DepartureTime, DepartureCity = baseRiskModel.DepartCode, ReachCity = baseRiskModel.ArriveCode, Pnr = baseRiskModel.PNR, TicketAmount = baseRiskModel.OrderAmount, TicketTime = baseRiskModel.TicketTime, Airline = baseRiskModel.FlightNo.Substring(0, 2), FlightNo = baseRiskModel.FlightNo, PayCenterCode = ManageRiskModelBase.PayCenterCode, PayCenterName = ManageRiskModelBase.PayCenterName, AdvancesId = Convert.ToInt32(ManageRiskModelBase.UserFactoringId), AdvancesName = ManageRiskModelBase.FactoringName, AdvancesEmail = ManageRiskModelBase.FactoringEmail, AdvancesReapalNo = ManageRiskModelBase.FactoringReapalNo, EnterpriseWhiteListID = (int)baseRiskModel.EnterpriseID, CashBackEmial = ManageRiskModelBase.UserName, CashBackReapalNo = ManageRiskModelBase.BackReapalNo, BillDateTime = GetBilldateByMonth(DateTime.Now, int.Parse(ManageRiskModelBase.AccountPeriod)).Item2, BillDate = GetBilldateByMonth(DateTime.Now, int.Parse(ManageRiskModelBase.AccountPeriod)).Item1, FactoringInterestRate = ManageRiskModelBase.InterestRate, UserInterestRate = ManageRiskModelBase.FactoringInterestRate, InsuredAmount = baseRiskModel.OrderAmount * 0.001m, BackTime = null, //==================== EtermStatus = "", IsBackStatus = 1, NoBackReason = "", SuspendedServiceUrl = "", RepaymentStatus = 0, //==================== BackStatus = 0, CreateTime = DateTime.Now, OrderTravelBatchId = ManageRiskModelBase.TravelBatchId, OrderEnterpriseName = baseRiskModel.EnterpriseName, UserInterest = baseRiskModel.OrderAmount * ManageRiskModelBase.FactoringInterestRate }; EnterpriseOrderList.Add(enterpriseOrderModel); #endregion #region 差旅订单风控实体 var enterpriseOrderRiskModel = new EnterpriseOrderRisk() { TravelBatchId = ManageRiskModelBase.TravelBatchId, EOrderId = baseRiskModel.TicketNum, TravelRiskType = 0, TravelRiskState = baseRiskModel.FailReason == "" ? 1 : 0, RiskCreateTime = DateTime.Now, ReviewState = ReviewState, ReviewUserId = 0, ReviewTime = DateTime.Now, FailReason = baseRiskModel.FailReason, RefuseReason = "", }; EnterpriseOrderRiskList.Add(enterpriseOrderRiskModel); #endregion #region 支付体系实体 var financingOrder = new FinancingOrder() { airline = baseRiskModel.FlightNo.Substring(0, 2), departureCity = baseRiskModel.DepartCode, departureTime = baseRiskModel.DepartureTime.ToString(), flightNo = baseRiskModel.FlightNo, orderId = baseRiskModel.TicketNum, orderPrice = baseRiskModel.OrderAmount.ToString(), passengerName = baseRiskModel.PersonName, passengerNo = "", pnr = baseRiskModel.PNR, reachCity = baseRiskModel.ArriveCode, ticketNo = baseRiskModel.TicketNum }; financingOrderlist.Add(financingOrder); #endregion } enterpriseOrderRep.AddEnterpriseOrders(EnterpriseOrderList); enterpriseOrderRiskRep.AddEnterpriseOrderRisks(EnterpriseOrderRiskList); //用户体系保理返现接口 var RemoneyNotifyUrl = JsonConfig.JsonRead("RemoneyNotifyUrl", "CgtPayApi") + "/api/manage/remoney/notify"; var travelBatchRemoney = new TravelBatchRemoneyProcessor( ManageRiskModelBase.UserFactoringId.ToString(), ManageRiskModelBase.FactoringEmail, ManageRiskModelBase.FactoringReapalNo, ManageRiskModelBase.PayCenterCode.ToString(), ManageRiskModelBase.UserName, ManageRiskModelBase.BackReapalNo, financingOrderlist, "企业批量返现订单", "1.1.1.1", GetBilldateByMonth(DateTime.Now, int.Parse(ManageRiskModelBase.AccountPeriod)).Item1.ToString("yyyy-MM-dd"), ManageRiskModelBase.EnterpriseID.ToString(), GetBilldateByMonth(DateTime.Now, int.Parse(ManageRiskModelBase.AccountPeriod)).Item2.ToString(), ManageRiskModelBase.FactoringName, ManageRiskModelBase.PayCenterName, ManageRiskModelBase.EnterpriseName, ManageRiskModelBase.TravelBatchId, RemoneyNotifyUrl ); var travelBatchRemoneyResult = travelBatchRemoney.Execute(); if (!travelBatchRemoneyResult.Success) { LoggerFactory.Instance.Logger_Info(travelBatchRemoneyResult.Message.ToString(), "travelBatchRemoneyResultError"); } }