diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinMeetingExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinMeetingExtensions.cs
index a0e4fc7c..674916b2 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinMeetingExtensions.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinMeetingExtensions.cs
@@ -1630,6 +1630,108 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
}
#endregion
+ #region Vip
+ ///
+ /// 异步调用 [POST] /cgi-bin/meeting/vip/submit_batch_add_job 接口。
+ /// REF: https://developer.work.weixin.qq.com/document/path/99508
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinMeetingVipSubmitBatchAddJobAsync(this WechatWorkClient client, Models.CgibinMeetingVipSubmitBatchAddJobRequest 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", "meeting", "vip", "submit_batch_add_job")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/meeting/vip/batch_add_job_result 接口。
+ /// REF: https://developer.work.weixin.qq.com/document/path/99508
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinMeetingVipBatchAddJobResultAsync(this WechatWorkClient client, Models.CgibinMeetingVipBatchAddJobResultRequest 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", "meeting", "vip", "batch_add_job_result")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/meeting/vip/submit_batch_del_job 接口。
+ /// REF: https://developer.work.weixin.qq.com/document/path/99509
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinMeetingVipSubmitBatchDeleteJobAsync(this WechatWorkClient client, Models.CgibinMeetingVipSubmitBatchDeleteJobRequest 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", "meeting", "vip", "submit_batch_del_job")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/meeting/vip/batch_del_job_result 接口。
+ /// REF: https://developer.work.weixin.qq.com/document/path/99509
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinMeetingVipBatchDeleteJobResultAsync(this WechatWorkClient client, Models.CgibinMeetingVipBatchDeleteJobResultRequest 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", "meeting", "vip", "batch_del_job_result")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/meeting/vip/list 接口。
+ /// REF: https://developer.work.weixin.qq.com/document/path/99510
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinMeetingVipListAsync(this WechatWorkClient client, Models.CgibinMeetingVipListRequest 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", "meeting", "vip", "list")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+ #endregion
+
#region Webinar
///
/// 异步调用 [POST] /cgi-bin/meeting/webinar/create 接口。
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Vip/CgibinMeetingVipBatchAddJobResultRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Vip/CgibinMeetingVipBatchAddJobResultRequest.cs
new file mode 100644
index 00000000..df3c47df
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Vip/CgibinMeetingVipBatchAddJobResultRequest.cs
@@ -0,0 +1,15 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/meeting/vip/batch_add_job_result 接口的请求。
+ ///
+ public class CgibinMeetingVipBatchAddJobResultRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置任务 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("jobid")]
+ [System.Text.Json.Serialization.JsonPropertyName("jobid")]
+ public string JobId { get; set; } = string.Empty;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Vip/CgibinMeetingVipBatchAddJobResultResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Vip/CgibinMeetingVipBatchAddJobResultResponse.cs
new file mode 100644
index 00000000..826f6b2f
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Vip/CgibinMeetingVipBatchAddJobResultResponse.cs
@@ -0,0 +1,35 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/meeting/vip/batch_add_job_result 接口的响应。
+ ///
+ public class CgibinMeetingVipBatchAddJobResultResponse : WechatWorkResponse
+ {
+ public static class Types
+ {
+ public class JobResult
+ {
+ ///
+ /// 获取或设置分配成功的成员账号列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("succ_userid_list")]
+ [System.Text.Json.Serialization.JsonPropertyName("succ_userid_list")]
+ public string[]? SuccessfulUserIdList { get; set; }
+
+ ///
+ /// 获取或设置分配失败的成员账号列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("fail_userid_list")]
+ [System.Text.Json.Serialization.JsonPropertyName("fail_userid_list")]
+ public string[]? FailedUserIdList { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置任务结果信息。
+ ///
+ [Newtonsoft.Json.JsonProperty("job_result")]
+ [System.Text.Json.Serialization.JsonPropertyName("job_result")]
+ public Types.JobResult JobResult { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Vip/CgibinMeetingVipBatchDeleteJobResultRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Vip/CgibinMeetingVipBatchDeleteJobResultRequest.cs
new file mode 100644
index 00000000..e870a7a2
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Vip/CgibinMeetingVipBatchDeleteJobResultRequest.cs
@@ -0,0 +1,15 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/meeting/vip/batch_del_job_result 接口的请求。
+ ///
+ public class CgibinMeetingVipBatchDeleteJobResultRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置任务 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("jobid")]
+ [System.Text.Json.Serialization.JsonPropertyName("jobid")]
+ public string JobId { get; set; } = string.Empty;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Vip/CgibinMeetingVipBatchDeleteJobResultResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Vip/CgibinMeetingVipBatchDeleteJobResultResponse.cs
new file mode 100644
index 00000000..b5b88cb3
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Vip/CgibinMeetingVipBatchDeleteJobResultResponse.cs
@@ -0,0 +1,35 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/meeting/vip/batch_del_job_result 接口的响应。
+ ///
+ public class CgibinMeetingVipBatchDeleteJobResultResponse : WechatWorkResponse
+ {
+ public static class Types
+ {
+ public class JobResult
+ {
+ ///
+ /// 获取或设置撤销分配成功的成员账号列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("succ_userid_list")]
+ [System.Text.Json.Serialization.JsonPropertyName("succ_userid_list")]
+ public string[]? SuccessfulUserIdList { get; set; }
+
+ ///
+ /// 获取或设置撤销分配失败的成员账号列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("fail_userid_list")]
+ [System.Text.Json.Serialization.JsonPropertyName("fail_userid_list")]
+ public string[]? FailedUserIdList { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置任务结果信息。
+ ///
+ [Newtonsoft.Json.JsonProperty("job_result")]
+ [System.Text.Json.Serialization.JsonPropertyName("job_result")]
+ public Types.JobResult JobResult { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Vip/CgibinMeetingVipListRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Vip/CgibinMeetingVipListRequest.cs
new file mode 100644
index 00000000..33ac8f76
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Vip/CgibinMeetingVipListRequest.cs
@@ -0,0 +1,22 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/meeting/vip/list 接口的请求。
+ ///
+ public class CgibinMeetingVipListRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置分页每页数量。
+ ///
+ [Newtonsoft.Json.JsonProperty("limit")]
+ [System.Text.Json.Serialization.JsonPropertyName("limit")]
+ public int? Limit { get; set; }
+
+ ///
+ /// 获取或设置翻页标记。
+ ///
+ [Newtonsoft.Json.JsonProperty("cursor")]
+ [System.Text.Json.Serialization.JsonPropertyName("cursor")]
+ public string? Cursor { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Vip/CgibinMeetingVipListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Vip/CgibinMeetingVipListResponse.cs
new file mode 100644
index 00000000..738a5360
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Vip/CgibinMeetingVipListResponse.cs
@@ -0,0 +1,29 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/meeting/vip/list 接口的响应。
+ ///
+ public class CgibinMeetingVipListResponse : WechatWorkResponse
+ {
+ ///
+ /// 获取或设置成员账号列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("userid_list")]
+ [System.Text.Json.Serialization.JsonPropertyName("userid_list")]
+ public string[] UserIdList { get; set; } = default!;
+
+ ///
+ /// 获取或设置是否还有更多数据。
+ ///
+ [Newtonsoft.Json.JsonProperty("has_more")]
+ [System.Text.Json.Serialization.JsonPropertyName("has_more")]
+ public bool HasMore { get; set; }
+
+ ///
+ /// 获取或设置翻页标记。
+ ///
+ [Newtonsoft.Json.JsonProperty("next_cursor")]
+ [System.Text.Json.Serialization.JsonPropertyName("next_cursor")]
+ public string? NextCursor { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Vip/CgibinMeetingVipSubmitBatchAddJobRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Vip/CgibinMeetingVipSubmitBatchAddJobRequest.cs
new file mode 100644
index 00000000..257cf12c
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Vip/CgibinMeetingVipSubmitBatchAddJobRequest.cs
@@ -0,0 +1,17 @@
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/meeting/vip/submit_batch_add_job 接口的请求。
+ ///
+ public class CgibinMeetingVipSubmitBatchAddJobRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置成员账号列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("userid_list")]
+ [System.Text.Json.Serialization.JsonPropertyName("userid_list")]
+ public IList UserIdList { get; set; } = new List();
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Vip/CgibinMeetingVipSubmitBatchAddJobResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Vip/CgibinMeetingVipSubmitBatchAddJobResponse.cs
new file mode 100644
index 00000000..a6abe2b4
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Vip/CgibinMeetingVipSubmitBatchAddJobResponse.cs
@@ -0,0 +1,22 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/meeting/vip/submit_batch_add_job 接口的响应。
+ ///
+ public class CgibinMeetingVipSubmitBatchAddJobResponse : WechatWorkResponse
+ {
+ ///
+ /// 获取或设置任务 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("jobid")]
+ [System.Text.Json.Serialization.JsonPropertyName("jobid")]
+ public string JobId { get; set; } = default!;
+
+ ///
+ /// 获取或设置无效的成员账号列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("invalid_userid_list")]
+ [System.Text.Json.Serialization.JsonPropertyName("invalid_userid_list")]
+ public string[]? InvalidUserIdList { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Vip/CgibinMeetingVipSubmitBatchDeleteJobRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Vip/CgibinMeetingVipSubmitBatchDeleteJobRequest.cs
new file mode 100644
index 00000000..9ef2360d
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Vip/CgibinMeetingVipSubmitBatchDeleteJobRequest.cs
@@ -0,0 +1,17 @@
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/meeting/vip/submit_batch_del_job 接口的请求。
+ ///
+ public class CgibinMeetingVipSubmitBatchDeleteJobRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置成员账号列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("userid_list")]
+ [System.Text.Json.Serialization.JsonPropertyName("userid_list")]
+ public IList UserIdList { get; set; } = new List();
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Vip/CgibinMeetingVipSubmitBatchDeleteJobResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Vip/CgibinMeetingVipSubmitBatchDeleteJobResponse.cs
new file mode 100644
index 00000000..14c58972
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinMeeting/Vip/CgibinMeetingVipSubmitBatchDeleteJobResponse.cs
@@ -0,0 +1,22 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/meeting/vip/submit_batch_del_job 接口的响应。
+ ///
+ public class CgibinMeetingVipSubmitBatchDeleteJobResponse : WechatWorkResponse
+ {
+ ///
+ /// 获取或设置任务 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("jobid")]
+ [System.Text.Json.Serialization.JsonPropertyName("jobid")]
+ public string JobId { get; set; } = default!;
+
+ ///
+ /// 获取或设置无效的成员账号列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("invalid_userid_list")]
+ [System.Text.Json.Serialization.JsonPropertyName("invalid_userid_list")]
+ public string[]? InvalidUserIdList { get; set; }
+ }
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Vip/CgibinMeetingVipBatchAddJobResultRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Vip/CgibinMeetingVipBatchAddJobResultRequest.json
new file mode 100644
index 00000000..5cde2e01
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Vip/CgibinMeetingVipBatchAddJobResultRequest.json
@@ -0,0 +1,3 @@
+{
+ "jobid": "xxx"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Vip/CgibinMeetingVipBatchAddJobResultResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Vip/CgibinMeetingVipBatchAddJobResultResponse.json
new file mode 100644
index 00000000..8f961328
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Vip/CgibinMeetingVipBatchAddJobResultResponse.json
@@ -0,0 +1,8 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "job_result": {
+ "succ_userid_list": [ "zhangsan", "lisi" ],
+ "fail_userid_list": [ "wangwu" ]
+ }
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Vip/CgibinMeetingVipBatchDeleteJobResultRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Vip/CgibinMeetingVipBatchDeleteJobResultRequest.json
new file mode 100644
index 00000000..5cde2e01
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Vip/CgibinMeetingVipBatchDeleteJobResultRequest.json
@@ -0,0 +1,3 @@
+{
+ "jobid": "xxx"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Vip/CgibinMeetingVipBatchDeleteJobResultResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Vip/CgibinMeetingVipBatchDeleteJobResultResponse.json
new file mode 100644
index 00000000..8f961328
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Vip/CgibinMeetingVipBatchDeleteJobResultResponse.json
@@ -0,0 +1,8 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "job_result": {
+ "succ_userid_list": [ "zhangsan", "lisi" ],
+ "fail_userid_list": [ "wangwu" ]
+ }
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Vip/CgibinMeetingVipListRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Vip/CgibinMeetingVipListRequest.json
new file mode 100644
index 00000000..36e6e636
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Vip/CgibinMeetingVipListRequest.json
@@ -0,0 +1,4 @@
+{
+ "cursor": "CURSOR",
+ "limit": 2
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Vip/CgibinMeetingVipListResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Vip/CgibinMeetingVipListResponse.json
new file mode 100644
index 00000000..61cade4d
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Vip/CgibinMeetingVipListResponse.json
@@ -0,0 +1,7 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "has_more": true,
+ "next_cursor": "GNIJIGEO",
+ "userid_list": [ "zhangsan", "lisi" ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Vip/CgibinMeetingVipSubmitBatchAddJobRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Vip/CgibinMeetingVipSubmitBatchAddJobRequest.json
new file mode 100644
index 00000000..c5ceffeb
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Vip/CgibinMeetingVipSubmitBatchAddJobRequest.json
@@ -0,0 +1,3 @@
+{
+ "userid_list": [ "zhangsan", "lisi", "wangwu", "zhaoliu" ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Vip/CgibinMeetingVipSubmitBatchAddJobResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Vip/CgibinMeetingVipSubmitBatchAddJobResponse.json
new file mode 100644
index 00000000..6272a2fc
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Vip/CgibinMeetingVipSubmitBatchAddJobResponse.json
@@ -0,0 +1,6 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "jobid": "xxx",
+ "invalid_userid_list": [ "zhaoliu" ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Vip/CgibinMeetingVipSubmitBatchDeleteJobRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Vip/CgibinMeetingVipSubmitBatchDeleteJobRequest.json
new file mode 100644
index 00000000..c5ceffeb
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Vip/CgibinMeetingVipSubmitBatchDeleteJobRequest.json
@@ -0,0 +1,3 @@
+{
+ "userid_list": [ "zhangsan", "lisi", "wangwu", "zhaoliu" ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Vip/CgibinMeetingVipSubmitBatchDeleteJobResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Vip/CgibinMeetingVipSubmitBatchDeleteJobResponse.json
new file mode 100644
index 00000000..6272a2fc
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMeeting/Vip/CgibinMeetingVipSubmitBatchDeleteJobResponse.json
@@ -0,0 +1,6 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "jobid": "xxx",
+ "invalid_userid_list": [ "zhaoliu" ]
+}