Beispiel #1
0
 /// <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));
 }
Beispiel #2
0
        /// <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);
            }
        }
Beispiel #3
0
        /// <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");
            }
        }