private void RechargeFail(OrderPaidRecharge orderPaidRecharge) { var iOrderPaidRechargeService = DIFactory.GetContainer().Resolve <IOrderPaidRechargeService>(); orderPaidRecharge.Status = OrderPaidRechargeStatusOption.Fail.ToInt(); iOrderPaidRechargeService.Save(orderPaidRecharge); //orderPaidRecharge.OrderPaid.Status = OrderPaidStatusOption.Cancel.ToInt(); //Save(orderPaidRecharge.OrderPaid); }
private void RechargeSuccess(OrderPaidRecharge orderPaidRecharge, string TransNumber, DateTime TransTime) { var iOrderPaidRechargeService = DIFactory.GetContainer().Resolve <IOrderPaidRechargeService>(); var iMemberService = DIFactory.GetContainer().Resolve <IMemberService>(); orderPaidRecharge.OrderPaid.Status = OrderPaidStatusOption.RechargeSuccess.ToInt(); orderPaidRecharge.OrderPaid.Project.ReceiveAmount += orderPaidRecharge.Amount; Save(orderPaidRecharge.OrderPaid); orderPaidRecharge.Status = OrderPaidRechargeStatusOption.Success.ToInt(); orderPaidRecharge.BankCardNumber = orderPaidRecharge.OrderPaid.Member.BankCardNumber; orderPaidRecharge.TransNumber = TransNumber; orderPaidRecharge.TransTime = TransTime; iOrderPaidRechargeService.Save(orderPaidRecharge); iMemberService.BalanceChange(orderPaidRecharge.OrderPaid.Member, orderPaidRecharge.Amount, MemberBalanceHistoryTypeOption.Recharge, (AccountBankOption)orderPaidRecharge.OrderPaid.Merchant.AccountBank, remark: orderPaidRecharge.SerialNumber); }
/// <summary> /// 充值 /// </summary> /// <returns></returns> public BTrsInResponse Recharge(OrderPaidRecharge orderPaidRecharge) { BTrsInRequest request = new BTrsInRequest(); request.Head.ReqJnlNo = GuidHelper.GenUniqueId(); request.Body.CoPatrnerJnlNo = orderPaidRecharge.SerialNumber; request.Body.TrsDate = DateTime.Now.ToString("yyyyMMdd"); request.Body.CifClientId = orderPaidRecharge.OrderPaid.Member.ClientId; request.Body.Amount = orderPaidRecharge.Amount.ToString(); request.Body.TrsType = "0"; request.Body.Currency = "CNY"; request.Body.Remark = "资金转入"; request.Body.Reserve1 = ""; request.Body.Reserve2 = ""; request.Body.Reserve3 = ""; var result = guangDaExec.Exec(request) as BTrsInResponse; return(result); }
///// <summary> ///// 充值 ///// </summary> ///// <param name="request"></param> ///// <returns></returns> //public void Recharge(string orderNumber) //{ // var iOrderPaidService = DIFactory.GetContainer().Resolve<IOrderPaidService>(); // var orderPaid = iOrderPaidService.Get(t => t.OrderNumber == orderNumber.Trim()); // if (orderPaid == null) // throw new APIException("订单号(" + orderNumber.Trim() + ")不存在"); // if (orderPaid.Status == OrderPaidStatusOption.Default.ToInt()) // { // Recharge(orderPaid); // Freeze(orderPaid); // } // else if (orderPaid.Status == OrderPaidStatusOption.PaySuccess.ToInt()) // { // Freeze(orderPaid); // } // else // { // throw new APIException("当前状态(" + orderPaid.StatusDesc + ")无法操作"); // } //} ///// <summary> ///// 提现 ///// </summary> ///// <param name="request"></param> ///// <returns></returns> //public void Withdraw(string orderNumber) //{ // var iOrderPaidService = DIFactory.GetContainer().Resolve<IOrderPaidService>(); // var orderPaid = iOrderPaidService.Get(t => t.OrderNumber == orderNumber.Trim()); // if (orderPaid == null) // throw new APIException("订单号(" + orderNumber.Trim() + ")不存在"); // if (orderPaid.Status == OrderPaidStatusOption.FrozenSuccess.ToInt()) // { // UnFreeze(orderPaid); // Withdraw(orderPaid); // } // else if (orderPaid.Status == OrderPaidStatusOption.UnFrozenSuccess.ToInt()) // { // Withdraw(orderPaid); // } // else // { // throw new APIException("当前状态(" + orderPaid.StatusDesc + ")无法操作"); // } //} public void Recharge(OrderPaid orderPaid) { if (orderPaid.Status != OrderPaidStatusOption.PaySuccess.ToInt()) { throw new Exception("当前状态不可充值(" + orderPaid.StatusDesc + ")"); } var iOrderPaidRechargeService = DIFactory.GetContainer().Resolve <IOrderPaidRechargeService>(); var iGuangDaAPIService = DIFactory.GetContainer().Resolve <IGuangDaAPIService>(); //var iOrderPaidService = DIFactory.GetContainer().Resolve<IOrderPaidService>(); if (orderPaid.TransactionAmount > orderPaid.Project.ResidueAmount) { throw new Exception("剩余认筹额度不足"); } if (DateTime.Now > orderPaid.Project.Deadline) { throw new Exception("已过截止日期"); } OrderPaidRecharge orderPaidRecharge = new OrderPaidRecharge(); orderPaidRecharge.OrderPaidID = orderPaid.ID; orderPaidRecharge.Amount = orderPaid.TransactionAmount; orderPaidRecharge.Status = OrderPaidRechargeStatusOption.Wait.ToInt(); iOrderPaidRechargeService.Save(orderPaidRecharge); orderPaid.Status = OrderPaidStatusOption.RechargeWait.ToInt(); iOrderPaidRechargeService.Commit(); var rechargeResponse = iGuangDaAPIService.Recharge(orderPaidRecharge); orderPaidRecharge.ResponseCode = rechargeResponse.Head.ResCode; orderPaidRecharge.ResponseMessage = rechargeResponse.Head.ResMsg; if (rechargeResponse.IsOK) { RechargeSuccess(orderPaidRecharge, rechargeResponse.Body.EbankJnlNo, rechargeResponse.Body.CebTrsTime.ToDateTime("yyyy-MM-dd HH:mm:ss")); Commit(); } else if (rechargeResponse.IsWait) { //orderPaid.Status = OrderPaidStatusOption.RechargeWait.ToInt(); //Save(orderPaid); //orderPaidRecharge.Status = OrderPaidRechargeStatusOption.Wait.ToInt(); //iOrderPaidRechargeService.Save(orderPaidRecharge); //Commit(); throw new APIException("充值中,请查询确认(" + rechargeResponse.Head.ResMsg + ")"); } else { RechargeFail(orderPaidRecharge); Commit(); throw new APIException("充值失败:" + rechargeResponse.Head.ResMsg); } }