From a3f1926a7530fd4a3b9196824a8e8b00c693e6e3 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期二, 01 四月 2025 11:11:50 +0800
Subject: [PATCH] Merge branch 'dev-lifepay-v1.3' of http://120.26.58.240:8888/r/LifePaymentApi into dev-lifepay-v1.3

---
 LifePayment/LifePayment.Domain.Shared/Ali/GetPayQrCodeInput.cs             |    5 +++++
 LifePayment/LifePayment.HttpApi/LifePay/WxPayNotifyController.cs           |    1 +
 LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml |    5 +++++
 LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs         |   18 ++++++++++--------
 LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs               |    1 +
 LifePayment/LifePayment.Application.Contracts/LifePay/LifePayInput.cs      |    6 ++++++
 LifePayment/LifePayment.Domain/Ali/AliPayApi.cs                            |    2 +-
 LifePayment/LifePayment.Application/LifePay/LifePayService.cs              |    7 +++++--
 LifePayment/LifePayment.HttpApi/LifePay/AliPayNotifyController.cs          |    1 +
 9 files changed, 35 insertions(+), 11 deletions(-)

diff --git a/LifePayment/LifePayment.Application.Contracts/LifePay/LifePayInput.cs b/LifePayment/LifePayment.Application.Contracts/LifePay/LifePayInput.cs
index 11f4cf1..408752d 100644
--- a/LifePayment/LifePayment.Application.Contracts/LifePay/LifePayInput.cs
+++ b/LifePayment/LifePayment.Application.Contracts/LifePay/LifePayInput.cs
@@ -652,6 +652,12 @@
 }
 public class AddLifePayExpensesReceiptsInput
 {
+
+    /// <summary>
+    /// 閫�娆捐鍗曞彿
+    /// </summary>
+    public string OutRefundNo { get; set; }
+
     /// <summary>
     /// 骞冲彴璁㈠崟鍙�
     /// </summary>
diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs
index eee8553..856e067 100644
--- a/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs
+++ b/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);
                     }
-
                 }
             }
         }
diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
index 8053980..8d5907a 100644
--- a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
+++ b/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
diff --git a/LifePayment/LifePayment.Domain.Shared/Ali/GetPayQrCodeInput.cs b/LifePayment/LifePayment.Domain.Shared/Ali/GetPayQrCodeInput.cs
index b98c786..5a5b401 100644
--- a/LifePayment/LifePayment.Domain.Shared/Ali/GetPayQrCodeInput.cs
+++ b/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
diff --git a/LifePayment/LifePayment.Domain/Ali/AliPayApi.cs b/LifePayment/LifePayment.Domain/Ali/AliPayApi.cs
index b3f7f32..e989244 100644
--- a/LifePayment/LifePayment.Domain/Ali/AliPayApi.cs
+++ b/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;
         }
 
diff --git a/LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml b/LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml
index 20f824c..1d5df00 100644
--- a/LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml
+++ b/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>
             骞冲彴璁㈠崟鍙�
diff --git a/LifePayment/LifePayment.HttpApi/LifePay/AliPayNotifyController.cs b/LifePayment/LifePayment.HttpApi/LifePay/AliPayNotifyController.cs
index 0d20883..9d79c31 100644
--- a/LifePayment/LifePayment.HttpApi/LifePay/AliPayNotifyController.cs
+++ b/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
diff --git a/LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs b/LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs
index e3060bb..dca8f91 100644
--- a/LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs
+++ b/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,
diff --git a/LifePayment/LifePayment.HttpApi/LifePay/WxPayNotifyController.cs b/LifePayment/LifePayment.HttpApi/LifePay/WxPayNotifyController.cs
index bfec02f..afb1d87 100644
--- a/LifePayment/LifePayment.HttpApi/LifePay/WxPayNotifyController.cs
+++ b/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,

--
Gitblit v1.9.1