LifePayment/LifePayment.Application/LifePay/LifePayService.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
LifePayment/LifePayment.Domain.Shared/LifePaymentConstant.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
LifePayment/LifePayment.Domain.Shared/WeChat/WxPayPostBaseModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
LifePayment/LifePayment.Domain/WeChat/WxpayApiConstant.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
LifePayment/LifePayment.HttpApi/LifePay/WxPayNotifyController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
LifePayment/LifePayment.Application/LifePay/LifePayService.cs
@@ -30,6 +30,7 @@ using static Volo.Abp.Identity.Settings.IdentitySettingNames; using static Microsoft.EntityFrameworkCore.DbLoggerCategory; using LifePayment.Application.LifePay; using Alipay.AopSdk.Core.Domain; namespace LifePayment.Application; @@ -876,7 +877,24 @@ /// <returns></returns> public async Task<WxPayDomesticRefundsQueryReponse> WxPayDomesticRefundsQuery(string outTradeNo) { return await _wxPayApi.WxPayDomesticRefundsQuery(outTradeNo); var order = await _lifePayOrderRepository.Where(x => x.RefundOrderNo == outTradeNo).FirstOrDefaultAsync(); CheckExtensions.IfTrueThrowUserFriendlyException(order == null, "未找到订单信息"); var result = await _wxPayApi.WxPayDomesticRefundsQuery(outTradeNo); if (order.LifePayRefundStatus != LifePayRefundStatusEnum.已退款 && result.Code == WxpayResultCode.Success && result.Status == WxPayRefundStatus.退款成功) { order.LifePayOrderStatus = LifePayOrderStatusEnum.已退款; order.LifePayRefundStatus = LifePayRefundStatusEnum.已退款; await _lifePayOrderService.AddLifePayExpensesReceipts(new AddLifePayExpensesReceiptsInput() { OrderNo = order.OrderNo, OutRefundNo = order.RefundOrderNo, OutOrderNo = order.OutOrderNo, LifePayType = LifePayTypeEnum.AliPay, ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Receipts }); } return result; } /// <summary> @@ -1449,20 +1467,26 @@ { case LifePayTypeEnum.WxPay: var wxRefundResult = await WxPayDomesticRefunds(order.OrderNo, outRefundNo, order.RefundApplyRemark, Convert.ToInt32(input.RefundPrice * 100), Convert.ToInt32(order.PayAmount * 100)); if (wxRefundResult.Status == "SUCCESS") if (wxRefundResult.Status == WxpayRefundResultStatus.SUCCESS) { order.RefundOrderNo = outRefundNo; order.LifePayOrderStatus = LifePayOrderStatusEnum.退款中; order.LifePayRefundStatus = LifePayRefundStatusEnum.退款中; } else if (wxRefundResult.Status == WxpayRefundResultStatus.PROCESSING) { order.RefundOrderNo = outRefundNo; order.LifePayOrderStatus = LifePayOrderStatusEnum.退款中; order.LifePayRefundStatus = LifePayRefundStatusEnum.退款中; } else if (wxRefundResult.Status.IsNullOrEmpty() && wxRefundResult.Message == WxpayRefundResultMessage.FullRefund) { order.LifePayOrderStatus = LifePayOrderStatusEnum.已退款; order.LifePayRefundStatus = LifePayRefundStatusEnum.已退款; } else if (wxRefundResult.Status == "PROCESSING") { order.LifePayOrderStatus = LifePayOrderStatusEnum.退款中; order.LifePayRefundStatus = LifePayRefundStatusEnum.退款中; } else { order.LifePayOrderStatus = LifePayOrderStatusEnum.待退款; order.LifePayRefundStatus = LifePayRefundStatusEnum.待退款; throw new UserFriendlyException("退款失败:" + wxRefundResult.Message); } break; @@ -1473,13 +1497,13 @@ throw new UserFriendlyException("退款失败:" + aliRefundResult.SubMsg); } order.RefundOrderNo = outRefundNo; order.LifePayOrderStatus = LifePayOrderStatusEnum.退款中; order.LifePayRefundStatus = LifePayRefundStatusEnum.退款中; break; default: throw new UserFriendlyException("退款失败"); } order.RefundOrderNo = outRefundNo; order.RefundCredentialsImgUrl = input.RefundCredentialsImgUrl; order.RefundCheckRemark = input.RefundCheckRemark; order.RefundTime = DateTime.Now; LifePayment/LifePayment.Domain.Shared/LifePaymentConstant.cs
@@ -1396,6 +1396,6 @@ } } } LifePayment/LifePayment.Domain.Shared/WeChat/WxPayPostBaseModel.cs
@@ -728,6 +728,9 @@ [JsonProperty("message")] public string Message { get; set; } [JsonProperty("code")] public string Code { get; set; } } public class Model_WxPayRetuenDomesticRefunds_Amount: Model_WxPayDomesticRefunds_Amount LifePayment/LifePayment.Domain/WeChat/WxpayApiConstant.cs
New file @@ -0,0 +1,27 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace LifePayment.Domain { public class WxpayApiConstant { } public class WxpayRefundResultMessage { public const string FullRefund = "订单已全额退款"; } public class WxpayRefundResultStatus { public const string SUCCESS = "SUCCESS"; public const string PROCESSING = "PROCESSING"; } public class WxpayResultCode { public const string Success = "10000"; public const string Fail = "40004"; } } LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs
@@ -1,6 +1,7 @@ using Alipay.AopSdk.F2FPay.Model; using LifePayment.Application.Contracts; using LifePayment.Application.LifePay; using LifePayment.Domain; using LifePayment.Domain.Common; using LifePayment.Domain.Shared; using Microsoft.AspNetCore.Authorization; @@ -524,16 +525,20 @@ public async Task<WxPayDomesticRefundsQueryReponse> WxPayDomesticRefundsQuery(string outTradeNo) { var res = await _lifePayService.WxPayDomesticRefundsQuery(outTradeNo); await _lifePayOrderService.AddLifePayExpensesReceipts(new AddLifePayExpensesReceiptsInput() if (res.Code == WxpayResultCode.Success) { OrderNo = res.OutTradeNo, OutRefundNo = res.RefundId, OutOrderNo = res.TransactionId, LifePayType = LifePayTypeEnum.WxPay, ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Expenses, Amount = Convert.ToDecimal(res.Amount.Total) }); await _lifePayOrderService.AddLifePayExpensesReceipts(new AddLifePayExpensesReceiptsInput() { OrderNo = res.OutTradeNo, OutRefundNo = res.RefundId, OutOrderNo = res.TransactionId, LifePayType = LifePayTypeEnum.WxPay, ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Expenses, Amount = Convert.ToDecimal(res.Amount.Total) }); } return res; } /// <summary> LifePayment/LifePayment.HttpApi/LifePay/WxPayNotifyController.cs
@@ -102,10 +102,7 @@ if (wxPayNotice.OutTradeNo.Contains("JF")) { if (wxPayNotice.RefundStatus == LifePaymentConstant.WxPayRefundStatus.退款成功) { } switch (wxPayNotice.RefundStatus) { case LifePaymentConstant.WxPayRefundStatus.退款成功: