From 321ee8fb8c0634d03f7e348027adda43390b6fa3 Mon Sep 17 00:00:00 2001 From: fudiwei Date: Fri, 3 Sep 2021 14:23:39 +0800 Subject: [PATCH] =?UTF-8?q?feat(wxapi):=20=E6=96=B0=E5=A2=9E=E7=BB=9F?= =?UTF-8?q?=E4=B8=80=E6=B6=88=E6=81=AF=E6=9C=8D=E5=8A=A1=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...entExecuteCgibinMessageWxopenExtensions.cs | 20 +++++ ...MessageWxopenTemplateUniformSendRequest.cs | 77 +++++++++++++++++++ ...essageWxopenTemplateUniformSendResponse.cs | 12 +++ 3 files changed, 109 insertions(+) create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/CgibinMessageWxopen/CgibinMessageWxopenTemplateUniformSendRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/CgibinMessageWxopen/CgibinMessageWxopenTemplateUniformSendResponse.cs diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinMessageWxopenExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinMessageWxopenExtensions.cs index c40c3f5d..788dd2a9 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinMessageWxopenExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinMessageWxopenExtensions.cs @@ -11,6 +11,26 @@ namespace SKIT.FlurlHttpClient.Wechat.Api { public static class WechatApiClientExecuteCgibinMessageWxopenExtensions { + /// + /// 异步调用 [POST] /cgi-bin/message/wxopen/template/uniform_send 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/uniform-message/uniformMessage.send.html + /// + /// + /// + /// + /// + public static async Task ExecuteCgibinMessageWxopenTemplateUniformSendAsync(this WechatApiClient client, Models.CgibinMessageWxopenTemplateUniformSendRequest 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.Post, "cgi-bin", "message", "wxopen", "template", "uniform_send") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + /// /// 异步调用 [POST] /cgi-bin/message/wxopen/activityid/create 接口。 /// REF: https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/updatable-message/updatableMessage.createActivityId.html diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/CgibinMessageWxopen/CgibinMessageWxopenTemplateUniformSendRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/CgibinMessageWxopen/CgibinMessageWxopenTemplateUniformSendRequest.cs new file mode 100644 index 00000000..50f06ce9 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/CgibinMessageWxopen/CgibinMessageWxopenTemplateUniformSendRequest.cs @@ -0,0 +1,77 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /cgi-bin/message/wxopen/template/uniform_send 接口的请求。 + /// + public class CgibinMessageWxopenTemplateUniformSendRequest : WechatApiRequest + { + public static class Types + { + public class MpTemplateMessage + { + public static class Types + { + public class MiniProgram : CgibinMessageTemplateSendRequest.Types.MiniProgram + { + } + + public class DataItem : CgibinMessageTemplateSendRequest.Types.DataItem + { + } + } + + /// + /// 获取或设置公众号 AppId。 + /// + [Newtonsoft.Json.JsonProperty("appid")] + [System.Text.Json.Serialization.JsonPropertyName("appid")] + public string AppId { get; set; } = string.Empty; + + /// + /// 获取或设置模板 ID。 + /// + [Newtonsoft.Json.JsonProperty("template_id")] + [System.Text.Json.Serialization.JsonPropertyName("template_id")] + public string TemplateId { get; set; } = string.Empty; + + /// + /// 获取或设置点击消息跳转的链接。 + /// + [Newtonsoft.Json.JsonProperty("url")] + [System.Text.Json.Serialization.JsonPropertyName("url")] + public string? Url { get; set; } + + /// + /// 获取或设置点击消息跳转的小程序信息。 + /// + [Newtonsoft.Json.JsonProperty("miniprogram")] + [System.Text.Json.Serialization.JsonPropertyName("miniprogram")] + public Types.MiniProgram? MiniProgram { get; set; } + + /// + /// 获取或设置消息正文。 + /// + [Newtonsoft.Json.JsonProperty("data")] + [System.Text.Json.Serialization.JsonPropertyName("data")] + public IDictionary? Data { get; set; } + } + } + + /// + /// 获取或设置接收消息的用户 OpenId。 + /// + [Newtonsoft.Json.JsonProperty("touser")] + [System.Text.Json.Serialization.JsonPropertyName("touser")] + public string ToUserOpenId { get; set; } = string.Empty; + + /// + /// 获取或设置公众号模板消息信息。 + /// + [Newtonsoft.Json.JsonProperty("mp_template_msg")] + [System.Text.Json.Serialization.JsonPropertyName("mp_template_msg")] + public Types.MpTemplateMessage? MpTemplateMessage { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/CgibinMessageWxopen/CgibinMessageWxopenTemplateUniformSendResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/CgibinMessageWxopen/CgibinMessageWxopenTemplateUniformSendResponse.cs new file mode 100644 index 00000000..da9639a7 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/CgibinMessageWxopen/CgibinMessageWxopenTemplateUniformSendResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /cgi-bin/message/wxopen/template/uniform_send 接口的响应。 + /// + public class CgibinMessageWxopenTemplateUniformSendResponse : WechatApiResponse + { + } +}