From e54ebc6f30a7fae2449fedd50794eede2fdf43f5 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Mon, 18 Oct 2021 17:38:32 +0800 Subject: [PATCH 01/15] feat(wxapi): bump version to v1.10.0 --- .../SKIT.FlurlHttpClient.Wechat.Api.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/SKIT.FlurlHttpClient.Wechat.Api.csproj b/src/SKIT.FlurlHttpClient.Wechat.Api/SKIT.FlurlHttpClient.Wechat.Api.csproj index fa489314..5a7fb209 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/SKIT.FlurlHttpClient.Wechat.Api.csproj +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/SKIT.FlurlHttpClient.Wechat.Api.csproj @@ -12,7 +12,7 @@ MIT https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat Flurl.Http Wechat Weixin MicroMessage MiniProgram MiniGame MiniStore 微信 公众号 服务号 订阅号 小程序 小游戏 小商店 公众平台 开放平台 微信公众号 微信服务号 微信订阅号 微信小程序 微信小游戏 微信小商店 微信公众平台 微信开放平台 - 1.9.0 + 1.10.0 基于 Flurl.Http 的微信 API 客户端,支持公众平台(订阅号、服务号、小程序、小游戏、小商店)、开放平台等平台,支持基础服务、模板消息、订阅消息、客服消息、动态消息、菜单管理、素材管理、留言管理、用户管理、账号管理、数据统计、微信门店、微信小店、智能接口、一物一码、微信发票、微信非税缴费、插件管理、附近的小程序、小程序码、小程序搜索、URL Scheme、URL Link、即时配送、物流助手、直播、生物认证、虚拟支付、开放数据、对局匹配、帧同步、内容安全、安全风控、第三方平台等功能。 Fu Diwei git From 5f3b518a1dfa642ee503764bc1f9bd030f6a0f7d Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Mon, 18 Oct 2021 17:38:39 +0800 Subject: [PATCH 02/15] docs: edit CHANGELOG --- CHANGELOG.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 713222c0..b2498c09 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,6 +34,20 @@ SKIT.FlurlHttpClient.Wechat.Api 更新日志 +- Release 1.10.0 + + - **新增**:新增第三方平台申请开通直播相关接口。 + + - **新增**:新增小程序联盟定向计划推广相关接口。 + + - **新增**:新增小程序联盟自定义用户参数管理相关接口。 + + - **新增**:随官方更新小程序联盟推客端相关接口模型。 + + - **修复**:修复 XmlSerializer 潜在的内存泄漏问题。([GitHub Issue #11](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat/issues/11)) + + - **修复**:修复 AES 解密结果结尾有冗余的空白字符问题。 + - Release 1.9.0 - **新增**:新增标准版交易组件售后相关接口。 From aeb20d4b19d8a2b22dd15f9f559787f48f1da575 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Mon, 18 Oct 2021 17:50:37 +0800 Subject: [PATCH 03/15] style: clean code --- .../WechatApiClientExecuteCVExtensions.cs | 20 ++++++++-------- ...atApiClientExecuteCardInvoiceExtensions.cs | 4 ++-- ...iClientExecuteCgibinComponentExtensions.cs | 22 ++++++++--------- ...ApiClientExecuteCgibinExpressExtensions.cs | 4 ++-- .../WechatApiClientExecuteCgibinExtensions.cs | 2 +- ...atApiClientExecuteCgibinGuideExtensions.cs | 4 ++-- ...piClientExecuteCgibinMaterialExtensions.cs | 4 ++-- ...atApiClientExecuteCgibinMediaExtensions.cs | 8 +++---- ...atApiClientExecuteCgibinMidasExtensions.cs | 6 ++--- ...hatApiClientExecuteCgibinUserExtensions.cs | 2 +- ...echatApiClientExecuteMerchantExtensions.cs | 2 +- .../WechatApiClientExecuteNontaxExtensions.cs | 24 +++++++++---------- ...WechatApiClientExecuteProductExtensions.cs | 6 ++--- ...ApiClientExecutePublisherStatExtensions.cs | 2 +- ...echatApiClientExecuteSemanticExtensions.cs | 2 +- .../WechatApiClientExecuteSnsExtensions.cs | 2 +- .../WechatApiClientExecuteTcbExtensions.cs | 4 ++-- ...ApiClientExecuteUnionPromoterExtensions.cs | 4 ++-- .../WechatApiClientExecuteWxaApiExtensions.cs | 12 +++++----- ...atApiClientExecuteWxaBusinessExtensions.cs | 2 +- ...tApiClientExecuteWxaComponentExtensions.cs | 4 ++-- .../WechatApiClientExecuteWxaExtensions.cs | 8 +++---- 22 files changed, 74 insertions(+), 74 deletions(-) diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCVExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCVExtensions.cs index 9213810f..5b76adf4 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCVExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCVExtensions.cs @@ -50,7 +50,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api .CreateRequest(request, HttpMethod.Post, "cv", "img", "qrcode") .SetQueryParam("access_token", request.AccessToken); - if (!string.IsNullOrEmpty(request.ImageUrl)) + if (request.ImageUrl != null) flurlReq.SetQueryParam("img_url", request.ImageUrl); using var httpContent = CreateRequestHttpContent(request.ImageFileBytes ?? new byte[0]); @@ -75,7 +75,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api .CreateRequest(request, HttpMethod.Post, "cv", "img", "superresolution") .SetQueryParam("access_token", request.AccessToken); - if (!string.IsNullOrEmpty(request.ImageUrl)) + if (request.ImageUrl != null) flurlReq.SetQueryParam("img_url", request.ImageUrl); using var httpContent = CreateRequestHttpContent(request.ImageFileBytes ?? new byte[0]); @@ -100,7 +100,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api .CreateRequest(request, HttpMethod.Post, "cv", "img", "aicrop") .SetQueryParam("access_token", request.AccessToken); - if (!string.IsNullOrEmpty(request.ImageUrl)) + if (request.ImageUrl != null) flurlReq.SetQueryParam("img_url", request.ImageUrl); using var httpContent = CreateRequestHttpContent(request.ImageFileBytes ?? new byte[0]); @@ -128,7 +128,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api .SetQueryParam("access_token", request.AccessToken) .SetQueryParam("type", request.ImageMode); - if (!string.IsNullOrEmpty(request.ImageUrl)) + if (request.ImageUrl != null) flurlReq.SetQueryParam("img_url", request.ImageUrl); using var httpContent = CreateRequestHttpContent(request.ImageFileBytes ?? new byte[0]); @@ -154,7 +154,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api .SetQueryParam("access_token", request.AccessToken) .SetQueryParam("type", request.ImageMode); - if (!string.IsNullOrEmpty(request.ImageUrl)) + if (request.ImageUrl != null) flurlReq.SetQueryParam("img_url", request.ImageUrl); using var httpContent = CreateRequestHttpContent(request.ImageFileBytes ?? new byte[0]); @@ -180,7 +180,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api .SetQueryParam("access_token", request.AccessToken) .SetQueryParam("type", request.ImageMode); - if (!string.IsNullOrEmpty(request.ImageUrl)) + if (request.ImageUrl != null) flurlReq.SetQueryParam("img_url", request.ImageUrl); using var httpContent = CreateRequestHttpContent(request.ImageFileBytes ?? new byte[0]); @@ -206,7 +206,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api .SetQueryParam("access_token", request.AccessToken) .SetQueryParam("type", request.ImageMode); - if (!string.IsNullOrEmpty(request.ImageUrl)) + if (request.ImageUrl != null) flurlReq.SetQueryParam("img_url", request.ImageUrl); using var httpContent = CreateRequestHttpContent(request.ImageFileBytes ?? new byte[0]); @@ -232,7 +232,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api .SetQueryParam("access_token", request.AccessToken) .SetQueryParam("type", request.ImageMode); - if (!string.IsNullOrEmpty(request.ImageUrl)) + if (request.ImageUrl != null) flurlReq.SetQueryParam("img_url", request.ImageUrl); using var httpContent = CreateRequestHttpContent(request.ImageFileBytes ?? new byte[0]); @@ -257,7 +257,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api .CreateRequest(request, HttpMethod.Post, "cv", "ocr", "comm") .SetQueryParam("access_token", request.AccessToken); - if (!string.IsNullOrEmpty(request.ImageUrl)) + if (request.ImageUrl != null) flurlReq.SetQueryParam("img_url", request.ImageUrl); using var httpContent = CreateRequestHttpContent(request.ImageFileBytes ?? new byte[0]); @@ -281,7 +281,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api .CreateRequest(request, HttpMethod.Post, "cv", "ocr", "platenum") .SetQueryParam("access_token", request.AccessToken); - if (!string.IsNullOrEmpty(request.ImageUrl)) + if (request.ImageUrl != null) flurlReq.SetQueryParam("img_url", request.ImageUrl); using var httpContent = CreateRequestHttpContent(request.ImageFileBytes ?? new byte[0]); diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCardInvoiceExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCardInvoiceExtensions.cs index a704c941..c7e3edc3 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCardInvoiceExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCardInvoiceExtensions.cs @@ -25,7 +25,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (!request.Timestamp.HasValue) + if (request.Timestamp == null) request.Timestamp = DateTimeOffset.Now.ToLocalTime().ToUnixTimeSeconds(); IFlurlRequest flurlReq = client @@ -172,7 +172,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.AppId)) + if (request.AppId == null) request.AppId = client.Credentials.AppId; if (request.CardExtra != null && string.IsNullOrEmpty(request.CardExtra.Nonce)) diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinComponentExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinComponentExtensions.cs index 4aa658a9..637eac82 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinComponentExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinComponentExtensions.cs @@ -24,10 +24,10 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.ComponentAppId)) + if (request.ComponentAppId == null) request.ComponentAppId = client.Credentials.AppId; - if (string.IsNullOrEmpty(request.ComponentSecret)) + if (request.ComponentSecret == null) request.ComponentSecret = client.Credentials.AppSecret; IFlurlRequest flurlReq = client @@ -49,10 +49,10 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.ComponentAppId)) + if (request.ComponentAppId == null) request.ComponentAppId = client.Credentials.AppId; - if (string.IsNullOrEmpty(request.ComponentSecret)) + if (request.ComponentSecret == null) request.ComponentSecret = client.Credentials.AppSecret; IFlurlRequest flurlReq = client @@ -74,7 +74,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.ComponentAppId)) + if (request.ComponentAppId == null) request.ComponentAppId = client.Credentials.AppId; IFlurlRequest flurlReq = client @@ -97,7 +97,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.ComponentAppId)) + if (request.ComponentAppId == null) request.ComponentAppId = client.Credentials.AppId; IFlurlRequest flurlReq = client @@ -120,7 +120,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.ComponentAppId)) + if (request.ComponentAppId == null) request.ComponentAppId = client.Credentials.AppId; IFlurlRequest flurlReq = client @@ -143,7 +143,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.ComponentAppId)) + if (request.ComponentAppId == null) request.ComponentAppId = client.Credentials.AppId; IFlurlRequest flurlReq = client @@ -166,7 +166,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.ComponentAppId)) + if (request.ComponentAppId == null) request.ComponentAppId = client.Credentials.AppId; IFlurlRequest flurlReq = client @@ -189,7 +189,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.ComponentAppId)) + if (request.ComponentAppId == null) request.ComponentAppId = client.Credentials.AppId; IFlurlRequest flurlReq = client @@ -212,7 +212,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.ComponentAppId)) + if (request.ComponentAppId == null) request.ComponentAppId = client.Credentials.AppId; IFlurlRequest flurlReq = client diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinExpressExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinExpressExtensions.cs index b681e2d9..09cf253d 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinExpressExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinExpressExtensions.cs @@ -17,12 +17,12 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (client == null) throw new ArgumentNullException(nameof(request)); if (client == null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.ShopId)) + if (request.ShopId == null) { request.ShopId = client.Credentials.ImmeDeliveryAppKey; } - if (string.IsNullOrEmpty(request.DeliverySignature)) + if (request.DeliverySignature == null) { string plainText = $"{request.ShopId}{request.ShopOrderId}{client.Credentials.ImmeDeliveryAppSecret}"; request.DeliverySignature = Security.SHA1Utility.Hash(plainText).ToLower(); diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinExtensions.cs index d0879d49..1e35069d 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinExtensions.cs @@ -111,7 +111,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.AppId)) + if (request.AppId == null) request.AppId = client.Credentials.AppId; IFlurlRequest flurlReq = client diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinGuideExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinGuideExtensions.cs index d315e00c..217a19fb 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinGuideExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinGuideExtensions.cs @@ -49,9 +49,9 @@ namespace SKIT.FlurlHttpClient.Wechat.Api .CreateRequest(request, HttpMethod.Get, "cgi-bin", "guide", "getguideacct") .SetQueryParam("access_token", request.AccessToken); - if (!string.IsNullOrEmpty(request.GuideAccount)) + if (request.GuideAccount != null) flurlReq.SetQueryParam("guide_account", request.GuideAccount); - else if (!string.IsNullOrEmpty(request.GuideOpenId)) + else if (request.GuideOpenId != null) flurlReq.SetQueryParam("guide_openid", request.GuideOpenId); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinMaterialExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinMaterialExtensions.cs index fb990b0f..ec08b899 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinMaterialExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinMaterialExtensions.cs @@ -51,7 +51,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api const string TYPE_VOICE = "voice"; const string TYPE_VIDEO = "video"; - if (string.IsNullOrEmpty(request.FileName)) + if (request.FileName == null) { string ext = ""; if (TYPE_IMAGE.Equals(request.Type)) @@ -66,7 +66,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api request.FileName = Guid.NewGuid().ToString("N").ToLower() + ext; } - if (string.IsNullOrEmpty(request.FileContentType)) + if (request.FileContentType == null) { if (TYPE_IMAGE.Equals(request.Type) || TYPE_THUMB.Equals(request.Type)) request.FileContentType = Utilities.FileNameToContentTypeMapper.GetContentTypeForImage(request.FileName!) ?? "image/png"; diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinMediaExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinMediaExtensions.cs index 9ad29748..be1867c3 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinMediaExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinMediaExtensions.cs @@ -32,7 +32,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api const string TYPE_VOICE = "voice"; const string TYPE_VIDEO = "video"; - if (string.IsNullOrEmpty(request.FileName)) + if (request.FileName == null) { string ext = ""; if (TYPE_IMAGE.Equals(request.Type)) @@ -47,7 +47,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api request.FileName = Guid.NewGuid().ToString("N").ToLower() + ext; } - if (string.IsNullOrEmpty(request.FileContentType)) + if (request.FileContentType == null) { if (TYPE_IMAGE.Equals(request.Type) || TYPE_THUMB.Equals(request.Type)) request.FileContentType = Utilities.FileNameToContentTypeMapper.GetContentTypeForImage(request.FileName!) ?? "image/png"; @@ -113,10 +113,10 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.FileName)) + if (request.FileName == null) request.FileName = Guid.NewGuid().ToString("N").ToLower() + ".png"; - if (string.IsNullOrEmpty(request.FileContentType)) + if (request.FileContentType == null) { request.FileContentType = Utilities.FileNameToContentTypeMapper.GetContentTypeForImage(request.FileName!) ?? "image/png"; } diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinMidasExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinMidasExtensions.cs index 9c178394..6f7902ed 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinMidasExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinMidasExtensions.cs @@ -20,17 +20,17 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (reqLoc == null) throw new ArgumentNullException(nameof(reqLoc)); if (request == null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.AppId)) + if (request.AppId == null) { request.AppId = client.Credentials.AppId; } - if (!request.Timestamp.HasValue) + if (request.Timestamp == null) { request.Timestamp = DateTimeOffset.Now.ToLocalTime().ToUnixTimeSeconds(); } - if (string.IsNullOrEmpty(request.Signature)) + if (request.Signature == null) { IDictionary paramMap = new SortedDictionary( new Dictionary() diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinUserExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinUserExtensions.cs index ee9733fe..ee6674d1 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinUserExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinUserExtensions.cs @@ -90,7 +90,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api .CreateRequest(request, HttpMethod.Get, "cgi-bin", "user", "get") .SetQueryParam("access_token", request.AccessToken); - if (!string.IsNullOrEmpty(request.NextOpenId)) + if (request.NextOpenId != null) flurlReq.SetQueryParam("next_openid", request.NextOpenId); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteMerchantExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteMerchantExtensions.cs index dea3b891..f5bd005e 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteMerchantExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteMerchantExtensions.cs @@ -658,7 +658,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api /// public static async Task ExecuteMerchantCommonUploadImageAsync(this WechatApiClient client, Models.MerchantCommonUploadImageRequest request, CancellationToken cancellationToken = default) { - if (string.IsNullOrEmpty(request.FileName)) + if (request.FileName == null) request.FileName = Guid.NewGuid().ToString("N").ToLower() + ".png"; IFlurlRequest flurlReq = client diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteNontaxExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteNontaxExtensions.cs index 08abcce4..e4430437 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteNontaxExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteNontaxExtensions.cs @@ -26,7 +26,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (!request.Timestamp.HasValue) + if (request.Timestamp == null) request.Timestamp = DateTimeOffset.Now.ToLocalTime().ToUnixTimeSeconds(); IFlurlRequest flurlReq = client @@ -69,7 +69,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.AppId)) + if (request.AppId == null) request.AppId = client.Credentials.AppId; IFlurlRequest flurlReq = client @@ -93,7 +93,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.AppId)) + if (request.AppId == null) request.AppId = client.Credentials.AppId; IFlurlRequest flurlReq = client @@ -116,7 +116,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.AppId)) + if (request.AppId == null) request.AppId = client.Credentials.AppId; IFlurlRequest flurlReq = client @@ -139,7 +139,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.AppId)) + if (request.AppId == null) request.AppId = client.Credentials.AppId; IFlurlRequest flurlReq = client @@ -162,7 +162,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.AppId)) + if (request.AppId == null) request.AppId = client.Credentials.AppId; IFlurlRequest flurlReq = client @@ -185,7 +185,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.AppId)) + if (request.AppId == null) request.AppId = client.Credentials.AppId; IFlurlRequest flurlReq = client @@ -208,7 +208,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.AppId)) + if (request.AppId == null) request.AppId = client.Credentials.AppId; IFlurlRequest flurlReq = client @@ -231,7 +231,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.AppId)) + if (request.AppId == null) request.AppId = client.Credentials.AppId; IFlurlRequest flurlReq = client @@ -254,7 +254,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.AppId)) + if (request.AppId == null) request.AppId = client.Credentials.AppId; IFlurlRequest flurlReq = client @@ -277,7 +277,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.AppId)) + if (request.AppId == null) request.AppId = client.Credentials.AppId; IFlurlRequest flurlReq = client @@ -300,7 +300,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.AppId)) + if (request.AppId == null) request.AppId = client.Credentials.AppId; IFlurlRequest flurlReq = client diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteProductExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteProductExtensions.cs index 7db2be2e..1ee3ec6c 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteProductExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteProductExtensions.cs @@ -31,7 +31,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api .SetQueryParam("access_token", request.AccessToken) .SetQueryParam("resp_type", request.ResponseType); - if (!string.IsNullOrEmpty(request.ImageUrl)) + if (request.ImageUrl != null) { flurlReq.SetQueryParam("upload_type", 1) .SetQueryParam("img_url", request.ImageUrl); @@ -110,7 +110,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.AppId)) + if (request.AppId == null) request.AppId = client.Credentials.AppId; IFlurlRequest flurlReq = client @@ -133,7 +133,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.AppId)) + if (request.AppId == null) request.AppId = client.Credentials.AppId; IFlurlRequest flurlReq = client diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecutePublisherStatExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecutePublisherStatExtensions.cs index 3a10d523..46c36390 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecutePublisherStatExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecutePublisherStatExtensions.cs @@ -32,7 +32,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api .SetQueryParam("start_date", request.StartDateString) .SetQueryParam("end_date", request.EndDateString); - if (!string.IsNullOrEmpty(request.AdSlotName)) + if (request.AdSlotName != null) flurlReq.SetQueryParam("ad_slot", request.AdSlotName); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteSemanticExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteSemanticExtensions.cs index 92726395..bca1cc40 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteSemanticExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteSemanticExtensions.cs @@ -27,7 +27,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.AppId)) + if (request.AppId == null) request.AppId = client.Credentials.AppId; IFlurlRequest flurlReq = client diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteSnsExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteSnsExtensions.cs index e9b56e39..198a0c02 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteSnsExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteSnsExtensions.cs @@ -145,7 +145,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.ComponentAppId)) + if (request.ComponentAppId == null) request.ComponentAppId = client.Credentials.AppId; IFlurlRequest flurlReq = client diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteTcbExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteTcbExtensions.cs index 5d563743..6d343012 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteTcbExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteTcbExtensions.cs @@ -209,10 +209,10 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.Nonce)) + if (request.Nonce == null) request.Nonce = Guid.NewGuid().ToString("N"); - if (!request.Timestamp.HasValue) + if (request.Timestamp == null) request.Timestamp = DateTimeOffset.Now.ToLocalTime().ToUnixTimeSeconds(); IFlurlRequest flurlReq = client diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteUnionPromoterExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteUnionPromoterExtensions.cs index 9a509da6..49dfd12e 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteUnionPromoterExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteUnionPromoterExtensions.cs @@ -141,7 +141,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (request.QueryType.HasValue) flurlReq.SetQueryParam("queryType", request.QueryType.Value); - if (!string.IsNullOrEmpty(request.Query)) + if (request.Query != null) flurlReq.SetQueryParam("query", request.Query); if (request.MaxPrice.HasValue) @@ -308,7 +308,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (request.EndTimestamp.HasValue) flurlReq.SetQueryParam("endTimestamp", request.EndTimestamp.Value); - if (!string.IsNullOrEmpty(request.CommissionStatus)) + if (request.CommissionStatus != null) flurlReq.SetQueryParam("commissionStatus", request.CommissionStatus); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteWxaApiExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteWxaApiExtensions.cs index 2e7d50b5..fc6cbfc6 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteWxaApiExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteWxaApiExtensions.cs @@ -289,16 +289,16 @@ namespace SKIT.FlurlHttpClient.Wechat.Api .SetQueryParam("begintime", request.BeginTimestamp) .SetQueryParam("endtime", request.EndTimestamp); - if (!string.IsNullOrEmpty(request.TraceId)) + if (request.TraceId != null) flurlReq.SetQueryParam("traceId", request.TraceId); - if (!string.IsNullOrEmpty(request.PagePath)) + if (request.PagePath != null) flurlReq.SetQueryParam("url", request.PagePath); - if (!string.IsNullOrEmpty(request.UserId)) + if (request.UserId != null) flurlReq.SetQueryParam("id", request.UserId); - if (!string.IsNullOrEmpty(request.FilterMessage)) + if (request.FilterMessage != null) flurlReq.SetQueryParam("filterMsg", request.FilterMessage); if (request.LogLevel.HasValue) @@ -414,7 +414,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api .SetQueryParam("access_token", request.AccessToken) .SetQueryParam("roomId", request.RoomId); - if (!string.IsNullOrEmpty(request.CustomParameter)) + if (request.CustomParameter != null) flurlReq.SetQueryParam("params", request.CustomParameter); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); @@ -991,7 +991,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api .CreateRequest(request, HttpMethod.Get, "wxaapi", "broadcast", "role", "getrolelist") .SetQueryParam("access_token", request.AccessToken); - if (!string.IsNullOrEmpty(request.Keyword)) + if (request.Keyword != null) flurlReq.SetQueryParam("keyword", request.Keyword); if (request.Role.HasValue) diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteWxaBusinessExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteWxaBusinessExtensions.cs index 8f8513ad..55e280de 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteWxaBusinessExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteWxaBusinessExtensions.cs @@ -25,7 +25,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.AppId)) + if (request.AppId == null) request.AppId = client.Credentials.AppId; IFlurlRequest flurlReq = client diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteWxaComponentExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteWxaComponentExtensions.cs index 943de63b..b664e5a9 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteWxaComponentExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteWxaComponentExtensions.cs @@ -483,7 +483,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api .CreateRequest(request, HttpMethod.Get, "wxa", "get_qrcode") .SetQueryParam("access_token", request.AccessToken); - if (!string.IsNullOrEmpty(request.PagePath)) + if (request.PagePath != null) flurlReq.SetQueryParam("path", request.PagePath); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); @@ -607,7 +607,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api .CreateRequest(request, HttpMethod.Get, "wxa", "revertcoderelease") .SetQueryParam("access_token", request.AccessToken); - if (!string.IsNullOrEmpty(request.Action)) + if (request.Action != null) flurlReq.SetQueryParam("action", request.Action); if (request.AppVersion.HasValue) diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteWxaExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteWxaExtensions.cs index e86c354a..6107e337 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteWxaExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteWxaExtensions.cs @@ -54,9 +54,9 @@ namespace SKIT.FlurlHttpClient.Wechat.Api .SetQueryParam("access_token", request.AccessToken) .SetQueryParam("openid", request.OpenId); - if (!string.IsNullOrEmpty(request.TransactionId)) + if (request.TransactionId != null) flurlReq.SetQueryParam("transaction_id", request.TransactionId); - else if (!string.IsNullOrEmpty(request.OutTradeNumber)) + else if (request.OutTradeNumber != null) flurlReq.SetQueryParam("mch_id", request.MerchantId) .SetQueryParam("out_trade_no", request.OutTradeNumber); @@ -403,7 +403,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.AppId)) + if (request.AppId == null) request.AppId = client.Credentials.AppId; IFlurlRequest flurlReq = client @@ -696,7 +696,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api .CreateRequest(request, HttpMethod.Get, "wxa", "getwxadevinfo") .SetQueryParam("access_token", request.AccessToken); - if (!string.IsNullOrEmpty(request.Action)) + if (request.Action != null) flurlReq.SetQueryParam("action", request.Action); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); From 73a9b771828f8926b1937f9cc2699da0c5348e66 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Mon, 18 Oct 2021 18:07:06 +0800 Subject: [PATCH 04/15] =?UTF-8?q?docs:=20=E5=AE=8C=E5=96=84=E6=96=87?= =?UTF-8?q?=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/WechatApi/Advanced_OpenDataDecryption.md | 9 +++++++++ docs/WechatApi/README.md | 2 ++ 2 files changed, 11 insertions(+) create mode 100644 docs/WechatApi/Advanced_OpenDataDecryption.md diff --git a/docs/WechatApi/Advanced_OpenDataDecryption.md b/docs/WechatApi/Advanced_OpenDataDecryption.md new file mode 100644 index 00000000..1df4beb8 --- /dev/null +++ b/docs/WechatApi/Advanced_OpenDataDecryption.md @@ -0,0 +1,9 @@ +## 如何解密经过加密处理的开放数据? + +--- + +> 请先自行阅读: +> +> [《微信官方文档 - 开放能力:开放数据校验与解密》](https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/signature.html) + +你可根据官方文档的规则利用本库提供的 `AESUtility` 工具类自行进行数据解密。 diff --git a/docs/WechatApi/README.md b/docs/WechatApi/README.md index bdfd64b2..ea8b372b 100644 --- a/docs/WechatApi/README.md +++ b/docs/WechatApi/README.md @@ -86,6 +86,8 @@ else - [如何验证回调通知事件签名?](./Advanced_EventDataSignatureVerification.md) +- [如何解密经过加密处理的开放数据?](./Advanced_OpenDataDecryption.md) + - [如何生成 JS-SDK 初始化时所需的参数及签名?](./Advanced_JSSDK.md) - [如何扩展额外的 API?](./Advanced_Extensions.md) From 4edbf3700e1de8a09ff200232996c78b22645cb9 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Mon, 18 Oct 2021 18:29:07 +0800 Subject: [PATCH 05/15] style: clean code --- .../WechatWorkClientExecuteCgibinAgentExtensions.cs | 12 ++++++------ .../WechatWorkClientExecuteCgibinCorpExtensions.cs | 2 +- ...chatWorkClientExecuteCgibinCorpGroupExtensions.cs | 2 +- ...hatWorkClientExecuteCgibinDepartmentExtensions.cs | 2 +- ...rkClientExecuteCgibinExternalContactExtensions.cs | 2 +- ...hatWorkClientExecuteCgibinLinkedCorpExtensions.cs | 2 +- .../WechatWorkClientExecuteCgibinMediaExtensions.cs | 12 ++++++------ .../WechatWorkClientExecuteCgibinMenuExtensions.cs | 6 +++--- ...WechatWorkClientExecuteCgibinMessageExtensions.cs | 6 +++--- .../WechatWorkClientExecuteCgibinSchoolExtensions.cs | 4 ++-- ...WechatWorkClientExecuteCgibinServiceExtensions.cs | 8 ++++---- .../WechatWorkClientExecuteCgibinUserExtensions.cs | 8 ++++---- .../WechatWorkClient.cs | 2 +- 13 files changed, 34 insertions(+), 34 deletions(-) diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinAgentExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinAgentExtensions.cs index ba00c7c1..d402bba7 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinAgentExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinAgentExtensions.cs @@ -26,7 +26,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (!request.AgentId.HasValue) + if (request.AgentId == null) request.AgentId = client.Credentials.AgentId; IFlurlRequest flurlReq = client @@ -72,7 +72,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (!request.AgentId.HasValue) + if (request.AgentId == null) request.AgentId = client.Credentials.AgentId; IFlurlRequest flurlReq = client @@ -96,7 +96,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (!request.AgentId.HasValue) + if (request.AgentId == null) request.AgentId = client.Credentials.AgentId; IFlurlRequest flurlReq = client @@ -121,7 +121,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (!request.AgentId.HasValue) + if (request.AgentId == null) request.AgentId = client.Credentials.AgentId; IFlurlRequest flurlReq = client @@ -145,7 +145,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (!request.AgentId.HasValue) + if (request.AgentId == null) request.AgentId = client.Credentials.AgentId; IFlurlRequest flurlReq = client @@ -169,7 +169,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (!request.AgentId.HasValue) + if (request.AgentId == null) request.AgentId = client.Credentials.AgentId; IFlurlRequest flurlReq = client diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinCorpExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinCorpExtensions.cs index 8b823ff9..d5fb4b6a 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinCorpExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinCorpExtensions.cs @@ -28,7 +28,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work .CreateRequest(request, HttpMethod.Get, "cgi-bin", "corp", "get_join_qrcode") .SetQueryParam("access_token", request.AccessToken); - if (request.SizeType.HasValue) + if (request.SizeType != null) flurlReq.SetQueryParam("size_type", request.SizeType.Value); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinCorpGroupExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinCorpGroupExtensions.cs index a1f9c877..13ba228e 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinCorpGroupExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinCorpGroupExtensions.cs @@ -25,7 +25,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (!request.ParentAgentId.HasValue) + if (request.ParentAgentId == null) request.ParentAgentId = client.Credentials.AgentId; IFlurlRequest flurlReq = client diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinDepartmentExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinDepartmentExtensions.cs index e1a82b17..b99d1197 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinDepartmentExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinDepartmentExtensions.cs @@ -97,7 +97,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work .CreateRequest(request, HttpMethod.Get, "cgi-bin", "department", "list") .SetQueryParam("access_token", request.AccessToken); - if (request.ParentDepartmentId.HasValue) + if (request.ParentDepartmentId != null) flurlReq.SetQueryParam("id", request.ParentDepartmentId.Value); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinExternalContactExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinExternalContactExtensions.cs index e2b55189..499425a8 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinExternalContactExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinExternalContactExtensions.cs @@ -1008,7 +1008,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (!request.AgentId.HasValue) + if (request.AgentId == null) request.AgentId = client.Credentials.AgentId; IFlurlRequest flurlReq = client diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinLinkedCorpExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinLinkedCorpExtensions.cs index 1bb0e689..bdd2223f 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinLinkedCorpExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinLinkedCorpExtensions.cs @@ -125,7 +125,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (!request.AgentId.HasValue) + if (request.AgentId == null) request.AgentId = client.Credentials.AgentId; IFlurlRequest flurlReq = client diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinMediaExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinMediaExtensions.cs index eab74b23..55470002 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinMediaExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinMediaExtensions.cs @@ -30,7 +30,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work const string TYPE_VOICE = "voice"; const string TYPE_VIDEO = "video"; - if (string.IsNullOrEmpty(request.FileName)) + if (request.FileName == null) { string ext = ""; if (TYPE_IMAGE.Equals(request.Type)) @@ -43,7 +43,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work request.FileName = Guid.NewGuid().ToString("N").ToLower() + ext; } - if (string.IsNullOrEmpty(request.FileContentType)) + if (request.FileContentType == null) { if (TYPE_IMAGE.Equals(request.Type)) request.FileContentType = Utilities.FileNameToContentTypeMapper.GetContentTypeForImage(request.FileName!) ?? "image/png"; @@ -86,10 +86,10 @@ namespace SKIT.FlurlHttpClient.Wechat.Work if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.FileName)) + if (request.FileName == null) request.FileName = Guid.NewGuid().ToString("N").ToLower() + ".png"; - if (string.IsNullOrEmpty(request.FileContentType)) + if (request.FileContentType == null) request.FileContentType = Utilities.FileNameToContentTypeMapper.GetContentTypeForImage(request.FileName!) ?? "image/png"; IFlurlRequest flurlReq = client @@ -125,7 +125,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work const string TYPE_VIDEO = "video"; const string TYPE_FILE = "file"; - if (string.IsNullOrEmpty(request.FileName)) + if (request.FileName == null) { string ext = ""; if (TYPE_IMAGE.Equals(request.Type)) @@ -138,7 +138,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work request.FileName = Guid.NewGuid().ToString("N").ToLower() + ext; } - if (string.IsNullOrEmpty(request.FileContentType)) + if (request.FileContentType == null) { if (TYPE_IMAGE.Equals(request.Type)) request.FileContentType = Utilities.FileNameToContentTypeMapper.GetContentTypeForImage(request.FileName!) ?? "image/png"; diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinMenuExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinMenuExtensions.cs index 1bb04664..feefc5e6 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinMenuExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinMenuExtensions.cs @@ -24,7 +24,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (!request.AgentId.HasValue) + if (request.AgentId == null) request.AgentId = client.Credentials.AgentId; IFlurlRequest flurlReq = client @@ -48,7 +48,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (!request.AgentId.HasValue) + if (request.AgentId == null) request.AgentId = client.Credentials.AgentId; IFlurlRequest flurlReq = client @@ -72,7 +72,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (!request.AgentId.HasValue) + if (request.AgentId == null) request.AgentId = client.Credentials.AgentId; IFlurlRequest flurlReq = client diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinMessageExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinMessageExtensions.cs index 5d7a488d..c7f17650 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinMessageExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinMessageExtensions.cs @@ -26,7 +26,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (!request.AgentId.HasValue) + if (request.AgentId == null) request.AgentId = client.Credentials.AgentId; IFlurlRequest flurlReq = client @@ -50,7 +50,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (!request.AgentId.HasValue) + if (request.AgentId == null) request.AgentId = client.Credentials.AgentId; IFlurlRequest flurlReq = client @@ -74,7 +74,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (!request.AgentId.HasValue) + if (request.AgentId == null) request.AgentId = client.Credentials.AgentId; IFlurlRequest flurlReq = client diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinSchoolExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinSchoolExtensions.cs index 1b00a622..4db95d8a 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinSchoolExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinSchoolExtensions.cs @@ -135,7 +135,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work .SetQueryParam("access_token", request.AccessToken) .SetQueryParam("department_id", request.DeparmentId); - if (request.RequireFetchChild.HasValue) + if (request.RequireFetchChild != null) flurlReq.SetQueryParam("fetch_child", request.RequireFetchChild.Value ? 1 : 0); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); @@ -566,7 +566,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work .CreateRequest(request, HttpMethod.Get, "cgi-bin", "school", "department", "list") .SetQueryParam("access_token", request.AccessToken); - if (request.ParentDepartmentId.HasValue) + if (request.ParentDepartmentId != null) flurlReq.SetQueryParam("id", request.ParentDepartmentId); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinServiceExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinServiceExtensions.cs index 6011ff03..c3312a51 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinServiceExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinServiceExtensions.cs @@ -46,10 +46,10 @@ namespace SKIT.FlurlHttpClient.Wechat.Work if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.SuiteId)) + if (request.SuiteId == null) request.SuiteId = client.Credentials.SuiteId; - if (string.IsNullOrEmpty(request.SuiteSecret)) + if (request.SuiteSecret == null) request.SuiteSecret = client.Credentials.SuiteSecret; IFlurlRequest flurlReq = client @@ -246,7 +246,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work const string TYPE_VOICE = "voice"; const string TYPE_VIDEO = "video"; - if (string.IsNullOrEmpty(request.FileName)) + if (request.FileName == null) { string ext = ""; if (TYPE_IMAGE.Equals(request.Type)) @@ -259,7 +259,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work request.FileName = Guid.NewGuid().ToString("N").ToLower() + ext; } - if (string.IsNullOrEmpty(request.FileContentType)) + if (request.FileContentType == null) { if (TYPE_IMAGE.Equals(request.Type)) request.FileContentType = Utilities.FileNameToContentTypeMapper.GetContentTypeForImage(request.FileName!) ?? "image/png"; diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinUserExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinUserExtensions.cs index 48a330ea..d9eeb593 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinUserExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinUserExtensions.cs @@ -143,7 +143,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work .SetQueryParam("access_token", request.AccessToken) .SetQueryParam("department_id", request.DepartmentId); - if (request.RequireFetchChild.HasValue) + if (request.RequireFetchChild != null) flurlReq.SetQueryParam("fetch_child", request.RequireFetchChild.Value ? 1 : 0); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); @@ -169,7 +169,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work .SetQueryParam("access_token", request.AccessToken) .SetQueryParam("department_id", request.DepartmentId); - if (request.RequireFetchChild.HasValue) + if (request.RequireFetchChild != null) flurlReq.SetQueryParam("fetch_child", request.RequireFetchChild.Value ? 1 : 0); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); @@ -324,10 +324,10 @@ namespace SKIT.FlurlHttpClient.Wechat.Work .CreateRequest(request, HttpMethod.Get, "cgi-bin", "user", "list_member_auth") .SetQueryParam("access_token", request.AccessToken); - if (!string.IsNullOrEmpty(request.NextCursor)) + if (request.NextCursor != null) flurlReq.SetQueryParam("cursor", request.NextCursor); - if (request.Limit.HasValue) + if (request.Limit != null) flurlReq.SetQueryParam("limit", request.Limit); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/WechatWorkClient.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/WechatWorkClient.cs index 46f90b56..c165f02b 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/WechatWorkClient.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/WechatWorkClient.cs @@ -59,7 +59,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work { IFlurlRequest flurlRequest = FlurlClient.Request(urlSegments).WithVerb(method); - if (request.Timeout.HasValue) + if (request.Timeout != null) { flurlRequest.WithTimeout(TimeSpan.FromMilliseconds(request.Timeout.Value)); } From 97f58456c2a65b0018b6c379bdc5b652b47b29c0 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Tue, 19 Oct 2021 10:32:30 +0800 Subject: [PATCH 06/15] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20XmlSerializer?= =?UTF-8?q?=20=E6=BD=9C=E5=9C=A8=E7=9A=84=E5=86=85=E5=AD=98=E6=B3=84?= =?UTF-8?q?=E6=BC=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WechatApiClientEventExtensions.cs | 5 +-- .../Utilities/Internal/XmlUtility.cs | 43 ++++++++++++++----- ...chatOpenAIPlatformClientEventExtensions.cs | 6 +-- .../Utilities/Internal/XmlUtility.cs | 43 ++++++++++++++----- .../WechatWorkClientEventExtensions.cs | 6 +-- .../Utilities/Internal/XmlUtility.cs | 43 ++++++++++++++----- 6 files changed, 99 insertions(+), 47 deletions(-) diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientEventExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientEventExtensions.cs index ffb5b645..490beddb 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientEventExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientEventExtensions.cs @@ -79,10 +79,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api callbackXml = Utilities.WxBizMsgCryptor.AESDecrypt(cipherText: encryptedXml!, encodingAESKey: client.Credentials.PushEncodingAESKey!, out _); } - using var reader = new StringReader(callbackXml); - - XmlSerializer xmlSerializer = new XmlSerializer(typeof(TEvent), new XmlRootAttribute("xml")); - return (TEvent)xmlSerializer.Deserialize(reader)!; + return Utilities.XmlUtility.Deserialize(callbackXml); } catch (WechatApiException) { diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Utilities/Internal/XmlUtility.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Utilities/Internal/XmlUtility.cs index cd7f4ec2..57a6bd4f 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Utilities/Internal/XmlUtility.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Utilities/Internal/XmlUtility.cs @@ -13,6 +13,21 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Utilities // REF: https://docs.microsoft.com/zh-cn/dotnet/api/system.xml.serialization.xmlserializer#dynamically-generated-assemblies private static Hashtable _serializers = new Hashtable(); + private static XmlSerializer GetTypedSerializer(Type type) + { + if (type == null) throw new ArgumentNullException(nameof(type)); + + string skey = type.AssemblyQualifiedName; + XmlSerializer? xmlSerializer = (XmlSerializer)_serializers[skey]; + if (xmlSerializer == null) + { + xmlSerializer = new XmlSerializer(type, new XmlRootAttribute("xml")); + _serializers[skey] = xmlSerializer; + } + + return xmlSerializer; + } + public static string Serialize(Type type, object obj) { string xml; @@ -24,19 +39,12 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Utilities settings.WriteEndDocumentOnClose = false; settings.NamespaceHandling = NamespaceHandling.OmitDuplicates; - string skey = type.AssemblyQualifiedName; - XmlSerializer? xmlSerializer = (XmlSerializer)_serializers[skey]; - if (xmlSerializer == null) - { - xmlSerializer = new XmlSerializer(type, new XmlRootAttribute("xml")); - _serializers[skey] = xmlSerializer; - } - using var stream = new MemoryStream(); using var writer = XmlWriter.Create(stream, settings); - XmlSerializerNamespaces xmlNamespace = new XmlSerializerNamespaces(); - xmlNamespace.Add(string.Empty, string.Empty); - xmlSerializer.Serialize(writer, obj, xmlNamespace); + XmlSerializer serializer = GetTypedSerializer(type); + XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); + ns.Add(string.Empty, string.Empty); + serializer.Serialize(writer, obj, ns); writer.Flush(); xml = Encoding.UTF8.GetString(stream.ToArray()); xml = Regex.Replace(xml, "\\s*<\\w+ (xsi|d2p1):nil=\"true\"[^>]*/>", string.Empty, RegexOptions.IgnoreCase); @@ -50,5 +58,18 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Utilities { return Serialize(typeof(T), obj); } + + public static object Deserialize(Type type, string xml) + { + using var reader = new StringReader(xml); + XmlSerializer serializer = GetTypedSerializer(type); + return serializer.Deserialize(reader); + } + + public static T Deserialize(string xml) + where T : class + { + return (T)Deserialize(typeof(T), xml); + } } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIPlatformClientEventExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIPlatformClientEventExtensions.cs index 5fc79c66..f7072c4d 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIPlatformClientEventExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIPlatformClientEventExtensions.cs @@ -41,11 +41,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI throw new Exceptions.WechatOpenAIEventSerializationException("Encrypt event failed, because of empty encrypted data."); callbackXml = Utilities.WxBizMsgCryptor.AESDecrypt(cipherText: encryptedXml!, encodingAESKey: client.Credentials.EncodingAESKey!, out _); - - using var reader = new StringReader(callbackXml); - - XmlSerializer xmlSerializer = new XmlSerializer(typeof(TEvent), new XmlRootAttribute("xml")); - return (TEvent)xmlSerializer.Deserialize(reader)!; + return Utilities.XmlUtility.Deserialize(callbackXml); } catch (WechatOpenAIException) { diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Utilities/Internal/XmlUtility.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Utilities/Internal/XmlUtility.cs index 92d2ffdf..38d62f3c 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Utilities/Internal/XmlUtility.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Utilities/Internal/XmlUtility.cs @@ -13,6 +13,21 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Utilities // REF: https://docs.microsoft.com/zh-cn/dotnet/api/system.xml.serialization.xmlserializer#dynamically-generated-assemblies private static Hashtable _serializers = new Hashtable(); + private static XmlSerializer GetTypedSerializer(Type type) + { + if (type == null) throw new ArgumentNullException(nameof(type)); + + string skey = type.AssemblyQualifiedName; + XmlSerializer? xmlSerializer = (XmlSerializer)_serializers[skey]; + if (xmlSerializer == null) + { + xmlSerializer = new XmlSerializer(type, new XmlRootAttribute("xml")); + _serializers[skey] = xmlSerializer; + } + + return xmlSerializer; + } + public static string Serialize(Type type, object obj) { string xml; @@ -24,19 +39,12 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Utilities settings.WriteEndDocumentOnClose = false; settings.NamespaceHandling = NamespaceHandling.OmitDuplicates; - string skey = type.AssemblyQualifiedName; - XmlSerializer? xmlSerializer = (XmlSerializer)_serializers[skey]; - if (xmlSerializer == null) - { - xmlSerializer = new XmlSerializer(type, new XmlRootAttribute("xml")); - _serializers[skey] = xmlSerializer; - } - using var stream = new MemoryStream(); using var writer = XmlWriter.Create(stream, settings); - XmlSerializerNamespaces xmlNamespace = new XmlSerializerNamespaces(); - xmlNamespace.Add(string.Empty, string.Empty); - xmlSerializer.Serialize(writer, obj, xmlNamespace); + XmlSerializer serializer = GetTypedSerializer(type); + XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); + ns.Add(string.Empty, string.Empty); + serializer.Serialize(writer, obj, ns); writer.Flush(); xml = Encoding.UTF8.GetString(stream.ToArray()); xml = Regex.Replace(xml, "\\s*<\\w+ (xsi|d2p1):nil=\"true\"[^>]*/>", string.Empty, RegexOptions.IgnoreCase); @@ -50,5 +58,18 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Utilities { return Serialize(typeof(T), obj); } + + public static object Deserialize(Type type, string xml) + { + using var reader = new StringReader(xml); + XmlSerializer serializer = GetTypedSerializer(type); + return serializer.Deserialize(reader); + } + + public static T Deserialize(string xml) + where T : class + { + return (T)Deserialize(typeof(T), xml); + } } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientEventExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientEventExtensions.cs index f048e65b..348f4fc9 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientEventExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientEventExtensions.cs @@ -71,11 +71,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work throw new Exceptions.WechatWorkEventSerializationException("Encrypt event failed, because of empty encrypted data."); callbackXml = Utilities.WxBizMsgCryptor.AESDecrypt(cipherText: encryptedXml!, encodingAESKey: client.Credentials.PushEncodingAESKey!, out _); - - using var reader = new StringReader(callbackXml); - - XmlSerializer xmlSerializer = new XmlSerializer(typeof(TEvent), new XmlRootAttribute("xml")); - return (TEvent)xmlSerializer.Deserialize(reader)!; + return Utilities.XmlUtility.Deserialize(callbackXml); } catch (WechatWorkException) { diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Utilities/Internal/XmlUtility.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Utilities/Internal/XmlUtility.cs index 99bdf5fc..1260d779 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Utilities/Internal/XmlUtility.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Utilities/Internal/XmlUtility.cs @@ -13,6 +13,21 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Utilities // REF: https://docs.microsoft.com/zh-cn/dotnet/api/system.xml.serialization.xmlserializer#dynamically-generated-assemblies private static Hashtable _serializers = new Hashtable(); + private static XmlSerializer GetTypedSerializer(Type type) + { + if (type == null) throw new ArgumentNullException(nameof(type)); + + string skey = type.AssemblyQualifiedName; + XmlSerializer? xmlSerializer = (XmlSerializer)_serializers[skey]; + if (xmlSerializer == null) + { + xmlSerializer = new XmlSerializer(type, new XmlRootAttribute("xml")); + _serializers[skey] = xmlSerializer; + } + + return xmlSerializer; + } + public static string Serialize(Type type, object obj) { string xml; @@ -24,19 +39,12 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Utilities settings.WriteEndDocumentOnClose = false; settings.NamespaceHandling = NamespaceHandling.OmitDuplicates; - string skey = type.AssemblyQualifiedName; - XmlSerializer? xmlSerializer = (XmlSerializer)_serializers[skey]; - if (xmlSerializer == null) - { - xmlSerializer = new XmlSerializer(type, new XmlRootAttribute("xml")); - _serializers[skey] = xmlSerializer; - } - using var stream = new MemoryStream(); using var writer = XmlWriter.Create(stream, settings); - XmlSerializerNamespaces xmlNamespace = new XmlSerializerNamespaces(); - xmlNamespace.Add(string.Empty, string.Empty); - xmlSerializer.Serialize(writer, obj, xmlNamespace); + XmlSerializer serializer = GetTypedSerializer(type); + XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); + ns.Add(string.Empty, string.Empty); + serializer.Serialize(writer, obj, ns); writer.Flush(); xml = Encoding.UTF8.GetString(stream.ToArray()); xml = Regex.Replace(xml, "\\s*<\\w+ (xsi|d2p1):nil=\"true\"[^>]*/>", string.Empty, RegexOptions.IgnoreCase); @@ -50,5 +58,18 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Utilities { return Serialize(typeof(T), obj); } + + public static object Deserialize(Type type, string xml) + { + using var reader = new StringReader(xml); + XmlSerializer serializer = GetTypedSerializer(type); + return serializer.Deserialize(reader); + } + + public static T Deserialize(string xml) + where T : class + { + return (T)Deserialize(typeof(T), xml); + } } } From be302cca2b3562a2dfa1f56c00adb97feff3c863 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Tue, 19 Oct 2021 10:34:35 +0800 Subject: [PATCH 07/15] feat(wxapi): bump version to v1.10.1 --- .../SKIT.FlurlHttpClient.Wechat.Api.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/SKIT.FlurlHttpClient.Wechat.Api.csproj b/src/SKIT.FlurlHttpClient.Wechat.Api/SKIT.FlurlHttpClient.Wechat.Api.csproj index 5a7fb209..38dbc6df 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/SKIT.FlurlHttpClient.Wechat.Api.csproj +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/SKIT.FlurlHttpClient.Wechat.Api.csproj @@ -12,7 +12,7 @@ MIT https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat Flurl.Http Wechat Weixin MicroMessage MiniProgram MiniGame MiniStore 微信 公众号 服务号 订阅号 小程序 小游戏 小商店 公众平台 开放平台 微信公众号 微信服务号 微信订阅号 微信小程序 微信小游戏 微信小商店 微信公众平台 微信开放平台 - 1.10.0 + 1.10.1 基于 Flurl.Http 的微信 API 客户端,支持公众平台(订阅号、服务号、小程序、小游戏、小商店)、开放平台等平台,支持基础服务、模板消息、订阅消息、客服消息、动态消息、菜单管理、素材管理、留言管理、用户管理、账号管理、数据统计、微信门店、微信小店、智能接口、一物一码、微信发票、微信非税缴费、插件管理、附近的小程序、小程序码、小程序搜索、URL Scheme、URL Link、即时配送、物流助手、直播、生物认证、虚拟支付、开放数据、对局匹配、帧同步、内容安全、安全风控、第三方平台等功能。 Fu Diwei git From 751783bd1518515a5d18731a6c667b3cbfc10081 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Tue, 19 Oct 2021 10:35:23 +0800 Subject: [PATCH 08/15] docs: edit CHANGELOG --- CHANGELOG.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b2498c09..7f36ce7b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,6 +34,10 @@ SKIT.FlurlHttpClient.Wechat.Api 更新日志 +- Release 1.10.1 + + - **修复**:修复 XmlSerializer 潜在的内存泄漏问题。([GitHub Issue #11](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat/issues/11)) + - Release 1.10.0 - **新增**:新增第三方平台申请开通直播相关接口。 @@ -44,8 +48,6 @@ - **新增**:随官方更新小程序联盟推客端相关接口模型。 - - **修复**:修复 XmlSerializer 潜在的内存泄漏问题。([GitHub Issue #11](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat/issues/11)) - - **修复**:修复 AES 解密结果结尾有冗余的空白字符问题。 - Release 1.9.0 From 0b3299f091931ece668ebfb761898664dbb02961 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Tue, 19 Oct 2021 10:51:08 +0800 Subject: [PATCH 09/15] style: clean code --- .../Utilities/Internal/XmlUtility.cs | 6 +++--- .../Utilities/Internal/XmlUtility.cs | 6 +++--- .../Utilities/Internal/XmlUtility.cs | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Utilities/Internal/XmlUtility.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Utilities/Internal/XmlUtility.cs index 57a6bd4f..8cd97d73 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Utilities/Internal/XmlUtility.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Utilities/Internal/XmlUtility.cs @@ -17,8 +17,8 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Utilities { if (type == null) throw new ArgumentNullException(nameof(type)); - string skey = type.AssemblyQualifiedName; - XmlSerializer? xmlSerializer = (XmlSerializer)_serializers[skey]; + string skey = type.AssemblyQualifiedName ?? type.GetHashCode().ToString(); + XmlSerializer? xmlSerializer = (XmlSerializer?)_serializers[skey]; if (xmlSerializer == null) { xmlSerializer = new XmlSerializer(type, new XmlRootAttribute("xml")); @@ -63,7 +63,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Utilities { using var reader = new StringReader(xml); XmlSerializer serializer = GetTypedSerializer(type); - return serializer.Deserialize(reader); + return serializer.Deserialize(reader)!; } public static T Deserialize(string xml) diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Utilities/Internal/XmlUtility.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Utilities/Internal/XmlUtility.cs index 38d62f3c..4d305cc9 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Utilities/Internal/XmlUtility.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Utilities/Internal/XmlUtility.cs @@ -17,8 +17,8 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Utilities { if (type == null) throw new ArgumentNullException(nameof(type)); - string skey = type.AssemblyQualifiedName; - XmlSerializer? xmlSerializer = (XmlSerializer)_serializers[skey]; + string skey = type.AssemblyQualifiedName ?? type.GetHashCode().ToString(); + XmlSerializer? xmlSerializer = (XmlSerializer?)_serializers[skey]; if (xmlSerializer == null) { xmlSerializer = new XmlSerializer(type, new XmlRootAttribute("xml")); @@ -63,7 +63,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Utilities { using var reader = new StringReader(xml); XmlSerializer serializer = GetTypedSerializer(type); - return serializer.Deserialize(reader); + return serializer.Deserialize(reader)!; } public static T Deserialize(string xml) diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Utilities/Internal/XmlUtility.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Utilities/Internal/XmlUtility.cs index 1260d779..0b331691 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Utilities/Internal/XmlUtility.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Utilities/Internal/XmlUtility.cs @@ -17,8 +17,8 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Utilities { if (type == null) throw new ArgumentNullException(nameof(type)); - string skey = type.AssemblyQualifiedName; - XmlSerializer? xmlSerializer = (XmlSerializer)_serializers[skey]; + string skey = type.AssemblyQualifiedName ?? type.GetHashCode().ToString(); + XmlSerializer? xmlSerializer = (XmlSerializer?)_serializers[skey]; if (xmlSerializer == null) { xmlSerializer = new XmlSerializer(type, new XmlRootAttribute("xml")); @@ -63,7 +63,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Utilities { using var reader = new StringReader(xml); XmlSerializer serializer = GetTypedSerializer(type); - return serializer.Deserialize(reader); + return serializer.Deserialize(reader)!; } public static T Deserialize(string xml) From 4092ac467d05740c2798093cc892e7eac9a58f38 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Mon, 18 Oct 2021 19:19:51 +0800 Subject: [PATCH 10/15] style: clean code --- .../WechatAdsClientExecuteAdCreativesExtensions.cs | 8 ++++---- .../WechatAdsClientExecuteAdGroupsExtensions.cs | 8 ++++---- .../WechatAdsClientExecuteAdsExtensions.cs | 8 ++++---- .../WechatAdsClientExecuteAsyncTasksExtensions.cs | 4 ++-- .../WechatAdsClientExecuteCampaignsExtensions.cs | 8 ++++---- .../WechatAdsClientExecuteCreditBillsExtensions.cs | 4 ++-- ...hatAdsClientExecuteCustomAudiencesExtensions.cs | 14 +++++++------- .../WechatAdsClientExecuteFundsExtensions.cs | 6 +++--- .../WechatAdsClientExecuteImagesExtensions.cs | 14 +++++++------- .../WechatAdsClientExecuteReportsExtensions.cs | 8 ++++---- .../WechatAdsClient.cs | 4 ++-- 11 files changed, 43 insertions(+), 43 deletions(-) diff --git a/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteAdCreativesExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteAdCreativesExtensions.cs index 6a7874df..015c6447 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteAdCreativesExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteAdCreativesExtensions.cs @@ -66,16 +66,16 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads .CreateRequest(request, HttpMethod.Get, "adcreatives", "get") .SetQueryParam("access_token", request.AccessToken); - if (request.AdCreativeId.HasValue) + if (request.AdCreativeId != null) flurlReq.SetQueryParam("adcreative_id", request.AdCreativeId.Value); - if (request.Filters != null && request.Filters.Any()) + if (request.Filters != null) flurlReq.SetQueryParam("filtering", client.JsonSerializer.Serialize(request.Filters)); - if (request.PageSize.HasValue) + if (request.PageSize != null) flurlReq.SetQueryParam("page_size", request.PageSize.Value); - if (request.Page.HasValue) + if (request.Page != null) flurlReq.SetQueryParam("page", request.Page.Value); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); diff --git a/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteAdGroupsExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteAdGroupsExtensions.cs index fd886f8e..afd3e72f 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteAdGroupsExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteAdGroupsExtensions.cs @@ -66,16 +66,16 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads .CreateRequest(request, HttpMethod.Get, "adgroups", "get") .SetQueryParam("access_token", request.AccessToken); - if (request.AdGroupId.HasValue) + if (request.AdGroupId != null) flurlReq.SetQueryParam("adgroup_id", request.AdGroupId.Value); - if (request.Filters != null && request.Filters.Any()) + if (request.Filters != null) flurlReq.SetQueryParam("filtering", client.JsonSerializer.Serialize(request.Filters)); - if (request.PageSize.HasValue) + if (request.PageSize != null) flurlReq.SetQueryParam("page_size", request.PageSize.Value); - if (request.Page.HasValue) + if (request.Page != null) flurlReq.SetQueryParam("page", request.Page.Value); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); diff --git a/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteAdsExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteAdsExtensions.cs index ad41e7f9..e3d3b721 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteAdsExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteAdsExtensions.cs @@ -66,16 +66,16 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads .CreateRequest(request, HttpMethod.Get, "ads", "get") .SetQueryParam("access_token", request.AccessToken); - if (request.AdId.HasValue) + if (request.AdId != null) flurlReq.SetQueryParam("ad_id", request.AdId.Value); - if (request.Filters != null && request.Filters.Any()) + if (request.Filters != null) flurlReq.SetQueryParam("filtering", client.JsonSerializer.Serialize(request.Filters)); - if (request.PageSize.HasValue) + if (request.PageSize != null) flurlReq.SetQueryParam("page_size", request.PageSize.Value); - if (request.Page.HasValue) + if (request.Page != null) flurlReq.SetQueryParam("page", request.Page.Value); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); diff --git a/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteAsyncTasksExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteAsyncTasksExtensions.cs index eae0a526..8a3adba5 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteAsyncTasksExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteAsyncTasksExtensions.cs @@ -50,10 +50,10 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads if (request.Filters != null && request.Filters.Any()) flurlReq.SetQueryParam("filtering", client.JsonSerializer.Serialize(request.Filters)); - if (request.PageSize.HasValue) + if (request.PageSize != null) flurlReq.SetQueryParam("page_size", request.PageSize.Value); - if (request.Page.HasValue) + if (request.Page != null) flurlReq.SetQueryParam("page", request.Page.Value); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); diff --git a/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteCampaignsExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteCampaignsExtensions.cs index a288cd82..ae64f815 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteCampaignsExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteCampaignsExtensions.cs @@ -66,16 +66,16 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads .CreateRequest(request, HttpMethod.Get, "campaigns", "get") .SetQueryParam("access_token", request.AccessToken); - if (request.CampaignId.HasValue) + if (request.CampaignId != null) flurlReq.SetQueryParam("campaign_id", request.CampaignId.Value); - if (request.Filters != null && request.Filters.Any()) + if (request.Filters != null) flurlReq.SetQueryParam("filtering", client.JsonSerializer.Serialize(request.Filters)); - if (request.PageSize.HasValue) + if (request.PageSize != null) flurlReq.SetQueryParam("page_size", request.PageSize.Value); - if (request.Page.HasValue) + if (request.Page != null) flurlReq.SetQueryParam("page", request.Page.Value); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); diff --git a/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteCreditBillsExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteCreditBillsExtensions.cs index 32ee1391..4ab7bb22 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteCreditBillsExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteCreditBillsExtensions.cs @@ -29,10 +29,10 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads .SetQueryParam("bill_year", request.BillYear) .SetQueryParam("bill_month", request.BillMonth); - if (request.PageSize.HasValue) + if (request.PageSize != null) flurlReq.SetQueryParam("page_size", request.PageSize.Value); - if (request.Page.HasValue) + if (request.Page != null) flurlReq.SetQueryParam("page", request.Page.Value); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); diff --git a/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteCustomAudiencesExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteCustomAudiencesExtensions.cs index 7a32a76d..dc7b5211 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteCustomAudiencesExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteCustomAudiencesExtensions.cs @@ -67,13 +67,13 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads .CreateRequest(request, HttpMethod.Get, "custom_audiences", "get") .SetQueryParam("access_token", request.AccessToken); - if (request.CustomAudienceId.HasValue) + if (request.CustomAudienceId != null) flurlReq.SetQueryParam("audience_id", request.CustomAudienceId.Value); - if (request.PageSize.HasValue) + if (request.PageSize != null) flurlReq.SetQueryParam("page_size", request.PageSize.Value); - if (request.Page.HasValue) + if (request.Page != null) flurlReq.SetQueryParam("page", request.Page.Value); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); @@ -126,16 +126,16 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads .CreateRequest(request, HttpMethod.Get, "custom_audience_files", "get") .SetQueryParam("access_token", request.AccessToken); - if (request.CustomAudienceId.HasValue) + if (request.CustomAudienceId != null) flurlReq.SetQueryParam("audience_id", request.CustomAudienceId.Value); - if (request.CustomAudienceFileId.HasValue) + if (request.CustomAudienceFileId != null) flurlReq.SetQueryParam("custom_audience_file_id", request.CustomAudienceFileId.Value); - if (request.PageSize.HasValue) + if (request.PageSize != null) flurlReq.SetQueryParam("page_size", request.PageSize.Value); - if (request.Page.HasValue) + if (request.Page != null) flurlReq.SetQueryParam("page", request.Page.Value); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); diff --git a/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteFundsExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteFundsExtensions.cs index 6f19f6e1..5aca6615 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteFundsExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteFundsExtensions.cs @@ -68,13 +68,13 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads if (request.DateRange != null) flurlReq.SetQueryParam("date_range", client.JsonSerializer.Serialize(request.DateRange)); - if (!string.IsNullOrEmpty(request.TradeType)) + if (request.TradeType != null) flurlReq.SetQueryParam("trade_type", request.TradeType); - if (request.PageSize.HasValue) + if (request.PageSize != null) flurlReq.SetQueryParam("page_size", request.PageSize.Value); - if (request.Page.HasValue) + if (request.Page != null) flurlReq.SetQueryParam("page", request.Page.Value); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); diff --git a/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteImagesExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteImagesExtensions.cs index b4ecb6f5..e773659d 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteImagesExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteImagesExtensions.cs @@ -26,17 +26,17 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.FileName)) + if (request.FileName == null) { request.FileName = Guid.NewGuid().ToString("N").ToLower(); } - if (string.IsNullOrEmpty(request.FileContentType)) + if (request.FileContentType == null) { request.FileContentType = Utilities.FileNameToContentTypeMapper.GetContentTypeForImage(request.FileName!) ?? "image/png"; } - if (string.IsNullOrEmpty(request.FileHash)) + if (request.FileHash == null) { request.FileHash = Security.MD5Utility.Hash(request.FileBytes ?? new byte[0]); } @@ -71,16 +71,16 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads .CreateRequest(request, HttpMethod.Get, "images", "get") .SetQueryParam("access_token", request.AccessToken); - if (!string.IsNullOrEmpty(request.ImageId)) + if (request.ImageId != null) flurlReq.SetQueryParam("image_id", request.ImageId); - if (request.Filters != null && request.Filters.Any()) + if (request.Filters != null) flurlReq.SetQueryParam("filtering", client.JsonSerializer.Serialize(request.Filters)); - if (request.PageSize.HasValue) + if (request.PageSize != null) flurlReq.SetQueryParam("page_size", request.PageSize.Value); - if (request.Page.HasValue) + if (request.Page != null) flurlReq.SetQueryParam("page", request.Page.Value); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); diff --git a/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteReportsExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteReportsExtensions.cs index 38580328..5529865f 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteReportsExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Ads/Extensions/WechatAdsClientExecuteReportsExtensions.cs @@ -31,16 +31,16 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads if (request.DateRange != null) flurlReq.SetQueryParam("date_range", client.JsonSerializer.Serialize(request.DateRange)); - if (!string.IsNullOrEmpty(request.ReportType)) + if (request.ReportType != null) flurlReq.SetQueryParam("report_type", request.ReportType); - if (!string.IsNullOrEmpty(request.ReportLevel)) + if (request.ReportLevel != null) flurlReq.SetQueryParam("level", request.ReportLevel); - if (request.PageSize.HasValue) + if (request.PageSize != null) flurlReq.SetQueryParam("page_size", request.PageSize.Value); - if (request.Page.HasValue) + if (request.Page != null) flurlReq.SetQueryParam("page", request.Page.Value); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); diff --git a/src/SKIT.FlurlHttpClient.Wechat.Ads/WechatAdsClient.cs b/src/SKIT.FlurlHttpClient.Wechat.Ads/WechatAdsClient.cs index 730072cf..1db59616 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Ads/WechatAdsClient.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Ads/WechatAdsClient.cs @@ -64,12 +64,12 @@ namespace SKIT.FlurlHttpClient.Wechat.Ads { IFlurlRequest flurlRequest = FlurlClient.Request(urlSegments).WithVerb(method); - if (request.Timeout.HasValue) + if (request.Timeout != null) { flurlRequest.WithTimeout(TimeSpan.FromMilliseconds(request.Timeout.Value)); } - if (!string.IsNullOrEmpty(request.Version)) + if (request.Version != null) { flurlRequest.SetQueryParam("version", request.Version); } From 1f23593d802e67ec0356920b41f6cb26b4d7bc57 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Mon, 18 Oct 2021 19:22:22 +0800 Subject: [PATCH 11/15] style: clean code --- ...atApiClientExecuteCardInvoiceExtensions.cs | 2 +- ...ApiClientExecuteUnionPromoterExtensions.cs | 34 +++++++++---------- .../WechatApiClientExecuteWxaApiExtensions.cs | 14 ++++---- ...tApiClientExecuteWxaComponentExtensions.cs | 2 +- .../WechatApiClient.cs | 2 +- 5 files changed, 27 insertions(+), 27 deletions(-) diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCardInvoiceExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCardInvoiceExtensions.cs index c7e3edc3..87dc96d4 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCardInvoiceExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCardInvoiceExtensions.cs @@ -175,7 +175,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (request.AppId == null) request.AppId = client.Credentials.AppId; - if (request.CardExtra != null && string.IsNullOrEmpty(request.CardExtra.Nonce)) + if (request.CardExtra != null && request.CardExtra.Nonce == null) request.CardExtra.Nonce = Guid.NewGuid().ToString("N"); IFlurlRequest flurlReq = client diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteUnionPromoterExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteUnionPromoterExtensions.cs index 49dfd12e..400aeb5e 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteUnionPromoterExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteUnionPromoterExtensions.cs @@ -138,34 +138,34 @@ namespace SKIT.FlurlHttpClient.Wechat.Api .SetQueryParam("from", request.Offset) .SetQueryParam("limit", request.Limit); - if (request.QueryType.HasValue) + if (request.QueryType != null) flurlReq.SetQueryParam("queryType", request.QueryType.Value); if (request.Query != null) flurlReq.SetQueryParam("query", request.Query); - if (request.MaxPrice.HasValue) + if (request.MaxPrice != null) flurlReq.SetQueryParam("maxPrice", request.MaxPrice.Value); - if (request.MinPrice.HasValue) + if (request.MinPrice != null) flurlReq.SetQueryParam("minPrice", request.MinPrice.Value); - if (request.MinCommissionValue.HasValue) + if (request.MinCommissionValue != null) flurlReq.SetQueryParam("minCommissionValue", request.MinCommissionValue.Value); - if (request.MinCommissionRatio.HasValue) + if (request.MinCommissionRatio != null) flurlReq.SetQueryParam("minCommissionRatio", request.MinCommissionRatio.Value); - if (request.SortType.HasValue) + if (request.SortType != null) flurlReq.SetQueryParam("sortType", request.SortType.Value); - if (request.HasCoupon.HasValue) + if (request.HasCoupon != null) flurlReq.SetQueryParam("hasCoupon", request.HasCoupon.Value ? 1 : 0); if (request.ShopAppIdList != null) flurlReq.SetQueryParam("shopAppIds", string.Join(",", request.ShopAppIdList)); - if (request.CategoryId.HasValue) + if (request.CategoryId != null) flurlReq.SetQueryParam("categoryId", request.CategoryId); if (request.CategoryIdList != null) @@ -199,28 +199,28 @@ namespace SKIT.FlurlHttpClient.Wechat.Api .SetQueryParam("from", request.Offset) .SetQueryParam("limit", request.Limit); - if (request.MaxPrice.HasValue) + if (request.MaxPrice != null) flurlReq.SetQueryParam("maxPrice", request.MaxPrice.Value); - if (request.MinPrice.HasValue) + if (request.MinPrice != null) flurlReq.SetQueryParam("minPrice", request.MinPrice.Value); - if (request.MinCommissionValue.HasValue) + if (request.MinCommissionValue != null) flurlReq.SetQueryParam("minCommissionValue", request.MinCommissionValue.Value); - if (request.MinCommissionRatio.HasValue) + if (request.MinCommissionRatio != null) flurlReq.SetQueryParam("minCommissionRatio", request.MinCommissionRatio.Value); - if (request.SortType.HasValue) + if (request.SortType != null) flurlReq.SetQueryParam("sortType", request.SortType.Value); - if (request.HasCoupon.HasValue) + if (request.HasCoupon != null) flurlReq.SetQueryParam("hasCoupon", request.HasCoupon.Value ? 1 : 0); if (request.ShopAppIdList != null) flurlReq.SetQueryParam("shopAppIds", string.Join(",", request.ShopAppIdList)); - if (request.CategoryId.HasValue) + if (request.CategoryId != null) flurlReq.SetQueryParam("categoryId", request.CategoryId); if (request.CategoryIdList != null) @@ -302,10 +302,10 @@ namespace SKIT.FlurlHttpClient.Wechat.Api .SetQueryParam("access_token", request.AccessToken) .SetQueryParam("page", request.Page); - if (request.StartTimestamp.HasValue) + if (request.StartTimestamp != null) flurlReq.SetQueryParam("startTimestamp", request.StartTimestamp.Value); - if (request.EndTimestamp.HasValue) + if (request.EndTimestamp != null) flurlReq.SetQueryParam("endTimestamp", request.EndTimestamp.Value); if (request.CommissionStatus != null) diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteWxaApiExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteWxaApiExtensions.cs index fc6cbfc6..9d41e00f 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteWxaApiExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteWxaApiExtensions.cs @@ -163,7 +163,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api .SetQueryParam("page", request.Page) .SetQueryParam("num", request.Limit); - if (request.Type.HasValue) + if (request.Type != null) flurlReq.SetQueryParam("type", request.Type); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); @@ -301,13 +301,13 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (request.FilterMessage != null) flurlReq.SetQueryParam("filterMsg", request.FilterMessage); - if (request.LogLevel.HasValue) + if (request.LogLevel != null) flurlReq.SetQueryParam("level", request.LogLevel.Value); - if (request.Offset.HasValue) + if (request.Offset != null) flurlReq.SetQueryParam("start", request.Offset.Value); - if (request.Limit.HasValue) + if (request.Limit != null) flurlReq.SetQueryParam("limit", request.Limit.Value); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); @@ -994,13 +994,13 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (request.Keyword != null) flurlReq.SetQueryParam("keyword", request.Keyword); - if (request.Role.HasValue) + if (request.Role != null) flurlReq.SetQueryParam("role", request.Role.Value); - if (request.Offset.HasValue) + if (request.Offset != null) flurlReq.SetQueryParam("offset", request.Offset.Value); - if (request.Limit.HasValue) + if (request.Limit != null) flurlReq.SetQueryParam("limit", request.Limit.Value); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteWxaComponentExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteWxaComponentExtensions.cs index b664e5a9..4557c3d1 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteWxaComponentExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteWxaComponentExtensions.cs @@ -610,7 +610,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api if (request.Action != null) flurlReq.SetQueryParam("action", request.Action); - if (request.AppVersion.HasValue) + if (request.AppVersion != null) flurlReq.SetQueryParam("app_version", request.AppVersion.Value); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/WechatApiClient.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/WechatApiClient.cs index 9576994e..b8877006 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/WechatApiClient.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/WechatApiClient.cs @@ -58,7 +58,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api { IFlurlRequest flurlRequest = FlurlClient.Request(urlSegments).WithVerb(method); - if (request.Timeout.HasValue) + if (request.Timeout != null) { flurlRequest.WithTimeout(TimeSpan.FromMilliseconds(request.Timeout.Value)); } From cf94c2816f7a2eaf1b24d7d61f4c4f7178da8bd4 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Mon, 18 Oct 2021 19:40:11 +0800 Subject: [PATCH 12/15] style: clean code --- .../WechatOpenAIPlatformClient.cs | 2 +- .../WechatOpenAIThirdPartyClient.cs | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/WechatOpenAIPlatformClient.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/WechatOpenAIPlatformClient.cs index d64f45fa..3647f1c4 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/WechatOpenAIPlatformClient.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/WechatOpenAIPlatformClient.cs @@ -56,7 +56,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI { IFlurlRequest flurlRequest = FlurlClient.Request(urlSegments).WithVerb(method); - if (request.Timeout.HasValue) + if (request.Timeout != null) { flurlRequest.WithTimeout(TimeSpan.FromMilliseconds(request.Timeout.Value)); } diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/WechatOpenAIThirdPartyClient.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/WechatOpenAIThirdPartyClient.cs index 211b539b..1d6f47e4 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/WechatOpenAIThirdPartyClient.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/WechatOpenAIThirdPartyClient.cs @@ -55,13 +55,16 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI { IFlurlRequest flurlRequest = FlurlClient.Request(urlSegments).WithVerb(method); - if (request.Timeout.HasValue) + if (request.Timeout != null) { flurlRequest.WithTimeout(TimeSpan.FromMilliseconds(request.Timeout.Value)); } if (request.RequestId == null) + { request.RequestId = Guid.NewGuid().ToString("N"); + } + flurlRequest.WithHeader("request_id", request.RequestId); if (request.BotId != null) From 125b69063f33da21d3b585c189e682bf599dbcef Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Mon, 18 Oct 2021 19:51:57 +0800 Subject: [PATCH 13/15] style: clean code --- ...WechatTenpayClientExecuteBillExtensions.cs | 14 +++---- ...ayClientExecuteBusinessCircleExtensions.cs | 2 +- ...ientExecuteCombineTransactionExtensions.cs | 18 ++++----- ...payClientExecuteEcommerceBillExtensions.cs | 2 +- ...ntExecuteEcommerceFundBalanceExtensions.cs | 2 +- ...payClientExecuteMarketingBankExtensions.cs | 6 +-- ...ientExecuteMarketingBusifavorExtensions.cs | 28 ++++++------- ...ayClientExecuteMarketingFavorExtensions.cs | 40 +++++++++---------- ...ayClientExecuteMarketingMediaExtensions.cs | 6 +-- ...tExecuteMarketingPartnershipsExtensions.cs | 4 +- ...ecuteMarketingPayGiftActivityExtensions.cs | 14 +++---- ...cuteMerchantFundIncomeRecordsExtensions.cs | 4 +- ...ntExecuteMerchantFundWithdrawExtensions.cs | 2 +- ...payClientExecuteMerchantMediaExtensions.cs | 12 +++--- ...yClientExecuteMerchantServiceExtensions.cs | 20 +++++----- ...yClientExecutePartnerTransferExtensions.cs | 20 +++++----- ...ExecutePayPartnerTransactionsExtensions.cs | 14 +++---- ...utePayScorePartnerPermissionsExtensions.cs | 4 +- ...yClientExecutePayTransactionsExtensions.cs | 14 +++---- ...payClientExecuteProfitSharingExtensions.cs | 8 ++-- ...chatTenpayClientExecuteRefundExtensions.cs | 2 +- ...TenpayClientExecuteSmartGuideExtensions.cs | 12 +++--- ...atTenpayClientExecuteTransferExtensions.cs | 22 +++++----- ...hatTenpayClientExecuteVehicleExtensions.cs | 4 +- .../WechatTenpayClient.cs | 4 +- 25 files changed, 139 insertions(+), 139 deletions(-) diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteBillExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteBillExtensions.cs index 9a83dd85..05174ef7 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteBillExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteBillExtensions.cs @@ -43,13 +43,13 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 .CreateRequest(request, HttpMethod.Get, "bill", "tradebill") .SetQueryParam("bill_date", request.BillDateString); - if (!string.IsNullOrEmpty(request.SubMerchantId)) + if (request.SubMerchantId != null) flurlReq.SetQueryParam("sub_mchid", request.SubMerchantId); - if (!string.IsNullOrEmpty(request.BillType)) + if (request.BillType != null) flurlReq.SetQueryParam("bill_type", request.BillType); - if (!string.IsNullOrEmpty(request.TarType)) + if (request.TarType != null) flurlReq.SetQueryParam("tar_type", request.TarType); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); @@ -84,10 +84,10 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 .CreateRequest(request, HttpMethod.Get, "bill", "fundflowbill") .SetQueryParam("bill_date", request.BillDateString); - if (!string.IsNullOrEmpty(request.AccountType)) + if (request.AccountType != null) flurlReq.SetQueryParam("account_type", request.AccountType); - if (!string.IsNullOrEmpty(request.TarType)) + if (request.TarType != null) flurlReq.SetQueryParam("tar_type", request.TarType); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); @@ -117,10 +117,10 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 .SetQueryParam("bill_date", request.BillDateString) .SetQueryParam("algorithm", request.Algorithm); - if (!string.IsNullOrEmpty(request.AccountType)) + if (request.AccountType != null) flurlReq.SetQueryParam("account_type", request.AccountType); - if (!string.IsNullOrEmpty(request.TarType)) + if (request.TarType != null) flurlReq.SetQueryParam("tar_type", request.TarType); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteBusinessCircleExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteBusinessCircleExtensions.cs index 54441c9f..bfb04b8f 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteBusinessCircleExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteBusinessCircleExtensions.cs @@ -52,7 +52,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 .CreateRequest(request, HttpMethod.Get, "businesscircle", "user-authorizations", request.OpenId) .SetQueryParam("appid", request.AppId); - if (!string.IsNullOrEmpty(request.SubMerchantId)) + if (request.SubMerchantId != null) flurlReq.SetQueryParam("sub_mchid", request.SubMerchantId); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteCombineTransactionExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteCombineTransactionExtensions.cs index 3f438ead..a33ff719 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteCombineTransactionExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteCombineTransactionExtensions.cs @@ -28,14 +28,14 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.CombineMerchantId)) + if (request.CombineMerchantId == null) request.CombineMerchantId = client.Credentials.MerchantId; if (request.SubOrderList != null) { foreach (var subOrder in request.SubOrderList) { - if (string.IsNullOrEmpty(subOrder.MerchantId)) + if (subOrder.MerchantId == null) subOrder.MerchantId = request.CombineMerchantId; } } @@ -62,14 +62,14 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.CombineMerchantId)) + if (request.CombineMerchantId == null) request.CombineMerchantId = client.Credentials.MerchantId; if (request.SubOrderList != null) { foreach (var subOrder in request.SubOrderList) { - if (string.IsNullOrEmpty(subOrder.MerchantId)) + if (subOrder.MerchantId == null) subOrder.MerchantId = request.CombineMerchantId; } } @@ -94,14 +94,14 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.CombineMerchantId)) + if (request.CombineMerchantId == null) request.CombineMerchantId = client.Credentials.MerchantId; if (request.SubOrderList != null) { foreach (var subOrder in request.SubOrderList) { - if (string.IsNullOrEmpty(subOrder.MerchantId)) + if (subOrder.MerchantId == null) subOrder.MerchantId = request.CombineMerchantId; } } @@ -126,14 +126,14 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.CombineMerchantId)) + if (request.CombineMerchantId == null) request.CombineMerchantId = client.Credentials.MerchantId; if (request.SubOrderList != null) { foreach (var subOrder in request.SubOrderList) { - if (string.IsNullOrEmpty(subOrder.MerchantId)) + if (subOrder.MerchantId == null) subOrder.MerchantId = request.CombineMerchantId; } } @@ -182,7 +182,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 { foreach (var subOrder in request.SubOrderList) { - if (string.IsNullOrEmpty(subOrder.MerchantId)) + if (subOrder.MerchantId == null) subOrder.MerchantId = client.Credentials.MerchantId; } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteEcommerceBillExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteEcommerceBillExtensions.cs index 33b03008..2a89979c 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteEcommerceBillExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteEcommerceBillExtensions.cs @@ -33,7 +33,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 .SetQueryParam("account_type", request.AccountType) .SetQueryParam("algorithm", request.Algorithm); - if (!string.IsNullOrEmpty(request.TarType)) + if (request.TarType != null) flurlReq.SetQueryParam("tar_type", request.TarType); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteEcommerceFundBalanceExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteEcommerceFundBalanceExtensions.cs index 2b0ac1bc..a190cafd 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteEcommerceFundBalanceExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteEcommerceFundBalanceExtensions.cs @@ -33,7 +33,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 IFlurlRequest flurlReq = client .CreateRequest(request, HttpMethod.Get, "ecommerce", "fund", "balance", request.SubMerchantId); - if (!string.IsNullOrEmpty(request.AccountType)) + if (request.AccountType != null) flurlReq.SetQueryParam("account_type", request.AccountType); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMarketingBankExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMarketingBankExtensions.cs index 64158a24..2a3cde0d 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMarketingBankExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMarketingBankExtensions.cs @@ -30,13 +30,13 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.FileName)) + if (request.FileName == null) request.FileName = Guid.NewGuid().ToString("N").ToLower() + ".txt"; - if (string.IsNullOrEmpty(request.FileHash)) + if (request.FileHash == null) request.FileHash = Security.SHA256Utility.Hash(request.FileBytes).ToLower(); - if (string.IsNullOrEmpty(request.FileContentType)) + if (request.FileContentType == null) request.FileContentType = Utilities.FileNameToContentTypeMapper.GetContentTypeForImage(request.FileName!) ?? "text/plain"; IFlurlRequest flurlReq = client diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMarketingBusifavorExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMarketingBusifavorExtensions.cs index a00911ae..fd3ccb7d 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMarketingBusifavorExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMarketingBusifavorExtensions.cs @@ -28,7 +28,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.BelongMerchantId)) + if (request.BelongMerchantId == null) request.BelongMerchantId = client.Credentials.MerchantId; IFlurlRequest flurlReq = client @@ -155,25 +155,25 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 .CreateRequest(request, HttpMethod.Get, "marketing", "busifavor", "users", request.OpenId, "coupons") .SetQueryParam("appid", request.AppId); - if (!string.IsNullOrEmpty(request.StockId)) + if (request.StockId != null) flurlReq.SetQueryParam("stock_id", request.StockId); - if (!string.IsNullOrEmpty(request.CouponState)) + if (request.CouponState != null) flurlReq.SetQueryParam("coupon_state", request.CouponState); - if (!string.IsNullOrEmpty(request.CreatorMerchantId)) + if (request.CreatorMerchantId != null) flurlReq.SetQueryParam("creator_mchid", request.CreatorMerchantId); - if (!string.IsNullOrEmpty(request.SenderMerchantId)) + if (request.SenderMerchantId != null) flurlReq.SetQueryParam("sender_mchid", request.SenderMerchantId); - if (!string.IsNullOrEmpty(request.BelongMerchantId)) + if (request.BelongMerchantId != null) flurlReq.SetQueryParam("belong_merchant", request.BelongMerchantId); - if (request.Limit.HasValue) + if (request.Limit != null) flurlReq.SetQueryParam("limit", request.Limit.Value.ToString()); - if (request.Offset.HasValue) + if (request.Offset != null) flurlReq.SetQueryParam("offset", request.Offset.Value.ToString()); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); @@ -312,7 +312,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.MerchantId)) + if (request.MerchantId == null) request.MerchantId = client.Credentials.MerchantId; IFlurlRequest flurlReq = client @@ -336,7 +336,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.MerchantId)) + if (request.MerchantId == null) request.MerchantId = client.Credentials.MerchantId; IFlurlRequest flurlReq = client @@ -359,10 +359,10 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.PayerMerchantId)) + if (request.PayerMerchantId == null) request.PayerMerchantId = client.Credentials.MerchantId; - if (string.IsNullOrEmpty(request.PayeeMerchantId)) + if (request.PayeeMerchantId == null) request.PayeeMerchantId = client.Credentials.MerchantId; IFlurlRequest flurlReq = client @@ -405,10 +405,10 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.PayerMerchantId)) + if (request.PayerMerchantId == null) request.PayerMerchantId = client.Credentials.MerchantId; - if (string.IsNullOrEmpty(request.PayeeMerchantId)) + if (request.PayeeMerchantId == null) request.PayeeMerchantId = client.Credentials.MerchantId; IFlurlRequest flurlReq = client diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMarketingFavorExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMarketingFavorExtensions.cs index a21acb2c..472f6a9b 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMarketingFavorExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMarketingFavorExtensions.cs @@ -28,7 +28,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.BelongMerchantId)) + if (request.BelongMerchantId == null) request.BelongMerchantId = client.Credentials.MerchantId; IFlurlRequest flurlReq = client @@ -52,7 +52,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.StockCreatorMerchantId)) + if (request.StockCreatorMerchantId == null) request.StockCreatorMerchantId = client.Credentials.MerchantId; IFlurlRequest flurlReq = client @@ -76,7 +76,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.StockCreatorMerchantId)) + if (request.StockCreatorMerchantId == null) request.StockCreatorMerchantId = client.Credentials.MerchantId; IFlurlRequest flurlReq = client @@ -100,7 +100,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.StockCreatorMerchantId)) + if (request.StockCreatorMerchantId == null) request.StockCreatorMerchantId = client.Credentials.MerchantId; IFlurlRequest flurlReq = client @@ -124,7 +124,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.StockCreatorMerchantId)) + if (request.StockCreatorMerchantId == null) request.StockCreatorMerchantId = client.Credentials.MerchantId; IFlurlRequest flurlReq = client @@ -148,7 +148,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.StockCreatorMerchantId)) + if (request.StockCreatorMerchantId == null) request.StockCreatorMerchantId = client.Credentials.MerchantId; IFlurlRequest flurlReq = client @@ -157,13 +157,13 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 .SetQueryParam("limit", request.Limit.ToString()) .SetQueryParam("offset", request.Offset.ToString()); - if (request.CreateStartTime.HasValue) + if (request.CreateStartTime != null) flurlReq.SetQueryParam("create_start_time", request.CreateStartTime.Value.ToString("yyyy-MM-dd'T'HH:mm:sszzz")); - if (request.CreateEndTime.HasValue) + if (request.CreateEndTime != null) flurlReq.SetQueryParam("create_end_time", request.CreateEndTime.Value.ToString("yyyy-MM-dd'T'HH:mm:sszzz")); - if (!string.IsNullOrEmpty(request.Status)) + if (request.Status != null) flurlReq.SetQueryParam("status", request.Status); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); @@ -183,7 +183,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.StockCreatorMerchantId)) + if (request.StockCreatorMerchantId == null) request.StockCreatorMerchantId = client.Credentials.MerchantId; IFlurlRequest flurlReq = client @@ -209,7 +209,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.StockCreatorMerchantId)) + if (request.StockCreatorMerchantId == null) request.StockCreatorMerchantId = client.Credentials.MerchantId; IFlurlRequest flurlReq = client @@ -277,7 +277,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.StockCreatorMerchantId)) + if (request.StockCreatorMerchantId == null) request.StockCreatorMerchantId = client.Credentials.MerchantId; IFlurlRequest flurlReq = client @@ -326,25 +326,25 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 .CreateRequest(request, HttpMethod.Get, "marketing", "favor", "users", request.OpenId, "coupons") .SetQueryParam("appid", request.AppId); - if (!string.IsNullOrEmpty(request.StockId)) + if (request.StockId != null) flurlReq.SetQueryParam("stock_id", request.StockId); - if (!string.IsNullOrEmpty(request.Status)) + if (request.Status != null) flurlReq.SetQueryParam("status", request.Status); - if (!string.IsNullOrEmpty(request.CreatorMerchantId)) + if (request.CreatorMerchantId != null) flurlReq.SetQueryParam("creator_mchid", request.CreatorMerchantId); - if (!string.IsNullOrEmpty(request.SenderMerchantId)) + if (request.SenderMerchantId != null) flurlReq.SetQueryParam("sender_mchid", request.SenderMerchantId); - if (!string.IsNullOrEmpty(request.AvailableMerchantId)) + if (request.AvailableMerchantId != null) flurlReq.SetQueryParam("available_mchid", request.AvailableMerchantId); - if (request.Limit.HasValue) + if (request.Limit != null) flurlReq.SetQueryParam("limit", request.Limit.Value.ToString()); - if (request.Offset.HasValue) + if (request.Offset != null) flurlReq.SetQueryParam("offset", request.Offset.Value.ToString()); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); @@ -364,7 +364,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.MerchantId)) + if (request.MerchantId == null) request.MerchantId = client.Credentials.MerchantId; IFlurlRequest flurlReq = client diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMarketingMediaExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMarketingMediaExtensions.cs index 544ab602..65801fb0 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMarketingMediaExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMarketingMediaExtensions.cs @@ -30,13 +30,13 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.FileName)) + if (request.FileName == null) request.FileName = Guid.NewGuid().ToString("N").ToLower() + ".png"; - if (string.IsNullOrEmpty(request.FileHash)) + if (request.FileHash == null) request.FileHash = Security.SHA256Utility.Hash(request.FileBytes).ToLower(); - if (string.IsNullOrEmpty(request.FileContentType)) + if (request.FileContentType == null) request.FileContentType = Utilities.FileNameToContentTypeMapper.GetContentTypeForImage(request.FileName!) ?? "image/png"; IFlurlRequest flurlReq = client diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMarketingPartnershipsExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMarketingPartnershipsExtensions.cs index c27a8b8e..4cb2ccab 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMarketingPartnershipsExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMarketingPartnershipsExtensions.cs @@ -79,10 +79,10 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (request.AuthorizedData != null) flurlReq.SetQueryParam("authorized_data", client.JsonSerializer.Serialize(request.AuthorizedData)); - if (request.Limit.HasValue) + if (request.Limit != null) flurlReq.SetQueryParam("limit", request.Limit.Value.ToString()); - if (request.Offset.HasValue) + if (request.Offset != null) flurlReq.SetQueryParam("offset", request.Offset.Value.ToString()); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMarketingPayGiftActivityExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMarketingPayGiftActivityExtensions.cs index a2cc3298..02a13a6a 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMarketingPayGiftActivityExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMarketingPayGiftActivityExtensions.cs @@ -73,13 +73,13 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 .SetQueryParam("limit", request.Limit.ToString()) .SetQueryParam("offset", request.Offset.ToString()); - if (!string.IsNullOrEmpty(request.ActivityName)) + if (request.ActivityName != null) flurlReq.SetQueryParam("activity_name", request.ActivityName); - if (!string.IsNullOrEmpty(request.ActivityStatus)) + if (request.ActivityStatus != null) flurlReq.SetQueryParam("activity_status", request.ActivityStatus); - if (!string.IsNullOrEmpty(request.AwardType)) + if (request.AwardType != null) flurlReq.SetQueryParam("award_type", request.AwardType); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); @@ -142,10 +142,10 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 IFlurlRequest flurlReq = client .CreateRequest(request, HttpMethod.Get, "marketing", "paygiftactivity", "activities", request.ActivityId, "merchants"); - if (request.Limit.HasValue) + if (request.Limit != null) flurlReq.SetQueryParam("limit", request.Limit.Value.ToString()); - if (request.Offset.HasValue) + if (request.Offset != null) flurlReq.SetQueryParam("offset", request.Offset.Value.ToString()); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); @@ -188,10 +188,10 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 IFlurlRequest flurlReq = client .CreateRequest(request, HttpMethod.Get, "marketing", "paygiftactivity", "activities", request.ActivityId, "goods"); - if (request.Limit.HasValue) + if (request.Limit != null) flurlReq.SetQueryParam("limit", request.Limit.Value.ToString()); - if (request.Offset.HasValue) + if (request.Offset != null) flurlReq.SetQueryParam("offset", request.Offset.Value.ToString()); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMerchantFundIncomeRecordsExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMerchantFundIncomeRecordsExtensions.cs index af509541..6c7a688e 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMerchantFundIncomeRecordsExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMerchantFundIncomeRecordsExtensions.cs @@ -34,7 +34,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 .SetQueryParam("date", request.DateString) .SetQueryParam("limit", request.Limit); - if (request.Offset.HasValue) + if (request.Offset != null) flurlReq.SetQueryParam("offset", request.Offset); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); @@ -60,7 +60,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 .SetQueryParam("date", request.DateString) .SetQueryParam("limit", request.Limit); - if (request.Offset.HasValue) + if (request.Offset != null) flurlReq.SetQueryParam("offset", request.Offset); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMerchantFundWithdrawExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMerchantFundWithdrawExtensions.cs index 0a392486..107ee2da 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMerchantFundWithdrawExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMerchantFundWithdrawExtensions.cs @@ -89,7 +89,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 .CreateRequest(request, HttpMethod.Get, "merchant", "fund", "withdraw", "bill-type", request.BillType) .SetQueryParam("bill_date", request.BillDateString); - if (!string.IsNullOrEmpty(request.TarType)) + if (request.TarType != null) flurlReq.SetQueryParam("tar_type", request.TarType); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMerchantMediaExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMerchantMediaExtensions.cs index bce79cd4..8c779fd4 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMerchantMediaExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMerchantMediaExtensions.cs @@ -30,13 +30,13 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.FileName)) + if (request.FileName == null) request.FileName = Guid.NewGuid().ToString("N").ToLower() + ".png"; - if (string.IsNullOrEmpty(request.FileHash)) + if (request.FileHash == null) request.FileHash = Security.SHA256Utility.Hash(request.FileBytes).ToLower(); - if (string.IsNullOrEmpty(request.FileContentType)) + if (request.FileContentType == null) request.FileContentType = Utilities.FileNameToContentTypeMapper.GetContentTypeForImage(request.FileName!) ?? "image/png"; IFlurlRequest flurlReq = client @@ -69,13 +69,13 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.FileName)) + if (request.FileName == null) request.FileName = Guid.NewGuid().ToString("N").ToLower() + ".mp4"; - if (string.IsNullOrEmpty(request.FileHash)) + if (request.FileHash == null) request.FileHash = Security.SHA256Utility.Hash(request.FileBytes).ToLower(); - if (string.IsNullOrEmpty(request.FileContentType)) + if (request.FileContentType == null) request.FileContentType = Utilities.FileNameToContentTypeMapper.GetContentTypeForVideo(request.FileName!) ?? "video/mp4"; IFlurlRequest flurlReq = client diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMerchantServiceExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMerchantServiceExtensions.cs index 1f8c5d16..32d63792 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMerchantServiceExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMerchantServiceExtensions.cs @@ -35,13 +35,13 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 .SetQueryParam("begin_date", request.BeginDateString) .SetQueryParam("end_date", request.EndDateString); - if (!string.IsNullOrEmpty(request.ComplaintedMerchantId)) + if (request.ComplaintedMerchantId != null) flurlReq.SetQueryParam("complainted_mchid", request.ComplaintedMerchantId); - if (request.Limit.HasValue) + if (request.Limit != null) flurlReq.SetQueryParam("limit", request.Limit.Value.ToString()); - if (request.Offset.HasValue) + if (request.Offset != null) flurlReq.SetQueryParam("offset", request.Offset.Value.ToString()); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); @@ -84,10 +84,10 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 IFlurlRequest flurlReq = client .CreateRequest(request, HttpMethod.Get, "merchant-service", "complaints-v2", request.ComplaintId, "negotiation-historys"); - if (request.Limit.HasValue) + if (request.Limit != null) flurlReq.SetQueryParam("limit", request.Limit.Value.ToString()); - if (request.Offset.HasValue) + if (request.Offset != null) flurlReq.SetQueryParam("offset", request.Offset.Value.ToString()); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); @@ -107,7 +107,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.ComplaintedMerchantId)) + if (request.ComplaintedMerchantId == null) request.ComplaintedMerchantId = client.Credentials.MerchantId; IFlurlRequest flurlReq = client @@ -130,7 +130,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.ComplaintedMerchantId)) + if (request.ComplaintedMerchantId == null) request.ComplaintedMerchantId = client.Credentials.MerchantId; IFlurlRequest flurlReq = client @@ -233,13 +233,13 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.FileName)) + if (request.FileName == null) request.FileName = Guid.NewGuid().ToString("N").ToLower() + ".png"; - if (string.IsNullOrEmpty(request.FileHash)) + if (request.FileHash == null) request.FileHash = Security.SHA256Utility.Hash(request.FileBytes).ToLower(); - if (string.IsNullOrEmpty(request.FileContentType)) + if (request.FileContentType == null) request.FileContentType = Utilities.FileNameToContentTypeMapper.GetContentTypeForImage(request.FileName!) ?? "image/png"; IFlurlRequest flurlReq = client diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePartnerTransferExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePartnerTransferExtensions.cs index 9569caba..2d2f4009 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePartnerTransferExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePartnerTransferExtensions.cs @@ -50,15 +50,15 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 .CreateRequest(request, HttpMethod.Get, "partner-transfer", "batches", "batch-id", request.BatchId) .SetQueryParam("need_query_detail", request.RequireQueryDetail); - if (request.Offset.HasValue) + if (request.DetailStatus != null) + flurlReq.SetQueryParam("detail_status", request.DetailStatus); + + if (request.Offset != null) flurlReq.SetQueryParam("offset", request.Offset.Value); - if (request.Limit.HasValue) + if (request.Limit != null) flurlReq.SetQueryParam("limit", request.Limit.Value); - if (!string.IsNullOrEmpty(request.DetailStatus)) - flurlReq.SetQueryParam("detail_status", request.DetailStatus); - return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } @@ -98,15 +98,15 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 .CreateRequest(request, HttpMethod.Get, "partner-transfer", "batches", "out-batch-no", request.OutBatchNumber) .SetQueryParam("need_query_detail", request.RequireQueryDetail); - if (request.Offset.HasValue) + if (request.DetailStatus != null) + flurlReq.SetQueryParam("detail_status", request.DetailStatus); + + if (request.Offset != null) flurlReq.SetQueryParam("offset", request.Offset.Value); - if (request.Limit.HasValue) + if (request.Limit != null) flurlReq.SetQueryParam("limit", request.Limit.Value); - if (!string.IsNullOrEmpty(request.DetailStatus)) - flurlReq.SetQueryParam("detail_status", request.DetailStatus); - return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePayPartnerTransactionsExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePayPartnerTransactionsExtensions.cs index 47652e6b..2e5615e3 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePayPartnerTransactionsExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePayPartnerTransactionsExtensions.cs @@ -28,7 +28,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.MerchantId)) + if (request.MerchantId == null) request.MerchantId = client.Credentials.MerchantId; IFlurlRequest flurlReq = client @@ -53,7 +53,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.MerchantId)) + if (request.MerchantId == null) request.MerchantId = client.Credentials.MerchantId; IFlurlRequest flurlReq = client @@ -76,7 +76,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.MerchantId)) + if (request.MerchantId == null) request.MerchantId = client.Credentials.MerchantId; IFlurlRequest flurlReq = client @@ -98,7 +98,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.MerchantId)) + if (request.MerchantId == null) request.MerchantId = client.Credentials.MerchantId; IFlurlRequest flurlReq = client @@ -125,7 +125,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.MerchantId)) + if (request.MerchantId == null) request.MerchantId = client.Credentials.MerchantId; IFlurlRequest flurlReq = client @@ -154,7 +154,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.MerchantId)) + if (request.MerchantId == null) request.MerchantId = client.Credentials.MerchantId; IFlurlRequest flurlReq = client @@ -183,7 +183,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.MerchantId)) + if (request.MerchantId == null) request.MerchantId = client.Credentials.MerchantId; IFlurlRequest flurlReq = client diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePayScorePartnerPermissionsExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePayScorePartnerPermissionsExtensions.cs index ca4ded96..94d069fa 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePayScorePartnerPermissionsExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePayScorePartnerPermissionsExtensions.cs @@ -93,10 +93,10 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 .SetQueryParam("appid", request.AppId) .SetQueryParam("sub_appid", request.SubAppId); - if (!string.IsNullOrEmpty(request.OpenId)) + if (request.OpenId != null) flurlReq.SetQueryParam("openid", request.OpenId); - if (!string.IsNullOrEmpty(request.SubOpenId)) + if (request.SubOpenId != null) flurlReq.SetQueryParam("sub_openid", request.SubOpenId); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePayTransactionsExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePayTransactionsExtensions.cs index d79dc721..ed9b5623 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePayTransactionsExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePayTransactionsExtensions.cs @@ -27,7 +27,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.MerchantId)) + if (request.MerchantId == null) request.MerchantId = client.Credentials.MerchantId; IFlurlRequest flurlReq = client @@ -50,7 +50,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.MerchantId)) + if (request.MerchantId == null) request.MerchantId = client.Credentials.MerchantId; IFlurlRequest flurlReq = client @@ -72,7 +72,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.MerchantId)) + if (request.MerchantId == null) request.MerchantId = client.Credentials.MerchantId; IFlurlRequest flurlReq = client @@ -94,7 +94,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.MerchantId)) + if (request.MerchantId == null) request.MerchantId = client.Credentials.MerchantId; IFlurlRequest flurlReq = client @@ -120,7 +120,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.MerchantId)) + if (request.MerchantId == null) request.MerchantId = client.Credentials.MerchantId; IFlurlRequest flurlReq = client @@ -147,7 +147,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.MerchantId)) + if (request.MerchantId == null) request.MerchantId = client.Credentials.MerchantId; IFlurlRequest flurlReq = client @@ -174,7 +174,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); - if (string.IsNullOrEmpty(request.MerchantId)) + if (request.MerchantId == null) request.MerchantId = client.Credentials.MerchantId; IFlurlRequest flurlReq = client diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteProfitSharingExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteProfitSharingExtensions.cs index e2932de7..0679b907 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteProfitSharingExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteProfitSharingExtensions.cs @@ -52,7 +52,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 .CreateRequest(request, HttpMethod.Get, "profitsharing", "orders", request.OutOrderNumber) .SetQueryParam("transaction_id", request.TransactionId); - if (!string.IsNullOrEmpty(request.SubMerchantId)) + if (request.SubMerchantId != null) flurlReq.SetQueryParam("sub_mchid", request.SubMerchantId); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); @@ -97,7 +97,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 .SetQueryParam("out_order_no", request.OutOrderNumber) .SetQueryParam("out_return_no", request.OutReturnNumber); - if (!string.IsNullOrEmpty(request.SubMerchantId)) + if (request.SubMerchantId != null) flurlReq.SetQueryParam("sub_mchid", request.SubMerchantId); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); @@ -221,10 +221,10 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 .CreateRequest(request, HttpMethod.Get, "profitsharing", "bills") .SetQueryParam("bill_date", request.BillDateString); - if (!string.IsNullOrEmpty(request.SubMerchantId)) + if (request.SubMerchantId != null) flurlReq.SetQueryParam("sub_mchid", request.SubMerchantId); - if (!string.IsNullOrEmpty(request.TarType)) + if (request.TarType != null) flurlReq.SetQueryParam("tar_type", request.TarType); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteRefundExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteRefundExtensions.cs index 9e80ed00..1ccfb834 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteRefundExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteRefundExtensions.cs @@ -73,7 +73,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 IFlurlRequest flurlReq = client .CreateRequest(request, HttpMethod.Get, "refund", "domestic", "refunds", request.OutRefundNumber); - if (!string.IsNullOrEmpty(request.SubMerchantId)) + if (request.SubMerchantId != null) flurlReq.SetQueryParam("sub_mchid", request.SubMerchantId); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteSmartGuideExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteSmartGuideExtensions.cs index a52ad3be..6b615ac5 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteSmartGuideExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteSmartGuideExtensions.cs @@ -72,22 +72,22 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 .CreateRequest(request, HttpMethod.Get, "smartguide", "guides") .SetQueryParam("store_id", request.StoreId.ToString()); - if (!string.IsNullOrEmpty(request.SubMerchantId)) + if (request.SubMerchantId != null) flurlReq.SetQueryParam("sub_mchid", request.SubMerchantId); - if (!string.IsNullOrEmpty(request.UserId)) + if (request.UserId != null) flurlReq.SetQueryParam("userid", request.UserId); - if (!string.IsNullOrEmpty(request.UserMobile)) + if (request.UserMobile != null) flurlReq.SetQueryParam("mobile", request.UserMobile); - if (!string.IsNullOrEmpty(request.UserWorkId)) + if (request.UserWorkId != null) flurlReq.SetQueryParam("work_id", request.UserWorkId); - if (request.Limit.HasValue) + if (request.Limit != null) flurlReq.SetQueryParam("limit", request.Limit.Value.ToString()); - if (request.Offset.HasValue) + if (request.Offset != null) flurlReq.SetQueryParam("offset", request.Offset.Value.ToString()); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteTransferExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteTransferExtensions.cs index 3ee45bee..3d046911 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteTransferExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteTransferExtensions.cs @@ -51,15 +51,15 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 .CreateRequest(request, HttpMethod.Get, "transfer", "batches", "batch-id", request.BatchId) .SetQueryParam("need_query_detail", request.RequireQueryDetail); - if (request.Offset.HasValue) + if (request.DetailStatus != null) + flurlReq.SetQueryParam("detail_status", request.DetailStatus); + + if (request.Offset != null) flurlReq.SetQueryParam("offset", request.Offset.Value); - if (request.Limit.HasValue) + if (request.Limit != null) flurlReq.SetQueryParam("limit", request.Limit.Value); - if (!string.IsNullOrEmpty(request.DetailStatus)) - flurlReq.SetQueryParam("detail_status", request.DetailStatus); - return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } @@ -99,15 +99,15 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 .CreateRequest(request, HttpMethod.Get, "transfer", "batches", "out-batch-no", request.OutBatchNumber) .SetQueryParam("need_query_detail", request.RequireQueryDetail); - if (request.Offset.HasValue) + if (request.DetailStatus != null) + flurlReq.SetQueryParam("detail_status", request.DetailStatus); + + if (request.Offset != null) flurlReq.SetQueryParam("offset", request.Offset.Value); - if (request.Limit.HasValue) + if (request.Limit != null) flurlReq.SetQueryParam("limit", request.Limit.Value); - if (!string.IsNullOrEmpty(request.DetailStatus)) - flurlReq.SetQueryParam("detail_status", request.DetailStatus); - return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } @@ -213,7 +213,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 .SetQueryParam("accept_type", request.AcceptType) .SetQueryParam("out_detail_no", request.OutDetailNumber); - if (!string.IsNullOrEmpty(request.OutBatchNumber)) + if (request.OutBatchNumber != null) flurlReq.SetQueryParam("out_batch_no", request.OutBatchNumber); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteVehicleExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteVehicleExtensions.cs index 3c946ddb..ea2b845a 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteVehicleExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteVehicleExtensions.cs @@ -35,7 +35,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 .SetQueryParam("plate_color", request.PlateColor) .SetQueryParam("openid", request.OpenId); - if (!string.IsNullOrEmpty(request.SubMerchantId)) + if (request.SubMerchantId != null) flurlReq.SetQueryParam("sub_mchid", request.SubMerchantId); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); @@ -98,7 +98,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 IFlurlRequest flurlReq = client .CreateRequest(request, HttpMethod.Get, "vehicle", "transactions", "out-trade-no", request.OutTradeNumber); - if (!string.IsNullOrEmpty(request.SubMerchantId)) + if (request.SubMerchantId != null) flurlReq.SetQueryParam("sub_mchid", request.SubMerchantId); return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/WechatTenpayClient.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/WechatTenpayClient.cs index fec85eb5..53976d82 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/WechatTenpayClient.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/WechatTenpayClient.cs @@ -68,12 +68,12 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 { IFlurlRequest flurlRequest = FlurlClient.Request(urlSegments).WithVerb(method); - if (request.Timeout.HasValue) + if (request.Timeout != null) { flurlRequest.WithTimeout(TimeSpan.FromMilliseconds(request.Timeout.Value)); } - if (!string.IsNullOrEmpty(request.WechatpayCertSerialNumber)) + if (request.WechatpayCertSerialNumber != null) { flurlRequest.Headers.Remove("Wechatpay-Serial"); flurlRequest.WithHeader("Wechatpay-Serial", request.WechatpayCertSerialNumber); From 3afb92828cc72512edf32224a5f8fcc4a48641fa Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Mon, 18 Oct 2021 19:53:50 +0800 Subject: [PATCH 14/15] feat(openai): bump version to v1.0.0-beta.211018 --- .../SKIT.FlurlHttpClient.Wechat.OpenAI.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/SKIT.FlurlHttpClient.Wechat.OpenAI.csproj b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/SKIT.FlurlHttpClient.Wechat.OpenAI.csproj index 92378fd6..d09aca20 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/SKIT.FlurlHttpClient.Wechat.OpenAI.csproj +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/SKIT.FlurlHttpClient.Wechat.OpenAI.csproj @@ -12,7 +12,7 @@ MIT https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat Flurl.Http Wechat Weixin MicroMessage WechatAI WechatOpenAI WexinAI WeixinOpenAI 微信 微信智能对话 微信对话开放平台 微信智能对话开放平台 智能对话平台 - 1.0.0-beta.211011 + 1.0.0-beta.211018 基于 Flurl.Http 的微信对话开放平台(微信智能对话) API 客户端,支持平台接入、第三方接入模式,支持智能对话、NLP、通用接口、机器人、技能、意图、语义槽、词典、词条、对话开放接口、技能商店、数据统计等功能。 Fu Diwei git From d3513dbc465033a8057bd2f98c8edf340b2d1dc9 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Tue, 19 Oct 2021 15:09:05 +0800 Subject: [PATCH 15/15] =?UTF-8?q?test(wxapi):=20=E5=A2=9E=E5=8A=A0=20AES-C?= =?UTF-8?q?BC=20=E8=A7=A3=E5=AF=86=E7=9A=84=E5=8D=95=E5=85=83=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Utilities/AESUtility.cs | 45 +++++++++++++++++++ .../Utilities/Internal/XmlUtility.cs | 9 ++-- .../Utilities/Internal/XmlUtility.cs | 9 ++-- .../Utilities/Internal/XmlUtility.cs | 9 ++-- .../WechatApiSecurityTests.cs | 26 +++++++---- 5 files changed, 77 insertions(+), 21 deletions(-) diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Utilities/AESUtility.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Utilities/AESUtility.cs index 07d0a63f..1d79405d 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Utilities/AESUtility.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Utilities/AESUtility.cs @@ -35,6 +35,31 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Utilities } } + /// + /// 基于 CBC 模式加密数据。 + /// + /// AES 密钥字节数组。 + /// 加密使用的初始化向量字节数组。 + /// 待加密数据字节数组。 + /// 加密后的数据字节数组。 + public static byte[] EncryptWithCBC(byte[] keyBytes, byte[] ivBytes, byte[] plainBytes) + { + if (keyBytes == null) throw new ArgumentNullException(nameof(keyBytes)); + if (ivBytes == null) throw new ArgumentNullException(nameof(ivBytes)); + if (plainBytes == null) throw new ArgumentNullException(nameof(plainBytes)); + + using (SymmetricAlgorithm aes = Aes.Create()) + { + aes.Mode = CipherMode.CBC; + aes.Padding = PaddingMode.PKCS7; + aes.Key = keyBytes; + aes.IV = ivBytes; + + using ICryptoTransform transform = aes.CreateEncryptor(); + return transform.TransformFinalBlock(plainBytes, 0, plainBytes.Length); + } + } + /// /// 基于 CBC 模式解密数据。 /// @@ -54,5 +79,25 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Utilities ); return Encoding.UTF8.GetString(plainBytes); } + + /// + /// 基于 CBC 模式加密数据。 + /// + /// 经 Base64 编码后的 AES 密钥。 + /// 经 Base64 编码后的 AES 初始化向量。 + /// 待加密文本。 + /// 经 Base64 编码的加密后的数据。 + public static string EncryptWithCBC(string encodingKey, string encodingIV, string plainText) + { + if (encodingKey == null) throw new ArgumentNullException(nameof(encodingKey)); + if (plainText == null) throw new ArgumentNullException(nameof(plainText)); + + byte[] plainBytes = EncryptWithCBC( + keyBytes: Convert.FromBase64String(encodingKey), + ivBytes: Convert.FromBase64String(encodingIV), + plainBytes: Encoding.UTF8.GetBytes(plainText) + ); + return Convert.ToBase64String(plainBytes); + } } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Utilities/Internal/XmlUtility.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Utilities/Internal/XmlUtility.cs index 8cd97d73..190a3260 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Utilities/Internal/XmlUtility.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Utilities/Internal/XmlUtility.cs @@ -11,18 +11,19 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Utilities internal static class XmlUtility { // REF: https://docs.microsoft.com/zh-cn/dotnet/api/system.xml.serialization.xmlserializer#dynamically-generated-assemblies - private static Hashtable _serializers = new Hashtable(); + private static readonly Hashtable _xmlSerializers = new Hashtable(); + private static readonly XmlRootAttribute _xmlRoot = new XmlRootAttribute("xml"); private static XmlSerializer GetTypedSerializer(Type type) { if (type == null) throw new ArgumentNullException(nameof(type)); string skey = type.AssemblyQualifiedName ?? type.GetHashCode().ToString(); - XmlSerializer? xmlSerializer = (XmlSerializer?)_serializers[skey]; + XmlSerializer? xmlSerializer = (XmlSerializer?)_xmlSerializers[skey]; if (xmlSerializer == null) { - xmlSerializer = new XmlSerializer(type, new XmlRootAttribute("xml")); - _serializers[skey] = xmlSerializer; + xmlSerializer = new XmlSerializer(type, _xmlRoot); + _xmlSerializers[skey] = xmlSerializer; } return xmlSerializer; diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Utilities/Internal/XmlUtility.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Utilities/Internal/XmlUtility.cs index 4d305cc9..569681fc 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Utilities/Internal/XmlUtility.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Utilities/Internal/XmlUtility.cs @@ -11,18 +11,19 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Utilities internal static class XmlUtility { // REF: https://docs.microsoft.com/zh-cn/dotnet/api/system.xml.serialization.xmlserializer#dynamically-generated-assemblies - private static Hashtable _serializers = new Hashtable(); + private static readonly Hashtable _xmlSerializers = new Hashtable(); + private static readonly XmlRootAttribute _xmlRoot = new XmlRootAttribute("xml"); private static XmlSerializer GetTypedSerializer(Type type) { if (type == null) throw new ArgumentNullException(nameof(type)); string skey = type.AssemblyQualifiedName ?? type.GetHashCode().ToString(); - XmlSerializer? xmlSerializer = (XmlSerializer?)_serializers[skey]; + XmlSerializer? xmlSerializer = (XmlSerializer?)_xmlSerializers[skey]; if (xmlSerializer == null) { - xmlSerializer = new XmlSerializer(type, new XmlRootAttribute("xml")); - _serializers[skey] = xmlSerializer; + xmlSerializer = new XmlSerializer(type, _xmlRoot); + _xmlSerializers[skey] = xmlSerializer; } return xmlSerializer; diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Utilities/Internal/XmlUtility.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Utilities/Internal/XmlUtility.cs index 0b331691..19d8e8d7 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Utilities/Internal/XmlUtility.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Utilities/Internal/XmlUtility.cs @@ -11,18 +11,19 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Utilities internal static class XmlUtility { // REF: https://docs.microsoft.com/zh-cn/dotnet/api/system.xml.serialization.xmlserializer#dynamically-generated-assemblies - private static Hashtable _serializers = new Hashtable(); + private static readonly Hashtable _xmlSerializers = new Hashtable(); + private static readonly XmlRootAttribute _xmlRoot = new XmlRootAttribute("xml"); private static XmlSerializer GetTypedSerializer(Type type) { if (type == null) throw new ArgumentNullException(nameof(type)); string skey = type.AssemblyQualifiedName ?? type.GetHashCode().ToString(); - XmlSerializer? xmlSerializer = (XmlSerializer?)_serializers[skey]; + XmlSerializer? xmlSerializer = (XmlSerializer?)_xmlSerializers[skey]; if (xmlSerializer == null) { - xmlSerializer = new XmlSerializer(type, new XmlRootAttribute("xml")); - _serializers[skey] = xmlSerializer; + xmlSerializer = new XmlSerializer(type, _xmlRoot); + _xmlSerializers[skey] = xmlSerializer; } return xmlSerializer; diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/WechatApiSecurityTests.cs b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/WechatApiSecurityTests.cs index fa91c2ba..439a77e5 100644 --- a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/WechatApiSecurityTests.cs +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/WechatApiSecurityTests.cs @@ -1,9 +1,4 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading; -using System.Threading.Tasks; using Xunit; namespace SKIT.FlurlHttpClient.Wechat.Api.UnitTests @@ -16,9 +11,9 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.UnitTests string rawData = "jsapi_ticket=HoagFKDcsGMVCIY2vOjf9nGrZ3eaM0qXs5ROFN_3k_HrGc0VocemA6wMXkvrL-Ei4IitXxwKF62CJWR8mWXZ3Q&noncestr=e7b435f73835402da44f16640ddc8696×tamp=1621348162&url=https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign"; string actualHash = Security.SHA1Utility.Hash(rawData); - string expectdHash = "b214ea1f8ae019c207f8c6ffb843c8474cbab28c"; + string expectedHash = "b214ea1f8ae019c207f8c6ffb843c8474cbab28c"; - Assert.Equal(expectdHash, actualHash, ignoreCase: true); + Assert.Equal(expectedHash, actualHash, ignoreCase: true); } [Fact(DisplayName = "信息摘要(HMAC-SHA-256)")] @@ -28,9 +23,22 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.UnitTests string rawData = "appid=wx1234567&offer_id=12345678&openid=odkx20ENSNa2w5y3g_qOkOvBNM1g&pf=android&ts=1507530737&zone_id=1&org_loc=/cgi-bin/midas/getbalance&method=POST&secret=zNLgAGgqsEWJOg1nFVaO5r7fAlIQxr1u"; string actualHash = Security.HMACSHA256Utility.Hash(secret, rawData); - string expectdHash = "1ad64e8dcb2ec1dc486b7fdf01f4a15159fc623dc3422470e51cf6870734726b"; + string expectedHash = "1ad64e8dcb2ec1dc486b7fdf01f4a15159fc623dc3422470e51cf6870734726b"; - Assert.Equal(expectdHash, actualHash, ignoreCase: true); + Assert.Equal(expectedHash, actualHash, ignoreCase: true); + } + + [Fact(DisplayName = "AES-CBC 解密")] + public void AesCbcDecryptTest() + { + string iv = "KEWv/gyiIwAfHvjrLeaX6w=="; + string key = "YZJqKnNFi0KAiKUc0ggC2g=="; + string cipherText = "Gu2PVnxVWl+jK4F8c0liGxfkB5Bj3m5HRvwgEIk1Yb+36RZ3Bg7YmUnud/ooiHz0PQroipsH7GCjlGwUeT04NwmrFaP1y3dRYPLpS43ed9QZWcFIFo+8vTs3Zco6S98DUvaNEAs8duhz/BzfBOZaIHMziRqEtPFI0ZDzCgJluBirJ6Wl3UkygZ5/QLo3KA53qGdip7K48Rq8XbCwuidTCw=="; + + string expectedPlainData = "{\"phoneNumber\":\"186****5613\",\"purePhoneNumber\":\"186****5613\",\"countryCode\":\"86\",\"watermark\":{\"timestamp\":1634545675,\"appid\":\"wxc****17e87e0e0a7\"}}"; + string actualPlainData = Utilities.AESUtility.DecryptWithCBC(encodingKey: key, encodingIV: iv, encodingCipherText: cipherText); + + Assert.Equal(expectedPlainData, actualPlainData, ignoreCase: true); } } }