zhengyuxuan
2025-04-01 aff6340db92f4801184db829eccfed93ff6fedb3
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;
@@ -848,7 +849,9 @@
    /// <returns></returns>
    public async Task<AlipayTradeFastpayRefundQueryResponse> QueryAlipayTradeRefund(OrderInQuiryInput input)
    {
        var order = await _lifePayOrderRepository.Where(x => x.OrderNo == input.OutTradeNo).FirstOrDefaultAsync();
        var order = await _lifePayOrderRepository.Where(x => x.OrderNo == input.OutTradeNo || x.RefundOrderNo == input.OutRefundNo).FirstOrDefaultAsync();
        CheckExtensions.IfTrueThrowUserFriendlyException(order == null, "未找到订单信息");
        input.OutTradeNo = order.OrderNo;
        input.OutRefundNo = order.RefundOrderNo;
        var result = await _aliPayApi.QueryAlipayTradeRefund(input);
        if (result.Code == AlipayResultCode.Success && result.RefundStatus == AlipayRefundStatus.Success)
@@ -874,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>
@@ -1447,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;
@@ -1471,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;