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" +}