mirror of
https://gitee.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat.git
synced 2025-07-16 16:50:43 +08:00
feat(tenpayv3): WechatTenpayGlobalClient
不再继承自 WechatTenpayClient
This commit is contained in:
parent
827a32ee0b
commit
acdc13a8cf
@ -0,0 +1,9 @@
|
||||
using System.Reflection;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Constants
|
||||
{
|
||||
internal class AssemblyProps
|
||||
{
|
||||
public static readonly string VERSION = Assembly.GetAssembly(typeof(AssemblyProps))!.GetName()!.Version!.ToString();
|
||||
}
|
||||
}
|
@ -28,7 +28,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
public static T DecryptEventResource<T>(this WechatTenpayGlobalClient client, WechatTenpayGlobalEvent webhookEvent)
|
||||
where T : WechatTenpayGlobalEvent.Types.IDecryptedResource, new()
|
||||
{
|
||||
return WechatTenpayClientEventDecryptionExtensions.DecryptEventResource<T>(client, webhookEvent.Resource);
|
||||
return WechatTenpayClientEventDecryptionExtensions.DecryptEventResource<T>(client.ProxyClient, webhookEvent.Resource);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -41,7 +41,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
public static T DecryptEventResource<T>(this WechatTenpayGlobalClient client, WechatTenpayGlobalEvent.Types.Resource webhookEventResource)
|
||||
where T : WechatTenpayGlobalEvent.Types.IDecryptedResource, new()
|
||||
{
|
||||
return WechatTenpayClientEventDecryptionExtensions.DecryptEventResource<T>(client, webhookEventResource);
|
||||
return WechatTenpayClientEventDecryptionExtensions.DecryptEventResource<T>(client.ProxyClient, webhookEventResource);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
/// <returns></returns>
|
||||
public static ErroredResult VerifyEventSignature(this WechatTenpayGlobalClient client, string webhookTimestamp, string webhookNonce, string webhookBody, string webhookSignature, string webhookSerialNumber)
|
||||
{
|
||||
return WechatTenpayClientEventVerificationExtensions.VerifyEventSignature(client, webhookTimestamp, webhookNonce, webhookBody, webhookSignature, webhookSerialNumber);
|
||||
return WechatTenpayClientEventVerificationExtensions.VerifyEventSignature(client.ProxyClient, webhookTimestamp, webhookNonce, webhookBody, webhookSignature, webhookSerialNumber);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -43,7 +43,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
/// <returns></returns>
|
||||
public static ErroredResult VerifyEventSignature(this WechatTenpayGlobalClient client, string webhookTimestamp, string webhookNonce, string webhookBody, string webhookSignature, string webhookSignatureType, string webhookSerialNumber)
|
||||
{
|
||||
return WechatTenpayClientEventVerificationExtensions.VerifyEventSignature(client, webhookTimestamp, webhookNonce, webhookBody, webhookSignature, webhookSignatureType, webhookSerialNumber);
|
||||
return WechatTenpayClientEventVerificationExtensions.VerifyEventSignature(client.ProxyClient, webhookTimestamp, webhookNonce, webhookBody, webhookSignature, webhookSignatureType, webhookSerialNumber);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -63,7 +63,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
/// <returns></returns>
|
||||
public static Task<ErroredResult> VerifyEventSignatureAsync(this WechatTenpayGlobalClient client, string webhookTimestamp, string webhookNonce, string webhookBody, string webhookSignature, string webhookSerialNumber, CancellationToken cancellationToken = default)
|
||||
{
|
||||
return WechatTenpayClientEventVerificationExtensions.VerifyEventSignatureAsync(client, webhookTimestamp, webhookNonce, webhookBody, webhookSignature, webhookSerialNumber, cancellationToken);
|
||||
return WechatTenpayClientEventVerificationExtensions.VerifyEventSignatureAsync(client.ProxyClient, webhookTimestamp, webhookNonce, webhookBody, webhookSignature, webhookSerialNumber, cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -84,7 +84,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
/// <returns></returns>
|
||||
public static Task<ErroredResult> VerifyEventSignatureAsync(this WechatTenpayGlobalClient client, string webhookTimestamp, string webhookNonce, string webhookBody, string webhookSignature, string webhookSignatureType, string webhookSerialNumber, CancellationToken cancellationToken = default)
|
||||
{
|
||||
return WechatTenpayClientEventVerificationExtensions.VerifyEventSignatureAsync(client, webhookTimestamp, webhookNonce, webhookBody, webhookSignature, webhookSignatureType, webhookSerialNumber, cancellationToken);
|
||||
return WechatTenpayClientEventVerificationExtensions.VerifyEventSignatureAsync(client.ProxyClient, webhookTimestamp, webhookNonce, webhookBody, webhookSignature, webhookSignatureType, webhookSerialNumber, cancellationToken);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -30,7 +30,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
if (client is null) throw new ArgumentNullException(nameof(client));
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
IFlurlRequest flurlReq = client.ProxyClient
|
||||
.CreateFlurlRequest(request, HttpMethod.Get, "certificates");
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.QueryCertificatesResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
|
@ -30,7 +30,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateFlurlRequest(request, HttpMethod.Post, "transactions", "app");
|
||||
|
||||
return await ((WechatTenpayClient)client).SendFlurlRequestAsJsonAsync<Models.CreatePartnerTransactionAppResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
return await client.ProxyClient.SendFlurlRequestAsJsonAsync<Models.CreatePartnerTransactionAppResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -81,7 +81,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateFlurlRequest(request, HttpMethod.Post, "transactions", "jsapi");
|
||||
|
||||
return await ((WechatTenpayClient)client).SendFlurlRequestAsJsonAsync<Models.CreatePartnerTransactionJsapiResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
return await client.ProxyClient.SendFlurlRequestAsJsonAsync<Models.CreatePartnerTransactionJsapiResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -106,7 +106,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateFlurlRequest(request, HttpMethod.Post, "transactions", "native");
|
||||
|
||||
return await ((WechatTenpayClient)client).SendFlurlRequestAsJsonAsync<Models.CreatePartnerTransactionNativeResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
return await client.ProxyClient.SendFlurlRequestAsJsonAsync<Models.CreatePartnerTransactionNativeResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -158,7 +158,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
if (request.MerchantId is null)
|
||||
request.MerchantId = client.Credentials.MerchantId;
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
IFlurlRequest flurlReq = client.ProxyClient
|
||||
.CreateFlurlRequest(request, HttpMethod.Get, "transactions", "out-trade-no", request.OutTradeNumber)
|
||||
.SetQueryParam("sp_mchid", request.MerchantId)
|
||||
.SetQueryParam("sub_mchid", request.SubMerchantId);
|
||||
@ -190,7 +190,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
if (request.MerchantId is null)
|
||||
request.MerchantId = client.Credentials.MerchantId;
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
IFlurlRequest flurlReq = client.ProxyClient
|
||||
.CreateFlurlRequest(request, HttpMethod.Get, "transactions", "id", request.TransactionId)
|
||||
.SetQueryParam("sp_mchid", request.MerchantId)
|
||||
.SetQueryParam("sub_mchid", request.SubMerchantId);
|
||||
@ -221,7 +221,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
if (request.MerchantId is null)
|
||||
request.MerchantId = client.Credentials.MerchantId;
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
IFlurlRequest flurlReq = client.ProxyClient
|
||||
.CreateFlurlRequest(request, HttpMethod.Post, "transactions", "out-trade-no", request.OutTradeNumber, "close");
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.ClosePartnerTransactionResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
@ -246,7 +246,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
if (request.MerchantId is null)
|
||||
request.MerchantId = client.Credentials.MerchantId;
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
IFlurlRequest flurlReq = client.ProxyClient
|
||||
.CreateFlurlRequest(request, HttpMethod.Post, "transactions", "out-trade-no", request.OutTradeNumber, "reverse")
|
||||
.SetQueryParam("sp_mchid", request.MerchantId)
|
||||
.SetQueryParam("sub_mchid", request.SubMerchantId);
|
||||
|
@ -30,7 +30,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateFlurlRequest(request, HttpMethod.Post, "transactions", "app");
|
||||
|
||||
return await ((WechatTenpayClient)client).SendFlurlRequestAsJsonAsync<Models.CreateTransactionAppResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
return await client.ProxyClient.SendFlurlRequestAsJsonAsync<Models.CreateTransactionAppResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -55,7 +55,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateFlurlRequest(request, HttpMethod.Post, "transactions", "mweb");
|
||||
|
||||
return await ((WechatTenpayClient)client).SendFlurlRequestAsJsonAsync<Models.CreateTransactionMWebResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
return await client.ProxyClient.SendFlurlRequestAsJsonAsync<Models.CreateTransactionMWebResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -81,7 +81,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateFlurlRequest(request, HttpMethod.Post, "transactions", "jsapi");
|
||||
|
||||
return await ((WechatTenpayClient)client).SendFlurlRequestAsJsonAsync<Models.CreateTransactionJsapiResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
return await client.ProxyClient.SendFlurlRequestAsJsonAsync<Models.CreateTransactionJsapiResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -106,7 +106,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateFlurlRequest(request, HttpMethod.Post, "transactions", "native");
|
||||
|
||||
return await ((WechatTenpayClient)client).SendFlurlRequestAsJsonAsync<Models.CreateTransactionNativeResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
return await client.ProxyClient.SendFlurlRequestAsJsonAsync<Models.CreateTransactionNativeResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -158,7 +158,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
if (request.MerchantId is null)
|
||||
request.MerchantId = client.Credentials.MerchantId;
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
IFlurlRequest flurlReq = client.ProxyClient
|
||||
.CreateFlurlRequest(request, HttpMethod.Get, "transactions", "out-trade-no", request.OutTradeNumber)
|
||||
.SetQueryParam("mchid", request.MerchantId);
|
||||
|
||||
@ -189,7 +189,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
if (request.MerchantId is null)
|
||||
request.MerchantId = client.Credentials.MerchantId;
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
IFlurlRequest flurlReq = client.ProxyClient
|
||||
.CreateFlurlRequest(request, HttpMethod.Get, "transactions", "id", request.TransactionId)
|
||||
.SetQueryParam("mchid", request.MerchantId);
|
||||
|
||||
@ -219,7 +219,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
if (request.MerchantId is null)
|
||||
request.MerchantId = client.Credentials.MerchantId;
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
IFlurlRequest flurlReq = client.ProxyClient
|
||||
.CreateFlurlRequest(request, HttpMethod.Post, "transactions", "out-trade-no", request.OutTradeNumber, "close");
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.CloseTransactionResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
@ -244,7 +244,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
if (request.MerchantId is null)
|
||||
request.MerchantId = client.Credentials.MerchantId;
|
||||
|
||||
IFlurlRequest flurlReq = client
|
||||
IFlurlRequest flurlReq = client.ProxyClient
|
||||
.CreateFlurlRequest(request, HttpMethod.Post, "transactions", "out-trade-no", request.OutTradeNumber, "reverse")
|
||||
.SetQueryParam("mchid", request.MerchantId);
|
||||
|
||||
|
@ -18,7 +18,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
/// <returns></returns>
|
||||
public static IDictionary<string, string> GenerateParametersForJsapiPayRequest(this WechatTenpayGlobalClient client, string appId, string prepayId)
|
||||
{
|
||||
return WechatTenpayClientParameterExtensions.GenerateParametersForJsapiPayRequest(client, appId, prepayId);
|
||||
return WechatTenpayClientParameterExtensions.GenerateParametersForJsapiPayRequest(client.ProxyClient, appId, prepayId);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -34,7 +34,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
/// <returns></returns>
|
||||
public static IDictionary<string, string> GenerateParametersForAppPayRequest(this WechatTenpayGlobalClient client, string appId, string prepayId)
|
||||
{
|
||||
return WechatTenpayClientParameterExtensions.GenerateParametersForAppPayRequest(client, appId, prepayId);
|
||||
return WechatTenpayClientParameterExtensions.GenerateParametersForAppPayRequest(client.ProxyClient, appId, prepayId);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -51,7 +51,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
/// <returns></returns>
|
||||
public static IDictionary<string, string> GenerateParametersForAppPayRequest(this WechatTenpayGlobalClient client, string merchantId, string appId, string prepayId)
|
||||
{
|
||||
return WechatTenpayClientParameterExtensions.GenerateParametersForAppPayRequest(client, merchantId, appId, prepayId);
|
||||
return WechatTenpayClientParameterExtensions.GenerateParametersForAppPayRequest(client.ProxyClient, merchantId, appId, prepayId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -14,7 +14,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
public static TRequest EncryptRequestSensitiveProperty<TRequest>(this WechatTenpayGlobalClient client, TRequest request)
|
||||
where TRequest : WechatTenpayGlobalRequest
|
||||
{
|
||||
return WechatTenpayClientRequestEncryptionExtensions.EncryptRequestSensitiveProperty<TRequest>(client, request);
|
||||
return WechatTenpayClientRequestEncryptionExtensions.EncryptRequestSensitiveProperty<TRequest>(client.ProxyClient, request);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -27,7 +27,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
public static Task<TRequest> EncryptRequestSensitivePropertyAsync<TRequest>(this WechatTenpayGlobalClient client, TRequest request, CancellationToken cancellationToken = default)
|
||||
where TRequest : WechatTenpayGlobalRequest
|
||||
{
|
||||
return WechatTenpayClientRequestEncryptionExtensions.EncryptRequestSensitivePropertyAsync<TRequest>(client, request, cancellationToken);
|
||||
return WechatTenpayClientRequestEncryptionExtensions.EncryptRequestSensitivePropertyAsync<TRequest>(client.ProxyClient, request, cancellationToken);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -69,7 +69,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
return (DecryptResponseSensitiveProperty(client, queryCertificatesResponse) as TResponse)!;
|
||||
}
|
||||
|
||||
return WechatTenpayClientResponseDecryptionExtensions.DecryptResponseSensitiveProperty(client, response);
|
||||
return WechatTenpayClientResponseDecryptionExtensions.DecryptResponseSensitiveProperty(client.ProxyClient, response);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
public static ErroredResult VerifyResponseSignature<TResponse>(this WechatTenpayGlobalClient client, TResponse response)
|
||||
where TResponse : WechatTenpayGlobalResponse
|
||||
{
|
||||
return WechatTenpayClientResponseVerificationExtensions.VerifyResponseSignature(client, response);
|
||||
return WechatTenpayClientResponseVerificationExtensions.VerifyResponseSignature(client.ProxyClient, response);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -40,7 +40,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
/// <returns></returns>
|
||||
public static ErroredResult VerifyResponseSignature(this WechatTenpayGlobalClient client, string responseTimestamp, string responseNonce, string responseBody, string responseSignature, string responseSerialNumber)
|
||||
{
|
||||
return WechatTenpayClientResponseVerificationExtensions.VerifyResponseSignature(client, responseTimestamp, responseNonce, responseBody, responseSignature, responseSerialNumber);
|
||||
return WechatTenpayClientResponseVerificationExtensions.VerifyResponseSignature(client.ProxyClient, responseTimestamp, responseNonce, responseBody, responseSignature, responseSerialNumber);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -60,7 +60,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
/// <returns></returns>
|
||||
public static ErroredResult VerifyResponseSignature(this WechatTenpayGlobalClient client, string responseTimestamp, string responseNonce, string responseBody, string responseSignature, string responseSignatureType, string responseSerialNumber)
|
||||
{
|
||||
return WechatTenpayClientResponseVerificationExtensions.VerifyResponseSignature(client, responseTimestamp, responseNonce, responseBody, responseSignature, responseSignatureType, responseSerialNumber);
|
||||
return WechatTenpayClientResponseVerificationExtensions.VerifyResponseSignature(client.ProxyClient, responseTimestamp, responseNonce, responseBody, responseSignature, responseSignatureType, responseSerialNumber);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -78,7 +78,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
public static Task<ErroredResult> VerifyResponseSignatureAsync<TResponse>(this WechatTenpayGlobalClient client, TResponse response, CancellationToken cancellationToken = default)
|
||||
where TResponse : WechatTenpayGlobalResponse
|
||||
{
|
||||
return WechatTenpayClientResponseVerificationExtensions.VerifyResponseSignatureAsync(client, response, cancellationToken);
|
||||
return WechatTenpayClientResponseVerificationExtensions.VerifyResponseSignatureAsync(client.ProxyClient, response, cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -98,7 +98,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
/// <returns></returns>
|
||||
public static Task<ErroredResult> VerifyResponseSignatureAsync(this WechatTenpayGlobalClient client, string responseTimestamp, string responseNonce, string responseBody, string responseSignature, string responseSerialNumber, CancellationToken cancellationToken = default)
|
||||
{
|
||||
return WechatTenpayClientResponseVerificationExtensions.VerifyResponseSignatureAsync(client, responseTimestamp, responseNonce, responseBody, responseSignature, responseSerialNumber, cancellationToken);
|
||||
return WechatTenpayClientResponseVerificationExtensions.VerifyResponseSignatureAsync(client.ProxyClient, responseTimestamp, responseNonce, responseBody, responseSignature, responseSerialNumber, cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -119,7 +119,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
/// <returns></returns>
|
||||
public static Task<ErroredResult> VerifyResponseSignatureAsync(this WechatTenpayGlobalClient client, string responseTimestamp, string responseNonce, string responseBody, string responseSignature, string responseSignatureType, string responseSerialNumber, CancellationToken cancellationToken = default)
|
||||
{
|
||||
return WechatTenpayClientResponseVerificationExtensions.VerifyResponseSignatureAsync(client, responseTimestamp, responseNonce, responseBody, responseSignature, responseSignatureType, responseSerialNumber, cancellationToken);
|
||||
return WechatTenpayClientResponseVerificationExtensions.VerifyResponseSignatureAsync(client.ProxyClient, responseTimestamp, responseNonce, responseBody, responseSignature, responseSignatureType, responseSerialNumber, cancellationToken);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -6,15 +6,35 @@ using Flurl.Http;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
{
|
||||
using _ROOT_ = SKIT.FlurlHttpClient.Wechat.TenpayV3;
|
||||
using SKIT.FlurlHttpClient.Wechat.TenpayV3.Constants;
|
||||
|
||||
/// <summary>
|
||||
/// 一个微信支付 Global API HTTP 客户端。
|
||||
/// </summary>
|
||||
public class WechatTenpayGlobalClient : WechatTenpayClient
|
||||
public class WechatTenpayGlobalClient : CommonClientBase, ICommonClient
|
||||
{
|
||||
internal WechatTenpayClient ProxyClient { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取当前客户端使用的微信支付商户凭证。
|
||||
/// </summary>
|
||||
public new Settings.Credentials Credentials { get; }
|
||||
public Settings.Credentials Credentials { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取当前客户端使用的微信支付平台证书管理器。
|
||||
/// </summary>
|
||||
public _ROOT_.Settings.ICertificateManager PlatformCertificateManager { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取是否自动加密请求中的敏感信息字段。
|
||||
/// </summary>
|
||||
protected internal bool AutoEncryptRequestSensitiveProperty { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取是否自动解密请求中的敏感信息字段。
|
||||
/// </summary>
|
||||
protected internal bool AutoDecryptResponseSensitiveProperty { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 用指定的配置项初始化 <see cref="WechatTenpayGlobalClient"/> 类的新实例。
|
||||
@ -32,30 +52,43 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
/// <param name="httpClient"></param>
|
||||
/// <param name="disposeClient"></param>
|
||||
internal protected WechatTenpayGlobalClient(WechatTenpayGlobalClientOptions options, HttpClient? httpClient, bool disposeClient = true)
|
||||
: base(
|
||||
new WechatTenpayClientOptions()
|
||||
{
|
||||
Timeout = options.Timeout,
|
||||
Endpoint = options.Endpoint,
|
||||
AcceptLanguage = options.AcceptLanguage,
|
||||
SignScheme = options.SignScheme,
|
||||
MerchantId = options.MerchantId,
|
||||
MerchantV3Secret = options.MerchantV3Secret,
|
||||
MerchantCertificateSerialNumber = options.MerchantCertificateSerialNumber,
|
||||
MerchantCertificatePrivateKey = options.MerchantCertificatePrivateKey,
|
||||
AutoEncryptRequestSensitiveProperty = options.AutoEncryptRequestSensitiveProperty,
|
||||
AutoDecryptResponseSensitiveProperty = options.AutoDecryptResponseSensitiveProperty,
|
||||
PlatformCertificateManager = options.PlatformCertificateManager
|
||||
},
|
||||
httpClient,
|
||||
disposeClient
|
||||
)
|
||||
: base(httpClient, disposeClient)
|
||||
{
|
||||
if (options is null) throw new ArgumentNullException(nameof(options));
|
||||
|
||||
ProxyClient = new WechatTenpayClient(new WechatTenpayClientOptions()
|
||||
{
|
||||
Timeout = options.Timeout,
|
||||
Endpoint = options.Endpoint,
|
||||
AcceptLanguage = options.AcceptLanguage,
|
||||
SignScheme = options.SignScheme,
|
||||
MerchantId = options.MerchantId,
|
||||
MerchantV3Secret = options.MerchantV3Secret,
|
||||
MerchantCertificateSerialNumber = options.MerchantCertificateSerialNumber,
|
||||
MerchantCertificatePrivateKey = options.MerchantCertificatePrivateKey,
|
||||
PlatformAuthScheme = _ROOT_.Settings.PlatformAuthScheme.Certificate,
|
||||
PlatformCertificateManager = options.PlatformCertificateManager,
|
||||
AutoEncryptRequestSensitiveProperty = options.AutoEncryptRequestSensitiveProperty,
|
||||
AutoDecryptResponseSensitiveProperty = options.AutoDecryptResponseSensitiveProperty
|
||||
}, httpClient, disposeClient);
|
||||
|
||||
Credentials = new Settings.Credentials(options);
|
||||
PlatformCertificateManager = options.PlatformCertificateManager;
|
||||
AutoEncryptRequestSensitiveProperty = options.AutoEncryptRequestSensitiveProperty;
|
||||
AutoDecryptResponseSensitiveProperty = options.AutoDecryptResponseSensitiveProperty;
|
||||
|
||||
FlurlClient.BaseUrl = options.Endpoint ?? WechatTenpayGlobalEndpoints.DEFAULT;
|
||||
FlurlClient.WithHeader(HttpHeaders.Accept, "application/json");
|
||||
FlurlClient.WithHeader(HttpHeaders.AcceptLanguage, options.AcceptLanguage);
|
||||
FlurlClient.WithHeader(HttpHeaders.UserAgent, $"OS/{Environment.OSVersion.Platform} SKIT.FlurlHttpClient.Wechat.Tenpay/{AssemblyProps.VERSION}");
|
||||
FlurlClient.WithTimeout(options.Timeout <= 0 ? Timeout.InfiniteTimeSpan : TimeSpan.FromMilliseconds(options.Timeout));
|
||||
|
||||
Interceptors.Add(new Interceptors.WechatTenpayRequestSigningInterceptor(
|
||||
scheme: options.SignScheme,
|
||||
mchId: options.MerchantId,
|
||||
mchCertSn: options.MerchantCertificateSerialNumber,
|
||||
mchCertPk: options.MerchantCertificatePrivateKey
|
||||
));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -78,7 +111,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
/// <param name="httpContent"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public new async Task<T> SendFlurlRequestAsync<T>(IFlurlRequest flurlRequest, HttpContent? httpContent = null, CancellationToken cancellationToken = default)
|
||||
public async Task<T> SendFlurlRequestAsync<T>(IFlurlRequest flurlRequest, HttpContent? httpContent = null, CancellationToken cancellationToken = default)
|
||||
where T : WechatTenpayGlobalResponse, new()
|
||||
{
|
||||
if (flurlRequest is null) throw new ArgumentNullException(nameof(flurlRequest));
|
||||
@ -95,7 +128,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
|
||||
/// <param name="data"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public new async Task<T> SendFlurlRequestAsJsonAsync<T>(IFlurlRequest flurlRequest, object? data = null, CancellationToken cancellationToken = default)
|
||||
public async Task<T> SendFlurlRequestAsJsonAsync<T>(IFlurlRequest flurlRequest, object? data = null, CancellationToken cancellationToken = default)
|
||||
where T : WechatTenpayGlobalResponse, new()
|
||||
{
|
||||
if (flurlRequest is null) throw new ArgumentNullException(nameof(flurlRequest));
|
||||
|
@ -7,13 +7,13 @@ using Flurl.Http;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
{
|
||||
using SKIT.FlurlHttpClient.Wechat.TenpayV3.Constants;
|
||||
|
||||
/// <summary>
|
||||
/// 一个微信支付 API HTTP 客户端。
|
||||
/// </summary>
|
||||
public class WechatTenpayClient : CommonClientBase, ICommonClient
|
||||
{
|
||||
private static readonly string ASSEMBLY_VERSION = Assembly.GetAssembly(typeof(WechatTenpayClient))!.GetName()!.Version!.ToString();
|
||||
|
||||
/// <summary>
|
||||
/// 获取当前客户端使用的微信支付商户凭证。
|
||||
/// </summary>
|
||||
@ -74,7 +74,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
FlurlClient.BaseUrl = options.Endpoint ?? WechatTenpayEndpoints.DEFAULT;
|
||||
FlurlClient.WithHeader(HttpHeaders.Accept, "application/json");
|
||||
FlurlClient.WithHeader(HttpHeaders.AcceptLanguage, options.AcceptLanguage);
|
||||
FlurlClient.WithHeader(HttpHeaders.UserAgent, $"OS/{Environment.OSVersion.Platform} SKIT.FlurlHttpClient.Wechat.Tenpay/{ASSEMBLY_VERSION}");
|
||||
FlurlClient.WithHeader(HttpHeaders.UserAgent, $"OS/{Environment.OSVersion.Platform} SKIT.FlurlHttpClient.Wechat.Tenpay/{AssemblyProps.VERSION}");
|
||||
FlurlClient.WithTimeout(options.Timeout <= 0 ? Timeout.InfiniteTimeSpan : TimeSpan.FromMilliseconds(options.Timeout));
|
||||
|
||||
Interceptors.Add(new Interceptors.WechatTenpayRequestSigningInterceptor(
|
||||
@ -121,7 +121,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
where T : WechatTenpayResponse, new()
|
||||
{
|
||||
if (flurlRequest is null) throw new ArgumentNullException(nameof(flurlRequest));
|
||||
if (this is ExtendedSDK.Global.WechatTenpayGlobalClient) throw new InvalidOperationException("This client only supports WeChatPay Global business. Maybe you have misused the client builder or imported a wrong namespaces.");
|
||||
|
||||
using IFlurlResponse flurlResponse = await base.SendFlurlRequestAsync(flurlRequest, httpContent, cancellationToken).ConfigureAwait(false);
|
||||
return await WrapFlurlResponseAsJsonAsync<T>(flurlResponse, cancellationToken).ConfigureAwait(false);
|
||||
@ -139,7 +138,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
where T : WechatTenpayResponse, new()
|
||||
{
|
||||
if (flurlRequest is null) throw new ArgumentNullException(nameof(flurlRequest));
|
||||
if (this is ExtendedSDK.Global.WechatTenpayGlobalClient) throw new InvalidOperationException("This client only supports WeChatPay Global business. Maybe you have misused the client builder or imported a wrong namespaces.");
|
||||
|
||||
bool isSimpleRequest = data is null ||
|
||||
flurlRequest.Verb == HttpMethod.Get ||
|
||||
|
Loading…
Reference in New Issue
Block a user