zhengyiming
2025-04-01 7f36c8b49b888cbf440ea400336a11abf4cab018
Merge branch 'dev-lifepay-v1.3' of http://120.26.58.240:8888/r/LifePaymentApi into dev-lifepay-v1.3
5个文件已修改
1个文件已添加
102 ■■■■ 已修改文件
LifePayment/LifePayment.Application/LifePay/LifePayService.cs 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LifePayment/LifePayment.Domain.Shared/LifePaymentConstant.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
LifePayment/LifePayment.Domain.Shared/WeChat/WxPayPostBaseModel.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LifePayment/LifePayment.Domain/WeChat/WxpayApiConstant.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LifePayment/LifePayment.HttpApi/LifePay/WxPayNotifyController.cs 5 ●●●● 补丁 | 查看 | 原始文档 | 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.退款成功: