diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinMessageSubscribeExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinMessageSubscribeExtensions.cs
index 257b34a4..79ee29c9 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinMessageSubscribeExtensions.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteCgibinMessageSubscribeExtensions.cs
@@ -14,8 +14,6 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
///
/// 异步调用 [POST] /cgi-bin/message/subscribe/bizsend 接口。
/// REF: https://developers.weixin.qq.com/doc/offiaccount/Subscription_Messages/api.html#send%E5%8F%91%E9%80%81%E8%AE%A2%E9%98%85%E9%80%9A%E7%9F%A5
- /// REF: https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/subscribe-message/subscribeMessage.send.html
- /// REF: https://developers.weixin.qq.com/minigame/dev/api-backend/open-api/subscribe-message/subscribeMessage.send.html
///
///
///
@@ -32,5 +30,26 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/message/subscribe/send 接口。
+ /// REF: https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/subscribe-message/subscribeMessage.send.html
+ /// REF: https://developers.weixin.qq.com/minigame/dev/api-backend/open-api/subscribe-message/subscribeMessage.send.html
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinMessageSubscribeSendAsync(this WechatApiClient client, Models.CgibinMessageSubscribeSendRequest 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", "subscribe", "send")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
}
}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/CgibinMessageSubscribe/CgibinMessageSubscribeBusinessSendRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/CgibinMessageSubscribe/CgibinMessageSubscribeBusinessSendRequest.cs
index 1cbf8ba3..de65071b 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/CgibinMessageSubscribe/CgibinMessageSubscribeBusinessSendRequest.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/CgibinMessageSubscribe/CgibinMessageSubscribeBusinessSendRequest.cs
@@ -71,6 +71,6 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
///
[Newtonsoft.Json.JsonProperty("data")]
[System.Text.Json.Serialization.JsonPropertyName("data")]
- public IDictionary? Data { get; set; }
+ public IDictionary Data { get; set; } = new Dictionary();
}
}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/CgibinMessageSubscribe/CgibinMessageSubscribeSendRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/CgibinMessageSubscribe/CgibinMessageSubscribeSendRequest.cs
new file mode 100644
index 00000000..8493e07a
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/CgibinMessageSubscribe/CgibinMessageSubscribeSendRequest.cs
@@ -0,0 +1,66 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Api.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/message/subscribe/send 接口的请求。
+ ///
+ public class CgibinMessageSubscribeSendRequest : WechatApiRequest
+ {
+ public static class Types
+ {
+ public class DataItem
+ {
+ ///
+ /// 获取或设置消息内容文本。
+ ///
+ [Newtonsoft.Json.JsonProperty("value")]
+ [System.Text.Json.Serialization.JsonPropertyName("value")]
+ public string Value { get; set; } = string.Empty;
+ }
+ }
+
+ ///
+ /// 获取或设置接收消息的用户 OpenId。
+ ///
+ [Newtonsoft.Json.JsonProperty("touser")]
+ [System.Text.Json.Serialization.JsonPropertyName("touser")]
+ public string ToUserOpenId { 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("page")]
+ [System.Text.Json.Serialization.JsonPropertyName("page")]
+ public string? MiniProgramPagePath { get; set; }
+
+ ///
+ /// 获取或设置小程序类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("miniprogram_state")]
+ [System.Text.Json.Serialization.JsonPropertyName("miniprogram_state")]
+ public string? MiniProgramState { get; set; }
+
+ ///
+ /// 获取或设置消息正文。
+ ///
+ [Newtonsoft.Json.JsonProperty("data")]
+ [System.Text.Json.Serialization.JsonPropertyName("data")]
+ public IDictionary Data { get; set; } = new Dictionary();
+
+ ///
+ /// 获取或设置进入小程序的语言类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("lang")]
+ [System.Text.Json.Serialization.JsonPropertyName("lang")]
+ public string? Language { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/CgibinMessageSubscribe/CgibinMessageSubscribeSendResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/CgibinMessageSubscribe/CgibinMessageSubscribeSendResponse.cs
new file mode 100644
index 00000000..2aa2b22e
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/CgibinMessageSubscribe/CgibinMessageSubscribeSendResponse.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Api.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/message/subscribe/send 接口的响应。
+ ///
+ public class CgibinMessageSubscribeSendResponse : WechatApiResponse
+ {
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingPartnerships/QueryMarketingPartnershipsRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingPartnerships/QueryMarketingPartnershipsRequest.cs
index b27f4925..872759a5 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingPartnerships/QueryMarketingPartnershipsRequest.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingPartnerships/QueryMarketingPartnershipsRequest.cs
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
+/* @codestyle-disable no-jsonable-property-in-get */
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
///