diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteOpenApiBotExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteOpenApiBotExtensions.cs
new file mode 100644
index 00000000..d4d765fc
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteOpenApiBotExtensions.cs
@@ -0,0 +1,107 @@
+using System;
+using System.Net.Http;
+using System.Threading;
+using System.Threading.Tasks;
+using Flurl.Http;
+
+namespace SKIT.FlurlHttpClient.Wechat.OpenAI
+{
+ public static class WechatOpenAIClientExecuteOpenApiBotExtensions
+ {
+ ///
+ /// 异步调用 [POST] /openapi/batchimportskill/{TOKEN} 接口。
+ /// REF: https://developers.weixin.qq.com/doc/aispeech/platform/skill/batchimportskill.html
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteOpenApiBatchImportSkillAsync(this WechatOpenAIClient client, Models.OpenApiBatchImportSkillRequest 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, "openapi", "batchimportskill", client.Credentials.PushToken!);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [POST] /openapi/publish/{TOKEN} 接口。
+ /// REF: https://developers.weixin.qq.com/doc/aispeech/platform/skill/publish.html
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteOpenApiPublishAsync(this WechatOpenAIClient client, Models.OpenApiPublishRequest 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, "openapi", "publish", client.Credentials.PushToken!);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [POST] /openapi/publish_progress/{TOKEN} 接口。
+ /// REF: https://developers.weixin.qq.com/doc/aispeech/platform/skill/publish_progress.html
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteOpenApiPublishProgressAsync(this WechatOpenAIClient client, Models.OpenApiPublishProgressRequest 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, "openapi", "publish_progress", client.Credentials.PushToken!);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [POST] /openapi/setautoreply/{TOKEN} 接口。
+ /// REF: https://developers.weixin.qq.com/doc/aispeech/platform/living/setautoreply.html
+ /// REF: https://developers.weixin.qq.com/doc/aispeech/platform/skill/publish_progress.html
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteOpenApiSetAutoReplyAsync(this WechatOpenAIClient client, Models.OpenApiSetAutoReplyRequest 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, "openapi", "setautoreply", client.Credentials.PushToken!);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [POST] /openapi/label/batchset/{TOKEN} 接口。
+ /// REF: https://developers.weixin.qq.com/doc/aispeech/platform/batchsetlabel.html
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteOpenApiLabelBatchSetAsync(this WechatOpenAIClient client, Models.OpenApiLabelBatchSetRequest 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, "openapi", "label", "batchset", client.Credentials.PushToken!);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteOpenApiLivingExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteOpenApiLivingExtensions.cs
index 7b2a30c0..fbdd392b 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteOpenApiLivingExtensions.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteOpenApiLivingExtensions.cs
@@ -27,25 +27,6 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
- ///
- /// 异步调用 [POST] /openapi/setautoreply/{TOKEN} 接口。
- /// REF: https://developers.weixin.qq.com/doc/aispeech/platform/living/setautoreply.html
- ///
- ///
- ///
- ///
- ///
- public static async Task ExecuteOpenApiBatchSetAutoReplyAsync(this WechatOpenAIClient client, Models.OpenApiBatchSetAutoReplyRequest 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, "openapi", "setautoreply", client.Credentials.PushToken!);
-
- return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
- }
-
///
/// 异步调用 [POST] /openapi/generatereport/{TOKEN} 接口。
/// REF: https://developers.weixin.qq.com/doc/aispeech/platform/living/setautoreply.html
diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteOpenApiMpExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteOpenApiMpExtensions.cs
index c7b19d0a..7d457155 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteOpenApiMpExtensions.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteOpenApiMpExtensions.cs
@@ -96,16 +96,16 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
///
///
///
- public static async Task ExecuteFileUploadAsync(this WechatOpenAIClient client, Models.FileUploadRequest request, CancellationToken cancellationToken = default)
+ public static async Task ExecuteOpenApiAssetsUploadAsync(this WechatOpenAIClient client, Models.OpenApiAssetsUploadRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
if (request.FileName == null)
- request.FileName = Guid.NewGuid().ToString("N").ToLower() + ".csv";
+ request.FileName = Guid.NewGuid().ToString("N").ToLower() + ".jpg";
if (request.FileContentType == null)
- request.FileContentType = "text/csv";
+ request.FileContentType = "image/jpeg";
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "openapi", "assetsupload", client.Credentials.PushToken!);
diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteOpenApiThirdKfExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteOpenApiThirdKfExtensions.cs
index a4f2bff3..d9091e93 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteOpenApiThirdKfExtensions.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteOpenApiThirdKfExtensions.cs
@@ -11,6 +11,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
///
/// 异步调用 [POST] /openapi/sendmsg/{TOKEN} 接口。
/// REF: https://developers.weixin.qq.com/doc/aispeech/platform/thirdkefu/sendmsg.html
+ /// REF: https://developers.weixin.qq.com/doc/aispeech/platform/sendmsg.html
///
///
///
diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiBatchImportSkillRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiBatchImportSkillRequest.cs
new file mode 100644
index 00000000..e30e250f
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiBatchImportSkillRequest.cs
@@ -0,0 +1,55 @@
+using System;
+using System.Collections.Generic;
+using System.Xml.Serialization;
+
+namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
+{
+ ///
+ /// 表示 [POST] /openapi/batchimportskill/{TOKEN} 接口的请求。
+ ///
+ [XmlRoot("xml")]
+ public class OpenApiBatchImportSkillRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedXmlable
+ {
+ public static class Types
+ {
+ public class Skill
+ {
+ ///
+ /// 获取或设置技能名称。
+ ///
+ [XmlElement("skillname")]
+ public string SkillName { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置标准问题。
+ ///
+ [XmlElement("title")]
+ public string Title { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置相似问题列表。
+ ///
+ [XmlElement("question")]
+ public List QuestionList { get; set; } = new List();
+
+ ///
+ /// 获取或设置机器人回答列表。
+ ///
+ [XmlElement("answer")]
+ public List AnswerList { get; set; } = new List();
+ }
+ }
+
+ ///
+ /// 获取或设置管理员 ID。
+ ///
+ [XmlElement("managerid")]
+ public string ManagetId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置技能列表。
+ ///
+ [XmlElement("skill")]
+ public List SkillList { get; set; } = new List();
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiBatchImportSkillResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiBatchImportSkillResponse.cs
new file mode 100644
index 00000000..288b4eec
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiBatchImportSkillResponse.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
+{
+ ///
+ /// 表示 [POST] /openapi/batchimportskill/{TOKEN} 接口的响应。
+ ///
+ public class OpenApiBatchImportSkillResponse : WechatOpenAIResponse
+ {
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiLabelBatchSetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiLabelBatchSetRequest.cs
new file mode 100644
index 00000000..9b5e803a
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiLabelBatchSetRequest.cs
@@ -0,0 +1,44 @@
+using System;
+using System.Collections.Generic;
+using System.Xml.Serialization;
+
+namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
+{
+ ///
+ /// 表示 [POST] /openapi/label/batchset/{TOKEN} 接口的请求。
+ ///
+ [XmlRoot("xml")]
+ public class OpenApiLabelBatchSetRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedXmlable
+ {
+ ///
+ /// 获取或设置微信 AppId。
+ ///
+ [XmlElement("appid")]
+ public string AppId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置标签名称。
+ ///
+ [XmlElement("category")]
+ public string Category { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置二级标签名称。
+ ///
+ [XmlElement("label")]
+ public string Label { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置标签分类规则。
+ ///
+ [XmlElement("desc")]
+ public string Description { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置要设置标签的 OpenId 列表。
+ ///
+ [XmlArray("list")]
+ [XmlArrayItem("openid", Type = typeof(string))]
+ public List OpenIdList { get; set; } = new List();
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiLabelBatchSetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiLabelBatchSetResponse.cs
new file mode 100644
index 00000000..98baace9
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiLabelBatchSetResponse.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
+{
+ ///
+ /// 表示 [POST] /openapi/label/batchset/{TOKEN} 接口的响应。
+ ///
+ public class OpenApiLabelBatchSetResponse : WechatOpenAIResponse
+ {
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiPublishProgressRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiPublishProgressRequest.cs
new file mode 100644
index 00000000..6a1d92b3
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiPublishProgressRequest.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.Xml.Serialization;
+
+namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
+{
+ ///
+ /// 表示 [POST] /openapi/publish_progress/{TOKEN} 接口的请求。
+ ///
+ [XmlRoot("xml")]
+ public class OpenApiPublishProgressRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedXmlable
+ {
+ ///
+ /// 获取或设置管理员 ID。
+ ///
+ [XmlElement("managerid")]
+ public string ManagerId { get; set; } = string.Empty;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiPublishProgressResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiPublishProgressResponse.cs
new file mode 100644
index 00000000..8dadc4cf
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiPublishProgressResponse.cs
@@ -0,0 +1,31 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
+{
+ ///
+ /// 表示 [POST] /openapi/publish_progress/{TOKEN} 接口的响应。
+ ///
+ public class OpenApiPublishProgressResponse : WechatOpenAIResponse
+ {
+ public static class Types
+ {
+ public class Data
+ {
+ ///
+ /// 获取或设置进度(范围:0~100)。
+ ///
+ [Newtonsoft.Json.JsonProperty("progress")]
+ [System.Text.Json.Serialization.JsonPropertyName("progress")]
+ public int Progress { get; set; }
+
+ ///
+ /// 获取或设置状态。
+ ///
+ [Newtonsoft.Json.JsonProperty("status")]
+ [System.Text.Json.Serialization.JsonPropertyName("status")]
+ public int Status { get; set; }
+ }
+ }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiPublishRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiPublishRequest.cs
new file mode 100644
index 00000000..292e1d83
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiPublishRequest.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.Xml.Serialization;
+
+namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
+{
+ ///
+ /// 表示 [POST] /openapi/publish/{TOKEN} 接口的请求。
+ ///
+ [XmlRoot("xml")]
+ public class OpenApiPublishRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedXmlable
+ {
+ ///
+ /// 获取或设置管理员 ID。
+ ///
+ [XmlElement("managerid")]
+ public string ManagerId { get; set; } = string.Empty;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiPublishResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiPublishResponse.cs
new file mode 100644
index 00000000..608565af
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiPublishResponse.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
+{
+ ///
+ /// 表示 [POST] /openapi/publish/{TOKEN} 接口的响应。
+ ///
+ public class OpenApiPublishResponse : WechatOpenAIResponse
+ {
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiLiving/OpenApiBatchSetAutoReplyRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiSetAutoReplyRequest.cs
similarity index 71%
rename from src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiLiving/OpenApiBatchSetAutoReplyRequest.cs
rename to src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiSetAutoReplyRequest.cs
index b9118b64..853912e6 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiLiving/OpenApiBatchSetAutoReplyRequest.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiSetAutoReplyRequest.cs
@@ -8,13 +8,13 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
/// 表示 [POST] /openapi/setautoreply/{TOKEN} 接口的请求。
///
[XmlRoot("xml")]
- public class OpenApiBatchSetAutoReplyRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedXmlable
+ public class OpenApiSetAutoReplyRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedXmlable
{
///
/// 获取或设置管理员 ID。
///
[XmlElement("managerid")]
- public string ManagerId { get; set; } = string.Empty;
+ public string ManagetId { get; set; } = string.Empty;
///
/// 获取或设置技能名称。
@@ -25,20 +25,20 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
///
/// 获取或设置标准问题。
///
- [XmlElement("title", IsNullable = true)]
+ [XmlElement("title")]
public string Title { get; set; } = string.Empty;
///
/// 获取或设置自动回答的内容。
///
- [XmlElement("content", IsNullable = true)]
+ [XmlElement("content")]
public string Content { get; set; } = string.Empty;
///
- /// 获取或设置要设置的相似问题列表。
+ /// 获取或设置相似问题列表。
///
[XmlArray("list")]
[XmlArrayItem("question", Type = typeof(string))]
- public List QuestionId { get; set; } = new List();
+ public List QuestionList { get; set; } = new List();
}
}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiLiving/OpenApiBatchSetAutoReplyResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiSetAutoReplyResponse.cs
similarity index 76%
rename from src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiLiving/OpenApiBatchSetAutoReplyResponse.cs
rename to src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiSetAutoReplyResponse.cs
index b98c6deb..2788c7e0 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiLiving/OpenApiBatchSetAutoReplyResponse.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiBot/OpenApiSetAutoReplyResponse.cs
@@ -6,7 +6,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
///
/// 表示 [POST] /openapi/setautoreply/{TOKEN} 接口的响应。
///
- public class OpenApiBatchSetAutoReplyResponse : WechatOpenAIResponse
+ public class OpenApiSetAutoReplyResponse : WechatOpenAIResponse
{
}
}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiMp/OpenApiGetBindListRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiMp/OpenApiGetBindListRequest.cs
index 6a9c5e4d..c013f471 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiMp/OpenApiGetBindListRequest.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiMp/OpenApiGetBindListRequest.cs
@@ -5,7 +5,7 @@ using System.Xml.Serialization;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{
///
- /// 表示 [POST] /openapi/getbindlink/{TOKEN} 接口的请求。
+ /// 表示 [POST] /openapi/getbindlist/{TOKEN} 接口的请求。
///
[XmlRoot("xml")]
public class OpenApiGetBindListRequest : WechatOpenAIRequest, WechatOpenAIRequest.Serialization.IEncryptedXmlable
diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiMp/OpenApiGetBindListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiMp/OpenApiGetBindListResponse.cs
index fcd428b7..2b775761 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiMp/OpenApiGetBindListResponse.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/OpenApiMp/OpenApiGetBindListResponse.cs
@@ -4,7 +4,7 @@ using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models
{
///
- /// 表示 [POST] /openapi/getbindlink/{TOKEN} 接口的响应。
+ /// 表示 [POST] /openapi/getbindlist/{TOKEN} 接口的响应。
///
public class OpenApiGetBindListResponse : WechatOpenAIResponse
{