From d64a364e912bb0d34c3efabd1bdee9a2f6ec0878 Mon Sep 17 00:00:00 2001 From: zhengyuxuan <zhengyuxuan1995> Date: 星期一, 24 三月 2025 14:06:24 +0800 Subject: [PATCH] fix:微信退款bug修复、新增获取渠道折扣接口 --- LifePayment/LifePayment.Application.Contracts/LifePay/LifePayOutput.cs | 5 ++ LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml | 6 +++ LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs | 12 ++++++ LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs | 7 +++ LifePayment/LifePayment.Host/LifePaymentService.HttpApi.xml | 6 +++ LifePayment/LifePayment.Application/LifePay/LifePayService.cs | 24 ++++++++++- LifePayment/LifePayment.Domain.Shared/WeChat/WxPayPostBaseModel.cs | 17 ++++++-- 7 files changed, 69 insertions(+), 8 deletions(-) diff --git a/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs b/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs index e72264b..41279f3 100644 --- a/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs +++ b/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs @@ -143,6 +143,13 @@ /// <returns></returns> Task<List<LifePayRateListOutput>> GetRate(); + + /// <summary> + /// 鑾峰彇娓犻亾鎶樻墸 + /// </summary> + /// <returns></returns> + Task<ChannelRateOutput> GetChannelRate(ChannelsBaseInput input); + /// <summary> /// 鑾峰彇鎵嬬画璐硅垂鐜� /// </summary> diff --git a/LifePayment/LifePayment.Application.Contracts/LifePay/LifePayOutput.cs b/LifePayment/LifePayment.Application.Contracts/LifePay/LifePayOutput.cs index 3fde72d..ef263de 100644 --- a/LifePayment/LifePayment.Application.Contracts/LifePay/LifePayOutput.cs +++ b/LifePayment/LifePayment.Application.Contracts/LifePay/LifePayOutput.cs @@ -935,4 +935,9 @@ /// </summary> public int YesterdayActiveUsers { get; set; } +} + +public class ChannelRateOutput +{ + public decimal ChannlesRate { get; set; } } \ No newline at end of file diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs index 974ebc5..00d63e0 100644 --- a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs +++ b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs @@ -152,6 +152,16 @@ } /// <summary> + /// 鑾峰彇娓犻亾鎶樻墸 + /// </summary> + /// <returns></returns> + public async Task<ChannelRateOutput> GetChannelRate(ChannelsBaseInput input) + { + return _lifePayChannlesRep.Where(x => x.IsDeleted == false && x.ChannlesNum == input.CheckChannelId).Select(x => new ChannelRateOutput() { ChannlesRate = x.ChannlesRate }) + .FirstOrDefault(); + } + + /// <summary> /// 鑾峰彇鎵嬬画璐硅垂鐜� /// </summary> /// <returns></returns> @@ -1327,12 +1337,16 @@ order.LifePayOrderStatus = LifePayOrderStatusEnum.閫�娆句腑; order.LifePayRefundStatus = LifePayRefundStatusEnum.閫�娆句腑; } + else if (wxRefundResult.Message == "璁㈠崟宸插叏棰濋��娆�") + { + order.LifePayOrderStatus = LifePayOrderStatusEnum.宸查��娆�; + order.LifePayRefundStatus = LifePayRefundStatusEnum.宸查��娆�; + } else { order.LifePayOrderStatus = LifePayOrderStatusEnum.寰呴��娆�; order.LifePayRefundStatus = LifePayRefundStatusEnum.寰呴��娆�; } - break; case LifePayTypeEnum.AliPay: var aliRefundResult = await AliTradeRefund(new AlipayTradeRefundRequest() { OutTradeNo = order.OrderNo, RefundAmount = Convert.ToInt32(input.RefundPrice * 100).ToString() }); @@ -1351,7 +1365,7 @@ order.RefundCheckUserId = CurrentUser.Id; order.RefundPrice = input.RefundPrice; - await _lifePayOrderRepository.UpdateAsync(order); + //await _lifePayOrderRepository.UpdateAsync(order); #region 璁板綍鏃ュ織 @@ -1390,6 +1404,10 @@ await _lifePayOrderRepository.UpdateAsync(order); } + else if (order.LifePayOrderStatus == LifePayOrderStatusEnum.宸查��娆� || order.LifePayRefundStatus == LifePayRefundStatusEnum.宸查��娆�) + { + throw new UserFriendlyException("褰撳墠璁㈠崟鏃犳硶閲嶅鐢宠閫�娆�"); + } else { throw new UserFriendlyException("褰撳墠璁㈠崟鐘舵�佹棤娉曠敵璇烽��娆�"); @@ -1411,7 +1429,7 @@ { OutTradeNo = outTradeNo, OutRefundNo = outRefundNo, - Reason = reason, + //Reason = reason, Amount = new Model_WxPayDomesticRefunds_Amount { Refund = refund, diff --git a/LifePayment/LifePayment.Domain.Shared/WeChat/WxPayPostBaseModel.cs b/LifePayment/LifePayment.Domain.Shared/WeChat/WxPayPostBaseModel.cs index 4c235b5..c94907b 100644 --- a/LifePayment/LifePayment.Domain.Shared/WeChat/WxPayPostBaseModel.cs +++ b/LifePayment/LifePayment.Domain.Shared/WeChat/WxPayPostBaseModel.cs @@ -613,11 +613,11 @@ [JsonProperty("out_refund_no")] public string OutRefundNo { get; set; } - /// <summary> - /// 閫�娆惧師鍥� - /// </summary> - [JsonProperty("reason")] - public string Reason { get; set; } + ///// <summary> + ///// 閫�娆惧師鍥� + ///// </summary> + //[JsonProperty("reason")] + //public string Reason { get; set; } /// <summary> /// 閫�娆剧粨鏋滃洖璋僽rl @@ -721,6 +721,13 @@ [JsonProperty("amount")] public Model_WxPayRetuenDomesticRefunds_Amount Amount { get; set; } + + /// <summary> + /// 杩斿洖淇℃伅 + /// </summary> + [JsonProperty("message")] + public string Message { get; set; } + } public class Model_WxPayRetuenDomesticRefunds_Amount: Model_WxPayDomesticRefunds_Amount diff --git a/LifePayment/LifePayment.Host/LifePaymentService.HttpApi.xml b/LifePayment/LifePayment.Host/LifePaymentService.HttpApi.xml index 3a86491..44eb421 100644 --- a/LifePayment/LifePayment.Host/LifePaymentService.HttpApi.xml +++ b/LifePayment/LifePayment.Host/LifePaymentService.HttpApi.xml @@ -104,6 +104,12 @@ </summary> <returns></returns> </member> + <member name="M:LifePayment.HttpApi.LifePayController.GetChannelRate(LifePayment.Domain.Shared.ChannelsBaseInput)"> + <summary> + 鑾峰彇娓犻亾鎶樻墸 + </summary> + <returns></returns> + </member> <member name="M:LifePayment.HttpApi.LifePayController.GetPremium"> <summary> 鑾峰彇鎵嬬画璐硅垂鐜� diff --git a/LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml b/LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml index 1fa69a8..af8a7c3 100644 --- a/LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml +++ b/LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml @@ -130,6 +130,12 @@ </summary> <returns></returns> </member> + <member name="M:LifePayment.Application.Contracts.ILifePayService.GetChannelRate(LifePayment.Domain.Shared.ChannelsBaseInput)"> + <summary> + 鑾峰彇娓犻亾鎶樻墸 + </summary> + <returns></returns> + </member> <member name="M:LifePayment.Application.Contracts.ILifePayService.GetPremium"> <summary> 鑾峰彇鎵嬬画璐硅垂鐜� diff --git a/LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs b/LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs index ed87e63..63d1182 100644 --- a/LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs +++ b/LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs @@ -150,6 +150,18 @@ } /// <summary> + /// 鑾峰彇娓犻亾鎶樻墸 + /// </summary> + /// <returns></returns> + [HttpGet] + [AllowAnonymous] + [ChannelFilter] + public async Task<ChannelRateOutput> GetChannelRate(ChannelsBaseInput input) + { + return await _lifePayService.GetChannelRate(input); + } + + /// <summary> /// 鑾峰彇鎵嬬画璐硅垂鐜� /// </summary> /// <returns></returns> -- Gitblit v1.9.1