zhengyiming
2025-04-01 a3f1926a7530fd4a3b9196824a8e8b00c693e6e3
Merge branch 'dev-lifepay-v1.3' of http://120.26.58.240:8888/r/LifePaymentApi into dev-lifepay-v1.3
9个文件已修改
46 ■■■■ 已修改文件
LifePayment/LifePayment.Application.Contracts/LifePay/LifePayInput.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LifePayment/LifePayment.Application/LifePay/LifePayService.cs 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LifePayment/LifePayment.Domain.Shared/Ali/GetPayQrCodeInput.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LifePayment/LifePayment.Domain/Ali/AliPayApi.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LifePayment/LifePayment.HttpApi/LifePay/AliPayNotifyController.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LifePayment/LifePayment.HttpApi/LifePay/WxPayNotifyController.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LifePayment/LifePayment.Application.Contracts/LifePay/LifePayInput.cs
@@ -652,6 +652,12 @@
}
public class AddLifePayExpensesReceiptsInput
{
    /// <summary>
    /// 退款订单号
    /// </summary>
    public string OutRefundNo { get; set; }
    /// <summary>
    /// 平台订单号
    /// </summary>
LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs
@@ -223,7 +223,6 @@
                var data = new LifePayExpensesReceipts()
                {
                    Id = Guid.NewGuid(),
                    OrderNo = input.OrderNo,
                    OutOrderNo = input.OutOrderNo,
                    LifePayType = input.LifePayType,
                    ExpensesReceiptsType = input.ExpensesReceiptsType,
@@ -238,6 +237,7 @@
                            if (query.Code == AlipayResultCode.Success && (query.TradeStatus == AlipayStatus.TRADESUCCESS
                                || query.TradeStatus == AlipayStatus.TRADECLOSED))
                            {
                                data.OrderNo = input.OrderNo;
                                data.ExtraProperties = JsonConvert.SerializeObject(query);
                                data.FinishTime = Convert.ToDateTime(query.SendPayDate);
                                data.Amount = Convert.ToDecimal(query.TotalAmount);
@@ -246,9 +246,10 @@
                        }
                        else
                        {
                            var query = await _aliPayApi.QueryAlipayTradeRefund(new OrderInQuiryInput() { OutTradeNo = input.OrderNo });
                            var query = await _aliPayApi.QueryAlipayTradeRefund(new OrderInQuiryInput() { OutTradeNo = input.OrderNo, OutRefundNo = input.OutRefundNo });
                            if (query.Code == AlipayResultCode.Success && query.RefundStatus == AlipayRefundStatus.Success)
                            {
                                data.OrderNo = input.OutRefundNo;
                                data.ExtraProperties = JsonConvert.SerializeObject(query);
                                data.FinishTime = Convert.ToDateTime(query.GmtRefundPay);
                                data.Amount = Convert.ToDecimal(query.RefundAmount);
@@ -262,6 +263,7 @@
                            var query = await _wxPayApi.WxPayTradeQuery(input.OrderNo);
                            if (query.TradeState == WxPayStatus.支付成功 || query.TradeState == WxPayStatus.转入退款)
                            {
                                data.OrderNo = input.OrderNo;
                                data.ExtraProperties = JsonConvert.SerializeObject(query);
                                data.FinishTime = Convert.ToDateTime(query.SuccessTime);
                                await _lifePayExpensesReceiptsRepository.InsertAsync(data);
@@ -269,9 +271,10 @@
                        }
                        else
                        {
                            var query = await _wxPayApi.WxPayDomesticRefundsQuery(input.OrderNo);
                            var query = await _wxPayApi.WxPayDomesticRefundsQuery(input.OutRefundNo);
                            if (query.Status == WxPayRefundStatus.退款成功)
                            {
                                data.OrderNo = input.OutRefundNo;
                                data.ExtraProperties = JsonConvert.SerializeObject(query);
                                data.FinishTime = Convert.ToDateTime(query.SuccessTime);
                                await _lifePayExpensesReceiptsRepository.InsertAsync(data);
@@ -316,15 +319,14 @@
                    /// 出账
                    if (item.RefundOrderNo.IsNotNullOrEmpty())
                    {
                        if (input.LifePayType == LifePayTypeEnum.WxPay)
                        {
                            input.OrderNo = item.RefundOrderNo;
                        }
                        input.OutRefundNo = item.OrderNo;
                        input.ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Receipts;
                        await AddLifePayExpensesReceipts(input);
                        input.OutRefundNo = item.RefundOrderNo;
                        input.ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Receipts;
                        await AddLifePayExpensesReceipts(input);
                    }
                }
            }
        }
LifePayment/LifePayment.Application/LifePay/LifePayService.cs
@@ -848,15 +848,18 @@
    /// <returns></returns>
    public async Task<AlipayTradeFastpayRefundQueryResponse> QueryAlipayTradeRefund(OrderInQuiryInput input)
    {
        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);
        var order = await _lifePayOrderRepository.Where(x => x.OrderNo == input.OutTradeNo).FirstOrDefaultAsync();
        if (result.Code == AlipayResultCode.Success && result.RefundStatus == AlipayRefundStatus.Success)
        {
            order.LifePayOrderStatus = LifePayOrderStatusEnum.已退款;
            order.LifePayRefundStatus = LifePayRefundStatusEnum.已退款;
            await _lifePayOrderService.AddLifePayExpensesReceipts(new AddLifePayExpensesReceiptsInput()
            {
                OrderNo = result.OutTradeNo,
                OrderNo = order.RefundOrderNo,
                OutOrderNo = result.TradeNo,
                LifePayType = LifePayTypeEnum.AliPay,
                ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Receipts
LifePayment/LifePayment.Domain.Shared/Ali/GetPayQrCodeInput.cs
@@ -24,6 +24,11 @@
        /// 交易创建时传入的商户订单号
        /// </summary>
        public string OutTradeNo { get; set; }
        /// <summary>
        /// 退款订单号
        /// </summary>
        public string OutRefundNo { get; set; }
    }
    public class AlipayTradeRefundRequest
LifePayment/LifePayment.Domain/Ali/AliPayApi.cs
@@ -56,7 +56,7 @@
        /// <returns></returns>
        public async Task<AlipayTradeFastpayRefundQueryResponse> QueryAlipayTradeRefund(OrderInQuiryInput input)
        {
            AlipayTradeFastpayRefundQueryResponse response = await QueryTradeRefund(input.OutTradeNo, input.OutTradeNo);
            AlipayTradeFastpayRefundQueryResponse response = await QueryTradeRefund(input.OutTradeNo, input.OutRefundNo);
            return response;
        }
LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml
@@ -764,6 +764,11 @@
            充值凭证
            </summary>
        </member>
        <member name="P:LifePayment.Application.Contracts.AddLifePayExpensesReceiptsInput.OutRefundNo">
            <summary>
            退款订单号
            </summary>
        </member>
        <member name="P:LifePayment.Application.Contracts.AddLifePayExpensesReceiptsInput.OrderNo">
            <summary>
            平台订单号
LifePayment/LifePayment.HttpApi/LifePay/AliPayNotifyController.cs
@@ -74,6 +74,7 @@
                    await _lifePayOrderService.AddLifePayExpensesReceipts(new AddLifePayExpensesReceiptsInput()
                    {
                        OrderNo = input.OutTradeNo,
                        OutRefundNo = input.OutBizNo,
                        OutOrderNo = input.TradeNo,
                        LifePayType = LifePayTypeEnum.AliPay,
                        ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Receipts
LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs
@@ -527,6 +527,7 @@
            await _lifePayOrderService.AddLifePayExpensesReceipts(new AddLifePayExpensesReceiptsInput()
            {
                OrderNo = res.OutTradeNo,
                OutRefundNo = res.RefundId,
                OutOrderNo = res.TransactionId,
                LifePayType = LifePayTypeEnum.WxPay,
                ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Expenses,
LifePayment/LifePayment.HttpApi/LifePay/WxPayNotifyController.cs
@@ -115,6 +115,7 @@
                            await _lifePayOrderService.AddLifePayExpensesReceipts(new AddLifePayExpensesReceiptsInput()
                            {
                                OrderNo = wxPayNotice.OutTradeNo,
                                OutRefundNo = wxPayNotice.OutRefundNo,
                                OutOrderNo = wxPayNotice.TransactionId,
                                LifePayType = LifePayTypeEnum.WxPay,
                                ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Receipts,