From 503085bdea6347b1404afcc16838539a5e2da799 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Wed, 9 Jun 2021 17:57:55 +0800 Subject: [PATCH] =?UTF-8?q?feat(wxapi):=20=E6=96=B0=E5=A2=9E=E5=9F=8E?= =?UTF-8?q?=E5=B8=82=E6=9C=8D=E5=8A=A1=E7=9B=B8=E5=85=B3=20API=20=E5=B0=81?= =?UTF-8?q?=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...atApiClientExecuteCityServiceExtensions.cs | 36 +++++++++ ...tApiClientExecuteIntpRealNameExtensions.cs | 21 ++++++ .../CityServiceSendMessageDataRequest.cs | 74 +++++++++++++++++++ .../CityServiceSendMessageDataResponse.cs | 18 +++++ .../IntpRealNameCheckRealNameInfoRequest.cs | 47 ++++++++++++ .../IntpRealNameCheckRealNameInfoResponse.cs | 25 +++++++ 6 files changed, 221 insertions(+) create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCityServiceExtensions.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/CityService/CityServiceSendMessageDataRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/CityService/CityServiceSendMessageDataResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/IntpRealName/IntpRealNameCheckRealNameInfoRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/IntpRealName/IntpRealNameCheckRealNameInfoResponse.cs diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCityServiceExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCityServiceExtensions.cs new file mode 100644 index 00000000..2fe96f71 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCityServiceExtensions.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Net.Http; +using System.Net.Http.Headers; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using Flurl; +using Flurl.Http; + +namespace SKIT.FlurlHttpClient.Wechat.Api +{ + public static class WechatApiClientExecuteCityServiceExtensions + { + /// + /// 异步调用 [POST] /cityservice/sendmsgdata 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/cityservice/cityservice-results-page.html + /// + /// + /// + /// + /// + public static async Task ExecuteCityServiceSendMessageDataAsync(this WechatApiClient client, Models.CityServiceSendMessageDataRequest 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(HttpMethod.Post, "cityservice", "sendmsgdata") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteIntpRealNameExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteIntpRealNameExtensions.cs index 7adefb97..765fa3df 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteIntpRealNameExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteIntpRealNameExtensions.cs @@ -31,5 +31,26 @@ namespace SKIT.FlurlHttpClient.Wechat.Api return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } + + /// + /// 异步调用 [POST] /intp/realname/checkrealnameinfo 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/framework/cityservice/cityservice-checkrealnameinfo.html + /// + /// + /// + /// + /// + public static async Task ExecuteIntpRealNameCheckRealNameInfoAsync(this WechatApiClient client, Models.IntpRealNameCheckRealNameInfoRequest 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(HttpMethod.Post, "intp", "realname", "checkrealnameinfo") + .SetOptions(request) + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/CityService/CityServiceSendMessageDataRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/CityService/CityServiceSendMessageDataRequest.cs new file mode 100644 index 00000000..f352ea2f --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/CityService/CityServiceSendMessageDataRequest.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /cityservice/sendmsgdata 接口的请求。 + /// + public class CityServiceSendMessageDataRequest : WechatApiRequest + { + public static class Types + { + public class DataItem : CgibinMessageTemplateSendRequest.Types.DataItem + { + } + } + + /// + /// 获取或设置用户唯一标识。 + /// + [Newtonsoft.Json.JsonProperty("openid")] + [System.Text.Json.Serialization.JsonPropertyName("openid")] + public string OpenId { get; set; } = string.Empty; + + /// + /// 获取或设置城市服务分配的模板 ID。 + /// + [Newtonsoft.Json.JsonProperty("biz_template_id")] + [System.Text.Json.Serialization.JsonPropertyName("biz_template_id")] + public string BusinessTemplateId { get; set; } = string.Empty; + + /// + /// 获取或设置结果页样式 ID。 + /// + [Newtonsoft.Json.JsonProperty("result_page_style_id")] + [System.Text.Json.Serialization.JsonPropertyName("result_page_style_id")] + public string? ResultPageStyleId { get; set; } + + /// + /// 获取或设置办事记录样式 ID。 + /// + [Newtonsoft.Json.JsonProperty("deal_msg_style_id")] + [System.Text.Json.Serialization.JsonPropertyName("deal_msg_style_id")] + public string? DealMessageStyleId { get; set; } + + /// + /// 获取或设置页卡样式 ID。 + /// + [Newtonsoft.Json.JsonProperty("card_style_id")] + [System.Text.Json.Serialization.JsonPropertyName("card_style_id")] + public string? CardStyleId { get; set; } + + /// + /// 获取或设置订单号。 + /// + [Newtonsoft.Json.JsonProperty("order_no")] + [System.Text.Json.Serialization.JsonPropertyName("order_no")] + public string OrderNumber { get; set; } = string.Empty; + + /// + /// 获取或设置跳转链接 URL。 + /// + [Newtonsoft.Json.JsonProperty("url")] + [System.Text.Json.Serialization.JsonPropertyName("url")] + public string? Url { get; set; } + + /// + /// 获取或设置消息正文。 + /// + [Newtonsoft.Json.JsonProperty("data")] + [System.Text.Json.Serialization.JsonPropertyName("data")] + public IDictionary? Data { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/CityService/CityServiceSendMessageDataResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/CityService/CityServiceSendMessageDataResponse.cs new file mode 100644 index 00000000..4964bb69 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/CityService/CityServiceSendMessageDataResponse.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /cityservice/sendmsgdata 接口的响应。 + /// + public class CityServiceSendMessageDataResponse : WechatApiResponse + { + /// + /// 获取或设置结果页 URL。 + /// + [Newtonsoft.Json.JsonProperty("result_page_url")] + [System.Text.Json.Serialization.JsonPropertyName("result_page_url")] + public string? ResultPageUrl { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/IntpRealName/IntpRealNameCheckRealNameInfoRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/IntpRealName/IntpRealNameCheckRealNameInfoRequest.cs new file mode 100644 index 00000000..0e105184 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/IntpRealName/IntpRealNameCheckRealNameInfoRequest.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /intp/realname/checkrealnameinfo 接口的请求。 + /// + public class IntpRealNameCheckRealNameInfoRequest : WechatApiRequest + { + /// + /// 获取或设置用户唯一标识。 + /// + [Newtonsoft.Json.JsonProperty("openid")] + [System.Text.Json.Serialization.JsonPropertyName("openid")] + public string OpenId { get; set; } = string.Empty; + + /// + /// 获取或设置需要校验的姓名。 + /// + [Newtonsoft.Json.JsonProperty("real_name")] + [System.Text.Json.Serialization.JsonPropertyName("real_name")] + public string RealName { get; set; } = string.Empty; + + /// + /// 获取或设置需要校验的证件类型。 + /// 默认值:1 + /// + [Newtonsoft.Json.JsonProperty("cred_type")] + [System.Text.Json.Serialization.JsonPropertyName("cred_type")] + public int CredentialType { get; set; } = 1; + + /// + /// 获取或设置需要校验的证件号。 + /// + [Newtonsoft.Json.JsonProperty("cred_id")] + [System.Text.Json.Serialization.JsonPropertyName("cred_id")] + public string CredentialId { get; set; } = string.Empty; + + /// + /// 获取或设置通过小程序回跳获取的 Code。 + /// + [Newtonsoft.Json.JsonProperty("code")] + [System.Text.Json.Serialization.JsonPropertyName("code")] + public string Code { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/IntpRealName/IntpRealNameCheckRealNameInfoResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/IntpRealName/IntpRealNameCheckRealNameInfoResponse.cs new file mode 100644 index 00000000..70cde4af --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/IntpRealName/IntpRealNameCheckRealNameInfoResponse.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /intp/realname/checkrealnameinfo 接口的响应。 + /// + public class IntpRealNameCheckRealNameInfoResponse : IntpMarketCodeActiveCodeQueryResponse + { + /// + /// 获取或设置 OpenId 验证结果,使用分号分隔。 + /// + [Newtonsoft.Json.JsonProperty("verify_openid")] + [System.Text.Json.Serialization.JsonPropertyName("verify_openid")] + public string VerifyOpenIdResults { get; set; } = default!; + + /// + /// 获取或设置实名验证结果。 + /// + [Newtonsoft.Json.JsonProperty("verify_real_name")] + [System.Text.Json.Serialization.JsonPropertyName("verify_real_name")] + public string? VerifyRealNameResult { get; set; } + } +}