From 5ce19e37621a1c5a5d1e92280f560be97786594e Mon Sep 17 00:00:00 2001 From: zhengyuxuan <zhengyuxuan1995> Date: 星期二, 18 三月 2025 14:10:45 +0800 Subject: [PATCH] fix:新增微信退款接口 --- LifePayment/LifePayment.Application/LifePay/LifePayService.cs | 29 ++++++++++++++++++++++++++++- 1 files changed, 28 insertions(+), 1 deletions(-) diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs index fc3e010..5338c44 100644 --- a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs +++ b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs @@ -993,6 +993,9 @@ throw new UserFriendlyException("褰撳墠璁㈠崟鐘舵�佹棤娉曢��娆�"); } + /// TODO 閫�娆捐姹傚畬鎴愬悗濡備綍鎿嶄綔 + /// var refundResult = await WxPayDomesticRefunds(order.OrderNo, order.RefundApplyRemark, Convert.ToInt32(order.PayAmount * 100), Convert.ToInt32(order.PayAmount * 100)); + order.PayStatus = LifePayStatusEnum.宸查��娆�; order.LifePayOrderStatus = LifePayOrderStatusEnum.宸查��娆�; order.RefundCredentialsImgUrl = input.RefundCredentialsImgUrl; @@ -1043,6 +1046,26 @@ await _lifePayOrderRepository.UpdateAsync(order); } + public async Task<WxPayDomesticRefundsReponse> WxPayDomesticRefunds(string outTradeNo, string reason, int refund, int total, string currency = "CNY") + { + WxPayDomesticRefundsRequest req = new WxPayDomesticRefundsRequest + { + OutTradeNo = outTradeNo, + OutRefundNo = CreateRefundOrderNo(), + Reason = reason, + Amount = new Model_WxPayDomesticRefunds_Amount + { + Refund = refund, + Total = total, + Currency = "CNY" + }, + NotifyUrl = $"{_wxPayOptions.NotifyUrl}{LifePaymentConstant.WxPayDomesticRefundsNotifySectionUrl}", + }; + + var res = await _wxPayApi.WxPayDomesticRefunds(req); + return res; + } + public async Task<int> AddUpdateUserAccount(AddUpdateUserAccountInput input) { if (input.Id.HasValue) @@ -1064,7 +1087,6 @@ } else { - var repeatAccountContent = await _lifePayAccount.Where(x => x.UserId == input.UserId && x.LifePayType == input.LifePayType && x.Content == input.Content) .FirstOrDefaultAsync(); CheckExtensions.IfTrueThrowUserFriendlyException(repeatAccountContent != null, "鎴峰彿宸插瓨鍦�"); @@ -1240,6 +1262,11 @@ return "JF" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + GlobalRandom.GetRandomNum(4); } + private string CreateRefundOrderNo() + { + return "JFTK" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + GlobalRandom.GetRandomNum(4); + } + private (decimal PayAmont, decimal DiscountAmount, decimal RechargeAmount) CalculateAmount(decimal amount, decimal rate) { /// 姝e父鏀粯 -- Gitblit v1.9.1