From b3c8eac6adfed0132a57ac7ccc315254e59709b6 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Wed, 26 Oct 2022 18:05:58 +0800 Subject: [PATCH] =?UTF-8?q?feat(wxapi):=20=E6=96=B0=E5=A2=9E=E4=BB=A3?= =?UTF-8?q?=E5=95=86=E5=AE=B6=E7=AE=A1=E7=90=86=E5=B0=8F=E7=A8=8B=E5=BA=8F?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=BC=80=E6=94=BE=E5=B9=B3=E5=8F=B0=E5=B8=90?= =?UTF-8?q?=E5=8F=B7=E6=98=AF=E5=90=A6=E4=B8=8E=E5=B0=8F=E7=A8=8B=E5=BA=8F?= =?UTF-8?q?=E5=90=8C=E4=B8=BB=E4=BD=93=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...hatApiClientExecuteCgibinOpenExtensions.cs | 22 ++++++++++++++++++- .../CgibinOpen/CgibinOpenSameEntityRequest.cs | 9 ++++++++ .../CgibinOpenSameEntityResponse.cs | 15 +++++++++++++ .../CgibinOpenSameEntityResponse.json | 5 +++++ 4 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/CgibinOpen/CgibinOpenSameEntityRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/CgibinOpen/CgibinOpenSameEntityResponse.cs create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/CgibinOpen/CgibinOpenSameEntityResponse.json diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinOpenExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinOpenExtensions.cs index f9a397ed..d0aea8ca 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinOpenExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinOpenExtensions.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Net.Http; using System.Threading; using System.Threading.Tasks; @@ -108,5 +108,25 @@ namespace SKIT.FlurlHttpClient.Wechat.Api return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } + + /// + /// 异步调用 [GET] /cgi-bin/open/sameentity 接口。 + /// REF: https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/miniprogram-management/basic-info-management/getBindOpenAccountEntity.html + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinOpenSameEntityAsync(this WechatApiClient client, Models.CgibinOpenSameEntityRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Get, "cgi-bin", "open", "sameentity") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/CgibinOpen/CgibinOpenSameEntityRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/CgibinOpen/CgibinOpenSameEntityRequest.cs new file mode 100644 index 00000000..3fabcec6 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/CgibinOpen/CgibinOpenSameEntityRequest.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [GET] /cgi-bin/open/sameentity 接口的请求。 + /// + public class CgibinOpenSameEntityRequest : WechatApiRequest, IInferable + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/CgibinOpen/CgibinOpenSameEntityResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/CgibinOpen/CgibinOpenSameEntityResponse.cs new file mode 100644 index 00000000..56a99520 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/CgibinOpen/CgibinOpenSameEntityResponse.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [GET] /cgi-bin/open/sameentity 接口的响应。 + /// + public class CgibinOpenSameEntityResponse : WechatApiResponse + { + /// + /// 获取或设置是否相同主体。 + /// + [Newtonsoft.Json.JsonProperty("same_entity")] + [System.Text.Json.Serialization.JsonPropertyName("same_entity")] + public bool IsSameEntity { get; set; } + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/CgibinOpen/CgibinOpenSameEntityResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/CgibinOpen/CgibinOpenSameEntityResponse.json new file mode 100644 index 00000000..d7a8d73a --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/CgibinOpen/CgibinOpenSameEntityResponse.json @@ -0,0 +1,5 @@ +{ + "same_entity": false, + "errcode": 0, + "errmsg": "ok" +}