From 4b5cf1cd4d4ce5189bd04426c1e9f5424319b469 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Mon, 6 May 2024 21:21:08 +0800 Subject: [PATCH] refactor(tenpayv3) --- ...entExecutePartnerTransactionsExtensions.cs | 6 +-- ...obalClientExecuteTransactionsExtensions.cs | 8 ++-- .../Certificates/QueryCertificatesResponse.cs | 15 ++++++- .../Transactions/CloseTransactionResponse.cs | 4 +- .../ReverseTransactionResponse.cs | 2 +- .../ClosePartnerTransactionResponse.cs | 4 +- .../ReversePartnerTransactionResponse.cs | 2 +- .../Global/WechatTenpayGlobalClient.cs | 43 +++++++++++++++++++ .../ClosePayPartnerTransactionResponse.cs | 4 +- 9 files changed, 70 insertions(+), 18 deletions(-) diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Extensions/WechatTenpayGlobalClientExecutePartnerTransactionsExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Extensions/WechatTenpayGlobalClientExecutePartnerTransactionsExtensions.cs index ed5ee24d..37ae24b4 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Extensions/WechatTenpayGlobalClientExecutePartnerTransactionsExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Extensions/WechatTenpayGlobalClientExecutePartnerTransactionsExtensions.cs @@ -30,7 +30,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global IFlurlRequest flurlReq = client .CreateFlurlRequest(request, HttpMethod.Post, "transactions", "app"); - return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + return await ((WechatTenpayClient)client).SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } /// @@ -81,7 +81,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global IFlurlRequest flurlReq = client .CreateFlurlRequest(request, HttpMethod.Post, "transactions", "jsapi"); - return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + return await ((WechatTenpayClient)client).SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } /// @@ -106,7 +106,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global IFlurlRequest flurlReq = client .CreateFlurlRequest(request, HttpMethod.Post, "transactions", "native"); - return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + return await ((WechatTenpayClient)client).SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Extensions/WechatTenpayGlobalClientExecuteTransactionsExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Extensions/WechatTenpayGlobalClientExecuteTransactionsExtensions.cs index a1906cf9..05cd20ea 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Extensions/WechatTenpayGlobalClientExecuteTransactionsExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Extensions/WechatTenpayGlobalClientExecuteTransactionsExtensions.cs @@ -30,7 +30,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global IFlurlRequest flurlReq = client .CreateFlurlRequest(request, HttpMethod.Post, "transactions", "app"); - return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + return await ((WechatTenpayClient)client).SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } /// @@ -55,7 +55,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global IFlurlRequest flurlReq = client .CreateFlurlRequest(request, HttpMethod.Post, "transactions", "mweb"); - return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + return await ((WechatTenpayClient)client).SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } /// @@ -81,7 +81,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global IFlurlRequest flurlReq = client .CreateFlurlRequest(request, HttpMethod.Post, "transactions", "jsapi"); - return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + return await ((WechatTenpayClient)client).SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } /// @@ -106,7 +106,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global IFlurlRequest flurlReq = client .CreateFlurlRequest(request, HttpMethod.Post, "transactions", "native"); - return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + return await ((WechatTenpayClient)client).SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/Certificates/QueryCertificatesResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/Certificates/QueryCertificatesResponse.cs index c425464c..5b587670 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/Certificates/QueryCertificatesResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/Certificates/QueryCertificatesResponse.cs @@ -6,7 +6,20 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global.Models /// 表示 [GET] /certificates 接口的响应。 /// [WechatTenpaySensitive] - public class QueryCertificatesResponse : _ROOT_.Models.QueryCertificatesResponse + public class QueryCertificatesResponse : WechatTenpayGlobalResponse { + public static class Types + { + public class Certificate : _ROOT_.Models.QueryCertificatesResponse.Types.Certificate + { + } + } + + /// + /// 获取或设置微信服务器证书列表。 + /// + [Newtonsoft.Json.JsonProperty("data")] + [System.Text.Json.Serialization.JsonPropertyName("data")] + public Types.Certificate[] CertificateList { get; set; } = default!; } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/Transactions/CloseTransactionResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/Transactions/CloseTransactionResponse.cs index 42a68d09..2e775585 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/Transactions/CloseTransactionResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/Transactions/CloseTransactionResponse.cs @@ -1,11 +1,9 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global.Models { - using _ROOT_ = SKIT.FlurlHttpClient.Wechat.TenpayV3; - /// /// 表示 [POST] /transactions/out-trade-no/{out_trade_no}/close 接口的响应。 /// - public class CloseTransactionResponse : _ROOT_.Models.ClosePayTransactionResponse + public class CloseTransactionResponse : WechatTenpayGlobalResponse { } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/Transactions/ReverseTransactionResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/Transactions/ReverseTransactionResponse.cs index 8add5aef..e3932953 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/Transactions/ReverseTransactionResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/Transactions/ReverseTransactionResponse.cs @@ -3,7 +3,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global.Models /// /// 表示 [POST] /transactions/out-trade-no/{out_trade_no}/reverse 接口的响应。 /// - public class ReverseTransactionResponse : CloseTransactionResponse + public class ReverseTransactionResponse : WechatTenpayGlobalResponse { } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/Transactions/ClosePartnerTransactionResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/Transactions/ClosePartnerTransactionResponse.cs index c3283186..b03d82df 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/Transactions/ClosePartnerTransactionResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/Transactions/ClosePartnerTransactionResponse.cs @@ -1,11 +1,9 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global.Models { - using _ROOT_ = SKIT.FlurlHttpClient.Wechat.TenpayV3; - /// /// 表示 [POST] /transactions/out-trade-no/{out_trade_no}/close 接口的响应。 /// - public class ClosePartnerTransactionResponse : _ROOT_.Models.ClosePayPartnerTransactionResponse + public class ClosePartnerTransactionResponse : WechatTenpayGlobalResponse { } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/Transactions/ReversePartnerTransactionResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/Transactions/ReversePartnerTransactionResponse.cs index 703fdbd7..97b1faf9 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/Transactions/ReversePartnerTransactionResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/Transactions/ReversePartnerTransactionResponse.cs @@ -3,7 +3,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global.Models /// /// 表示 [POST] /transactions/out-trade-no/{out_trade_no}/reverse 接口的响应。 /// - public class ReversePartnerTransactionResponse : ClosePartnerTransactionResponse + public class ReversePartnerTransactionResponse : WechatTenpayGlobalResponse { } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/WechatTenpayGlobalClient.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/WechatTenpayGlobalClient.cs index b3bbcae1..36df8e22 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/WechatTenpayGlobalClient.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/WechatTenpayGlobalClient.cs @@ -1,5 +1,8 @@ using System; using System.Net.Http; +using System.Threading; +using System.Threading.Tasks; +using Flurl.Http; namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global { @@ -54,5 +57,45 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global FlurlClient.BaseUrl = options.Endpoint ?? WechatTenpayGlobalEndpoints.DEFAULT; } + + /// + /// 使用当前客户端生成一个新的 对象。 + /// + /// + /// + /// + /// + public IFlurlRequest CreateFlurlRequest(WechatTenpayGlobalRequest request, HttpMethod httpMethod, params object[] urlSegments) + { + return base.CreateFlurlRequest(request, httpMethod, urlSegments); + } + + /// + /// 异步发起请求。 + /// + /// + /// + /// + /// + /// + public new Task SendFlurlRequestAsync(IFlurlRequest flurlRequest, HttpContent? httpContent = null, CancellationToken cancellationToken = default) + where T : WechatTenpayGlobalResponse, new() + { + return base.SendFlurlRequestAsync(flurlRequest, httpContent, cancellationToken); + } + + /// + /// 异步发起请求。 + /// + /// + /// + /// + /// + /// + public new Task SendFlurlRequestAsJsonAsync(IFlurlRequest flurlRequest, object? data = null, CancellationToken cancellationToken = default) + where T : WechatTenpayGlobalResponse, new() + { + return base.SendFlurlRequestAsJsonAsync(flurlRequest, data, cancellationToken); + } } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PayTransactions/ClosePayPartnerTransactionResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PayTransactions/ClosePayPartnerTransactionResponse.cs index 84caa679..9d74ad54 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PayTransactions/ClosePayPartnerTransactionResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PayTransactions/ClosePayPartnerTransactionResponse.cs @@ -1,9 +1,9 @@ -namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models { /// /// 表示 [POST] /pay/partner/transactions/out-trade-no/{out_trade_no}/close 接口的响应。 /// - public class ClosePayPartnerTransactionResponse : ClosePayTransactionResponse + public class ClosePayPartnerTransactionResponse : WechatTenpayResponse { } }