From d839ee8f94ce83cd7e92d7c11c1a2af286fa2f34 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Tue, 14 Mar 2023 17:20:08 +0800 Subject: [PATCH] =?UTF-8?q?feat(wxapi):=20=E6=96=B0=E5=A2=9E=E5=B0=8F?= =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E7=A1=AC=E4=BB=B6=E6=A1=86=E6=9E=B6=E6=8E=A8?= =?UTF-8?q?=E9=80=81=E6=B6=88=E6=81=AF=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...atApiClientExecuteWxaBusinessExtensions.cs | 22 ++++++++++++++++- .../{Models => }/IInferable.cs | 0 ...WxaBusinessRuntimePushAppMessageRequest.cs | 24 +++++++++++++++++++ ...xaBusinessRuntimePushAppMessageResponse.cs | 9 +++++++ ...aBusinessRuntimePushAppMessageRequest.json | 4 ++++ 5 files changed, 58 insertions(+), 1 deletion(-) rename src/SKIT.FlurlHttpClient.Wechat.Api/{Models => }/IInferable.cs (100%) create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/WxaBusiness/Runtime/WxaBusinessRuntimePushAppMessageRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/WxaBusiness/Runtime/WxaBusinessRuntimePushAppMessageResponse.cs create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/WxaBusiness/Runtime/WxaBusinessRuntimePushAppMessageRequest.json diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteWxaBusinessExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteWxaBusinessExtensions.cs index 46bc33fd..c7b52c10 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteWxaBusinessExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteWxaBusinessExtensions.cs @@ -263,7 +263,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api #region Runtime /// /// 异步调用 [POST] /wxa/business/runtime/adddevice 接口。 - /// REF: https://developers.weixin.qq.com/doc/oplatform/Miniprogram_Frame/deviceId.html + /// REF: https://developers.weixin.qq.com/doc/oplatform/Miniprogram_Frame/api/backend/addDevice.html /// /// /// @@ -280,6 +280,26 @@ namespace SKIT.FlurlHttpClient.Wechat.Api return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } + + /// + /// 异步调用 [POST] /wxa/business/runtime/pushappmsg 接口。 + /// REF: https://developers.weixin.qq.com/doc/oplatform/Miniprogram_Frame/api/backend/pushAppMsg.html + /// + /// + /// + /// + /// + public static async Task ExecuteWxaBusinessRuntimePushAppMessageAsync(this WechatApiClient client, Models.WxaBusinessRuntimePushAppMessageRequest 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, "wxa", "business", "runtime", "pushappmsg") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } #endregion #region Internet diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/IInferable.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/IInferable.cs similarity index 100% rename from src/SKIT.FlurlHttpClient.Wechat.Api/Models/IInferable.cs rename to src/SKIT.FlurlHttpClient.Wechat.Api/IInferable.cs diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/WxaBusiness/Runtime/WxaBusinessRuntimePushAppMessageRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/WxaBusiness/Runtime/WxaBusinessRuntimePushAppMessageRequest.cs new file mode 100644 index 00000000..7c297bce --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/WxaBusiness/Runtime/WxaBusinessRuntimePushAppMessageRequest.cs @@ -0,0 +1,24 @@ +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /wxa/business/runtime/pushappmsg 接口的请求。 + /// + public class WxaBusinessRuntimePushAppMessageRequest : WechatApiRequest, IInferable + { + /// + /// 获取或设置消息内容。 + /// + [Newtonsoft.Json.JsonProperty("msg")] + [System.Text.Json.Serialization.JsonPropertyName("msg")] + public string Message { get; set; } = string.Empty; + + /// + /// 获取或设置产品中文名称。 + /// + [Newtonsoft.Json.JsonProperty("push_token")] + [System.Text.Json.Serialization.JsonPropertyName("push_token")] + public string PushToken { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/WxaBusiness/Runtime/WxaBusinessRuntimePushAppMessageResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/WxaBusiness/Runtime/WxaBusinessRuntimePushAppMessageResponse.cs new file mode 100644 index 00000000..eb906f5b --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/WxaBusiness/Runtime/WxaBusinessRuntimePushAppMessageResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /wxa/business/runtime/pushappmsg 接口的响应。 + /// + public class WxaBusinessRuntimePushAppMessageResponse : WechatApiResponse + { + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/WxaBusiness/Runtime/WxaBusinessRuntimePushAppMessageRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/WxaBusiness/Runtime/WxaBusinessRuntimePushAppMessageRequest.json new file mode 100644 index 00000000..6902e463 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/WxaBusiness/Runtime/WxaBusinessRuntimePushAppMessageRequest.json @@ -0,0 +1,4 @@ +{ + "msg": "your msg", + "push_token": "your push token" +}