From d6af4520eb948a5b1ab1c6c4352d9688513e1713 Mon Sep 17 00:00:00 2001
From: zhengyuxuan <zhengyuxuan1995>
Date: 星期四, 27 三月 2025 16:26:18 +0800
Subject: [PATCH] fix:新增微信支付查询
---
LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml | 16 +++++
LifePayment/LifePayment.Domain/WeChat/WxClient.cs | 2
LifePayment/LifePayment.Domain/WeChat/IWxPayApi.cs | 2
LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs | 26 +++++++-
LifePayment/LifePayment.Domain/Ali/IAliPayApi.cs | 2
LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs | 14 ++++
LifePayment/LifePayment.Domain/Ali/AliPayApi.cs | 11 ++-
LifePayment/LifePayment.Host/LifePaymentService.HttpApi.xml | 11 +++
LifePayment/LifePayment.Domain/WeChat/WxPayApi.cs | 8 ++
LifePayment/LifePayment.Application/LifePay/LifePayService.cs | 27 +++++++-
LifePayment/LifePayment.Domain.Shared/LifePaymentConstant.cs | 4 +
11 files changed, 109 insertions(+), 14 deletions(-)
diff --git a/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs b/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs
index 1a065eb..652dc01 100644
--- a/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs
+++ b/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs
@@ -277,9 +277,21 @@
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
- Task<AlipayTradeQueryResponse> QueryGetAlipayTrade(OrderInQuiryInput input);
+ Task<AlipayTradeQueryResponse> QueryAlipayTrade(OrderInQuiryInput input);
+ /// <summary>
+ /// 鏌ヨ鏀粯瀹濋��娆捐鍗曚俊鎭�
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ Task<AlipayTradeFastpayRefundQueryResponse> QueryAlipayTradeRefund(OrderInQuiryInput input);
+ /// <summary>
+ /// 鏌ヨ寰俊鏀粯璁㈠崟淇℃伅
+ /// </summary>
+ /// <param name="outTradeNo"></param>
+ /// <returns></returns>
+ Task WxPayDomesticRefundsQuery(string outTradeNo);
/// <summary>
/// 璁剧疆鐢熸椿缂磋垂鏀粯绫诲瀷
diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
index 3645623..727e993 100644
--- a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
+++ b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
@@ -821,13 +821,32 @@
}
}
- public async Task<AlipayTradeQueryResponse> QueryGetAlipayTrade(OrderInQuiryInput input)
+ /// <summary>
+ /// 鏌ヨ鏀粯瀹濇敮浠樿鍗曚俊鎭�
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ public async Task<AlipayTradeQueryResponse> QueryAlipayTrade(OrderInQuiryInput input)
{
var result = await _aliPayApi.OrderInQuiry(input);
return result;
}
+ /// <summary>
+ /// 鏌ヨ鏀粯瀹濋��娆捐鍗曚俊鎭�
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ public async Task<AlipayTradeFastpayRefundQueryResponse> QueryAlipayTradeRefund(OrderInQuiryInput input)
+ {
+ var result = await _aliPayApi.QueryAlipayTradeRefund(input);
+ return result;
+ }
+ public async Task WxPayDomesticRefundsQuery(string outTradeNo)
+ {
+ await _wxPayApi.WxPayDomesticRefundsQuery(outTradeNo);
+ }
#endregion
@@ -850,7 +869,7 @@
CheckExtensions.IfTrueThrowUserFriendlyException(channle == null, "娓犻亾涓嶅瓨鍦�");
var repeatOrder = await _lifePayOrderRepository.Where(x => x.LifePayOrderType == LifePayOrderTypeEnum.璇濊垂璁㈠崟 && x.PayStatus == LifePayStatusEnum.宸叉敮浠�
- && x.LifePayOrderStatus == LifePayOrderStatusEnum.鍏呭�间腑 && x.OrderParamDetailJsonStr.Contains(input.ProductData.IspCode)
+ && x.LifePayOrderStatus == LifePayOrderStatusEnum.鍏呭�间腑
&& x.OrderParamDetailJsonStr.Contains(input.ProductData.Phone)).ToListAsync();
CheckExtensions.IfTrueThrowUserFriendlyException(repeatOrder.Count() > 0, "鎮ㄦ湁鍚屾埛鍙疯鍗曟鍦ㄥ厖鍊间腑锛岃鍕块噸澶嶅厖鍊�");
@@ -911,7 +930,7 @@
//var rate = await GetRate();
//CheckExtensions.IfTrueThrowUserFriendlyException(rate.IsNullOrEmpty(), "鏈厤缃姌鎵�");
var repeatOrder = await _lifePayOrderRepository.Where(x => x.LifePayOrderType == LifePayOrderTypeEnum.鐢佃垂璁㈠崟 && x.PayStatus == LifePayStatusEnum.宸叉敮浠�
- && x.LifePayOrderStatus == LifePayOrderStatusEnum.鍏呭�间腑 && x.OrderParamDetailJsonStr.Contains(input.ProductData.ElectricType)
+ && x.LifePayOrderStatus == LifePayOrderStatusEnum.鍏呭�间腑
&& x.OrderParamDetailJsonStr.Contains(input.ProductData.ElectricAccount)).ToListAsync();
CheckExtensions.IfTrueThrowUserFriendlyException(repeatOrder.Count() > 0, "鎮ㄦ湁鍚屾埛鍙疯鍗曟鍦ㄥ厖鍊间腑锛岃鍕块噸澶嶅厖鍊�");
@@ -966,7 +985,7 @@
//var rate = await GetRate();
//CheckExtensions.IfTrueThrowUserFriendlyException(rate.IsNullOrEmpty(), "鏈厤缃姌鎵�");
var repeatOrder = await _lifePayOrderRepository.Where(x => x.LifePayOrderType == LifePayOrderTypeEnum.鐕冩皵璁㈠崟 && x.PayStatus == LifePayStatusEnum.宸叉敮浠�
- && x.LifePayOrderStatus == LifePayOrderStatusEnum.鍏呭�间腑 && x.OrderParamDetailJsonStr.Contains(input.ProductData.GasOrgType)
+ && x.LifePayOrderStatus == LifePayOrderStatusEnum.鍏呭�间腑
&& x.OrderParamDetailJsonStr.Contains(input.ProductData.GasAccount)).ToListAsync();
CheckExtensions.IfTrueThrowUserFriendlyException(repeatOrder.Count() > 0, "鎮ㄦ湁鍚屾埛鍙疯鍗曟鍦ㄥ厖鍊间腑锛岃鍕块噸澶嶅厖鍊�");
diff --git a/LifePayment/LifePayment.Domain.Shared/LifePaymentConstant.cs b/LifePayment/LifePayment.Domain.Shared/LifePaymentConstant.cs
index 3643d64..676634c 100644
--- a/LifePayment/LifePayment.Domain.Shared/LifePaymentConstant.cs
+++ b/LifePayment/LifePayment.Domain.Shared/LifePaymentConstant.cs
@@ -53,8 +53,12 @@
public const string PayTransactionsH5 = "/v3/pay/transactions/h5";
+ public const string WxPayTradeQyery = "/v3/pay/transactions/out-trade-no/{out_trade_no}";
+
public const string WxPayDomesticRefunds = "/v3/refund/domestic/refunds";
+ public const string WxPayDomesticRefundsQuery = "/v3/refund/domestic/refunds/{out_refund_no}";
+
public const string WxPayTradeBillApply = "/v3/fund-app/mch-transfer/elecsign/out-bill-no";
public const string WxPayTradeBillQuery = "/v3/fund-app/mch-transfer/elecsign/out-bill-no/{out_bill_no}";
diff --git a/LifePayment/LifePayment.Domain/Ali/AliPayApi.cs b/LifePayment/LifePayment.Domain/Ali/AliPayApi.cs
index 88c1357..cdeb515 100644
--- a/LifePayment/LifePayment.Domain/Ali/AliPayApi.cs
+++ b/LifePayment/LifePayment.Domain/Ali/AliPayApi.cs
@@ -40,15 +40,20 @@
return response;
}
- public async Task<AlipayTradeQueryResponse> TradeRefundQuiry(OrderInQuiryInput input)
+ /// <summary>
+ /// 鏌ヨ鏀粯瀹濋��娆捐鍗曚俊鎭�
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ public async Task<AlipayTradeFastpayRefundQueryResponse> QueryAlipayTradeRefund(OrderInQuiryInput input)
{
- AlipayTradeQueryResponse response = Factory.Payment.Common().Query(input.OutTradeNo);
+ AlipayTradeFastpayRefundQueryResponse response = await Factory.Payment.Common().QueryRefundAsync(input.OutTradeNo, input.OutTradeNo);
return response;
}
public async Task<AlipayTradeRefundResponse> TradeRefund(AlipayTradeRefundRequest input)
{
- AlipayTradeRefundResponse response = Factory.Payment.Common().Refund(input.OutTradeNo,input.RefundAmount);
+ AlipayTradeRefundResponse response = await Factory.Payment.Common().RefundAsync(input.OutTradeNo,input.RefundAmount);
return response;
}
diff --git a/LifePayment/LifePayment.Domain/Ali/IAliPayApi.cs b/LifePayment/LifePayment.Domain/Ali/IAliPayApi.cs
index fa58cc9..d22903b 100644
--- a/LifePayment/LifePayment.Domain/Ali/IAliPayApi.cs
+++ b/LifePayment/LifePayment.Domain/Ali/IAliPayApi.cs
@@ -12,6 +12,8 @@
Task<AlipayTradeQueryResponse> OrderInQuiry(OrderInQuiryInput input);
+ Task<AlipayTradeFastpayRefundQueryResponse> QueryAlipayTradeRefund(OrderInQuiryInput input);
+
Task<AlipayTradeRefundResponse> TradeRefund(AlipayTradeRefundRequest input);
}
}
\ No newline at end of file
diff --git a/LifePayment/LifePayment.Domain/WeChat/IWxPayApi.cs b/LifePayment/LifePayment.Domain/WeChat/IWxPayApi.cs
index 805ecfc..410e790 100644
--- a/LifePayment/LifePayment.Domain/WeChat/IWxPayApi.cs
+++ b/LifePayment/LifePayment.Domain/WeChat/IWxPayApi.cs
@@ -24,6 +24,8 @@
Task<WxPayDomesticRefundsReponse> WxPayDomesticRefunds(WxPayDomesticRefundsRequest input);
+ Task WxPayDomesticRefundsQuery(string outTradeNo);
+
Task<WxPayTradeBillApplyReponse> WxPayTradeBillApply(WxPayTradeBillApplyRequest input);
Task<WxPayTradeBillQueryReponse> WxPayTradeBillQuery(WxPayTradeBillQueryRequest input);
diff --git a/LifePayment/LifePayment.Domain/WeChat/WxClient.cs b/LifePayment/LifePayment.Domain/WeChat/WxClient.cs
index 61f6131..ea578a8 100644
--- a/LifePayment/LifePayment.Domain/WeChat/WxClient.cs
+++ b/LifePayment/LifePayment.Domain/WeChat/WxClient.cs
@@ -121,6 +121,8 @@
return result;
}
+
+
public async Task<CertificatesReponse> GetCertificates()
{
return await Certificates<CertificatesReponse>(LifePaymentConstant.WxPayCertificates);
diff --git a/LifePayment/LifePayment.Domain/WeChat/WxPayApi.cs b/LifePayment/LifePayment.Domain/WeChat/WxPayApi.cs
index 090020c..39a8ee8 100644
--- a/LifePayment/LifePayment.Domain/WeChat/WxPayApi.cs
+++ b/LifePayment/LifePayment.Domain/WeChat/WxPayApi.cs
@@ -1,5 +1,6 @@
锘縰sing LifePayment.Domain.Shared;
using System.Threading.Tasks;
+using ZeroD.Util.Fadd;
namespace LifePayment.Domain
{
@@ -35,6 +36,13 @@
return result;
}
+ public async Task WxPayDomesticRefundsQuery(string outTradeNo)
+ {
+ var url = $"{string.Format(LifePaymentConstant.WxPayDomesticRefundsQuery, outTradeNo)}";
+ var result = await Certificates<PayTransactionsReponse>(url);
+ //return result;
+ }
+
public async Task<WxPayTradeBillApplyReponse> WxPayTradeBillApply(WxPayTradeBillApplyRequest input)
{
var result = await NomalPostAsync<WxPayTradeBillApplyRequest, WxPayTradeBillApplyReponse>(input, LifePaymentConstant.WxPayTradeBillApply);
diff --git a/LifePayment/LifePayment.Host/LifePaymentService.HttpApi.xml b/LifePayment/LifePayment.Host/LifePaymentService.HttpApi.xml
index 95d56a5..5cd7958 100644
--- a/LifePayment/LifePayment.Host/LifePaymentService.HttpApi.xml
+++ b/LifePayment/LifePayment.Host/LifePaymentService.HttpApi.xml
@@ -260,9 +260,16 @@
<param name="input"></param>
<returns></returns>
</member>
- <member name="M:LifePayment.HttpApi.LifePayController.QueryGetAlipayTrade(LifePayment.Domain.Shared.OrderInQuiryInput)">
+ <member name="M:LifePayment.HttpApi.LifePayController.QueryAlipayTrade(LifePayment.Domain.Shared.OrderInQuiryInput)">
<summary>
- 鏌ヨ鏀粯瀹濊鍗曚俊鎭�
+ 鏌ヨ鏀粯瀹濇敮浠樿鍗曚俊鎭�
+ </summary>
+ <param name="input"></param>
+ <returns></returns>
+ </member>
+ <member name="M:LifePayment.HttpApi.LifePayController.QueryAlipayTradeRefund(LifePayment.Domain.Shared.OrderInQuiryInput)">
+ <summary>
+ 鏌ヨ鏀粯瀹濋��娆捐鍗曚俊鎭�
</summary>
<param name="input"></param>
<returns></returns>
diff --git a/LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml b/LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml
index 1ea656f..8c914a4 100644
--- a/LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml
+++ b/LifePayment/LifePayment.Host/LifePaymentServices.Application.Contracts.xml
@@ -232,13 +232,27 @@
<param name="id"></param>
<returns></returns>
</member>
- <member name="M:LifePayment.Application.Contracts.ILifePayService.QueryGetAlipayTrade(LifePayment.Domain.Shared.OrderInQuiryInput)">
+ <member name="M:LifePayment.Application.Contracts.ILifePayService.QueryAlipayTrade(LifePayment.Domain.Shared.OrderInQuiryInput)">
<summary>
鏌ヨ鏀粯瀹濇敮浠樿鍗曚俊鎭�
</summary>
<param name="input"></param>
<returns></returns>
</member>
+ <member name="M:LifePayment.Application.Contracts.ILifePayService.QueryAlipayTradeRefund(LifePayment.Domain.Shared.OrderInQuiryInput)">
+ <summary>
+ 鏌ヨ鏀粯瀹濋��娆捐鍗曚俊鎭�
+ </summary>
+ <param name="input"></param>
+ <returns></returns>
+ </member>
+ <member name="M:LifePayment.Application.Contracts.ILifePayService.WxPayDomesticRefundsQuery(System.String)">
+ <summary>
+ 鏌ヨ寰俊鏀粯璁㈠崟淇℃伅
+ </summary>
+ <param name="outTradeNo"></param>
+ <returns></returns>
+ </member>
<member name="M:LifePayment.Application.Contracts.ILifePayService.SetLifePayOrderPayType(LifePayment.Domain.Shared.SetLifePayOrderPayTypeInput,System.String)">
<summary>
璁剧疆鐢熸椿缂磋垂鏀粯绫诲瀷
diff --git a/LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs b/LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs
index d3327f8..d0f5172 100644
--- a/LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs
+++ b/LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs
@@ -443,15 +443,35 @@
}
/// <summary>
- /// 鏌ヨ鏀粯瀹濊鍗曚俊鎭�
+ /// 鏌ヨ鏀粯瀹濇敮浠樿鍗曚俊鎭�
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
[AllowAnonymous]
- public async Task<Alipay.EasySDK.Payment.Common.Models.AlipayTradeQueryResponse> QueryGetAlipayTrade(OrderInQuiryInput input)
+ public async Task<Alipay.EasySDK.Payment.Common.Models.AlipayTradeQueryResponse> QueryAlipayTrade(OrderInQuiryInput input)
{
- return await _lifePayService.QueryGetAlipayTrade(input);
+ return await _lifePayService.QueryAlipayTrade(input);
+ }
+
+ /// <summary>
+ /// 鏌ヨ鏀粯瀹濋��娆捐鍗曚俊鎭�
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ [HttpPost]
+ [AllowAnonymous]
+ public async Task<Alipay.EasySDK.Payment.Common.Models.AlipayTradeFastpayRefundQueryResponse> QueryAlipayTradeRefund(OrderInQuiryInput input)
+ {
+ return await _lifePayService.QueryAlipayTradeRefund(input);
+ }
+
+
+ [HttpGet]
+ [AllowAnonymous]
+ public async Task WxPayDomesticRefundsQuery(string outTradeNo)
+ {
+ await _lifePayService.WxPayDomesticRefundsQuery(outTradeNo);
}
#endregion
--
Gitblit v1.9.1