diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Events/License/LicenseAutoActivateEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Events/License/LicenseAutoActivateEvent.cs
index 1a7875ec..d0c5fa5b 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Events/License/LicenseAutoActivateEvent.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Events/License/LicenseAutoActivateEvent.cs
@@ -67,7 +67,7 @@
public int Scene { get; set; }
///
- /// 获取或设置激活的许可帐号列表。
+ /// 获取或设置激活的许可账号列表。
///
[System.Xml.Serialization.XmlElement("AccountList", Type = typeof(Types.Account))]
public Types.Account[] AccountList { get; set; } = default!;
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinLicenseExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinLicenseExtensions.cs
index 93cbbc0d..8c09d070 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinLicenseExtensions.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinLicenseExtensions.cs
@@ -131,6 +131,168 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
}
#endregion
+ #region Account
+ ///
+ /// 异步调用 [POST] /cgi-bin/license/active_account 接口。
+ /// REF: https://developer.work.weixin.qq.com/document/path/95553
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinLicenseActiveAccountAsync(this WechatWorkClient client, Models.CgibinLicenseActiveAccountRequest 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", "license", "active_account")
+ .SetQueryParam("provider_access_token", request.ProviderAccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/license/batch_active_account 接口。
+ /// REF: https://developer.work.weixin.qq.com/document/path/95553
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinLicenseBatchActiveAccountAsync(this WechatWorkClient client, Models.CgibinLicenseBatchActiveAccountRequest 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", "license", "batch_active_account")
+ .SetQueryParam("provider_access_token", request.ProviderAccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/license/get_active_info_by_code 接口。
+ /// REF: https://developer.work.weixin.qq.com/document/path/95552
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinLicenseGetActiveInfoByCodeAsync(this WechatWorkClient client, Models.CgibinLicenseGetActiveInfoByCodeRequest 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", "license", "get_active_info_by_code")
+ .SetQueryParam("provider_access_token", request.ProviderAccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/license/batch_get_active_info_by_code 接口。
+ /// REF: https://developer.work.weixin.qq.com/document/path/95552
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinLicenseBatchGetActiveInfoByCodeAsync(this WechatWorkClient client, Models.CgibinLicenseBatchGetActiveInfoByCodeRequest 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", "license", "batch_get_active_info_by_code")
+ .SetQueryParam("provider_access_token", request.ProviderAccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/license/list_actived_account 接口。
+ /// REF: https://developer.work.weixin.qq.com/document/path/95544
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinLicenseListActivedAccountAsync(this WechatWorkClient client, Models.CgibinLicenseListActivedAccountRequest 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", "license", "list_actived_account")
+ .SetQueryParam("provider_access_token", request.ProviderAccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/license/get_active_info_by_user 接口。
+ /// REF: https://developer.work.weixin.qq.com/document/path/95555
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinLicenseGetActiveInfoByUserAsync(this WechatWorkClient client, Models.CgibinLicenseGetActiveInfoByUserRequest 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", "license", "get_active_info_by_user")
+ .SetQueryParam("provider_access_token", request.ProviderAccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/license/batch_transfer_license 接口。
+ /// REF: https://developer.work.weixin.qq.com/document/path/95673
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinLicenseBatchTransferLicenseAsync(this WechatWorkClient client, Models.CgibinLicenseBatchTransferLicenseRequest 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", "license", "batch_transfer_license")
+ .SetQueryParam("provider_access_token", request.ProviderAccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [POST] /cgi-bin/license/batch_share_active_code 接口。
+ /// REF: https://developer.work.weixin.qq.com/document/path/96059
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCgibinLicenseBatchShareActiveCodeAsync(this WechatWorkClient client, Models.CgibinLicenseBatchShareActiveCodeRequest 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", "license", "batch_share_active_code")
+ .SetQueryParam("provider_access_token", request.ProviderAccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken);
+ }
+ #endregion
+
#region App
///
/// 异步调用 [POST] /cgi-bin/license/get_app_license_info 接口。
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinKf/CgibinKfGetCorpStatisticRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinKf/CgibinKfGetCorpStatisticRequest.cs
index 95c700b1..f2190781 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinKf/CgibinKfGetCorpStatisticRequest.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinKf/CgibinKfGetCorpStatisticRequest.cs
@@ -6,7 +6,7 @@
public class CgibinKfGetCorpStatisticRequest : WechatWorkRequest
{
///
- /// 获取或设置客服帐号 ID。
+ /// 获取或设置客服账号 ID。
///
[Newtonsoft.Json.JsonProperty("open_kfid")]
[System.Text.Json.Serialization.JsonPropertyName("open_kfid")]
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinKf/CgibinKfGetServicerStatisticRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinKf/CgibinKfGetServicerStatisticRequest.cs
index 3a357bfb..d61989e8 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinKf/CgibinKfGetServicerStatisticRequest.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinKf/CgibinKfGetServicerStatisticRequest.cs
@@ -6,7 +6,7 @@
public class CgibinKfGetServicerStatisticRequest : WechatWorkRequest
{
///
- /// 获取或设置客服帐号 ID。
+ /// 获取或设置客服账号 ID。
///
[Newtonsoft.Json.JsonProperty("open_kfid")]
[System.Text.Json.Serialization.JsonPropertyName("open_kfid")]
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinKf/CgibinKfSyncMessageResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinKf/CgibinKfSyncMessageResponse.cs
index fde872d8..966734f2 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinKf/CgibinKfSyncMessageResponse.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinKf/CgibinKfSyncMessageResponse.cs
@@ -214,7 +214,7 @@
public int MessageOrigin { get; set; }
///
- /// 获取或设置客服帐号 ID。
+ /// 获取或设置客服账号 ID。
///
[Newtonsoft.Json.JsonProperty("open_kfid")]
[System.Text.Json.Serialization.JsonPropertyName("open_kfid")]
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseActiveAccountRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseActiveAccountRequest.cs
new file mode 100644
index 00000000..8275edd2
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseActiveAccountRequest.cs
@@ -0,0 +1,36 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/license/active_account 接口的请求。
+ ///
+ public class CgibinLicenseActiveAccountRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置服务商 AccessToken。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public string ProviderAccessToken { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置企业 CorpId。
+ ///
+ [Newtonsoft.Json.JsonProperty("corpid")]
+ [System.Text.Json.Serialization.JsonPropertyName("corpid")]
+ public string CorpId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置账号激活码。
+ ///
+ [Newtonsoft.Json.JsonProperty("active_code")]
+ [System.Text.Json.Serialization.JsonPropertyName("active_code")]
+ public string ActiveCode { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置待绑定激活的成员 UserId。
+ ///
+ [Newtonsoft.Json.JsonProperty("userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("userid")]
+ public string UserId { get; set; } = string.Empty;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseActiveAccountResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseActiveAccountResponse.cs
new file mode 100644
index 00000000..d24b83c3
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseActiveAccountResponse.cs
@@ -0,0 +1,9 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/license/active_account 接口的响应。
+ ///
+ public class CgibinLicenseActiveAccountResponse : WechatWorkResponse
+ {
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseBatchActiveAccountRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseBatchActiveAccountRequest.cs
new file mode 100644
index 00000000..df729d90
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseBatchActiveAccountRequest.cs
@@ -0,0 +1,51 @@
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/license/batch_active_account 接口的请求。
+ ///
+ public class CgibinLicenseBatchActiveAccountRequest : WechatWorkRequest
+ {
+ public static class Types
+ {
+ public class Account
+ {
+ ///
+ /// 获取或设置账号激活码。
+ ///
+ [Newtonsoft.Json.JsonProperty("active_code")]
+ [System.Text.Json.Serialization.JsonPropertyName("active_code")]
+ public string ActiveCode { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置待绑定激活的成员 UserId。
+ ///
+ [Newtonsoft.Json.JsonProperty("userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("userid")]
+ public string UserId { get; set; } = string.Empty;
+ }
+ }
+
+ ///
+ /// 获取或设置服务商 AccessToken。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public string ProviderAccessToken { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置企业 CorpId。
+ ///
+ [Newtonsoft.Json.JsonProperty("corpid")]
+ [System.Text.Json.Serialization.JsonPropertyName("corpid")]
+ public string CorpId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置激活账号列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("active_list")]
+ [System.Text.Json.Serialization.JsonPropertyName("active_list")]
+ public IList AccountList { get; set; } = new List();
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseBatchActiveAccountResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseBatchActiveAccountResponse.cs
new file mode 100644
index 00000000..079e0837
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseBatchActiveAccountResponse.cs
@@ -0,0 +1,42 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/license/batch_active_account 接口的响应。
+ ///
+ public class CgibinLicenseBatchActiveAccountResponse : WechatWorkResponse
+ {
+ public static class Types
+ {
+ public class Result
+ {
+ ///
+ /// 获取或设置错误码。
+ ///
+ [Newtonsoft.Json.JsonProperty("errcode")]
+ [System.Text.Json.Serialization.JsonPropertyName("errcode")]
+ public int ErrorCode { get; set; }
+
+ ///
+ /// 获取或设置账号激活码。
+ ///
+ [Newtonsoft.Json.JsonProperty("active_code")]
+ [System.Text.Json.Serialization.JsonPropertyName("active_code")]
+ public string ActiveCode { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置待绑定激活的成员 UserId。
+ ///
+ [Newtonsoft.Json.JsonProperty("userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("userid")]
+ public string UserId { get; set; } = string.Empty;
+ }
+ }
+
+ ///
+ /// 获取或设置激活结果列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("active_result")]
+ [System.Text.Json.Serialization.JsonPropertyName("active_result")]
+ public Types.Result[] ResultList { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseBatchGetActiveInfoByCodeRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseBatchGetActiveInfoByCodeRequest.cs
new file mode 100644
index 00000000..c7545775
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseBatchGetActiveInfoByCodeRequest.cs
@@ -0,0 +1,31 @@
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/license/batch_get_active_info_by_code 接口的请求。
+ ///
+ public class CgibinLicenseBatchGetActiveInfoByCodeRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置服务商 AccessToken。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public string ProviderAccessToken { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置企业 CorpId。
+ ///
+ [Newtonsoft.Json.JsonProperty("corpid")]
+ [System.Text.Json.Serialization.JsonPropertyName("corpid")]
+ public string CorpId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置账号激活码列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("active_code_list")]
+ [System.Text.Json.Serialization.JsonPropertyName("active_code_list")]
+ public IList ActiveCodeList { get; set; } = new List();
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseBatchGetActiveInfoByCodeResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseBatchGetActiveInfoByCodeResponse.cs
new file mode 100644
index 00000000..eea58f76
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseBatchGetActiveInfoByCodeResponse.cs
@@ -0,0 +1,29 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/license/batch_get_active_info_by_code 接口的响应。
+ ///
+ public class CgibinLicenseBatchGetActiveInfoByCodeResponse : WechatWorkResponse
+ {
+ public static class Types
+ {
+ public class ActiveInfo : CgibinLicenseGetActiveInfoByCodeResponse.Types.ActiveInfo
+ {
+ }
+ }
+
+ ///
+ /// 获取或设置账号激活列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("active_info_list")]
+ [System.Text.Json.Serialization.JsonPropertyName("active_info_list")]
+ public Types.ActiveInfo[] ActiveList { get; set; } = default!;
+
+ ///
+ /// 获取或设置无效的激活码列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("invalid_active_code_list")]
+ [System.Text.Json.Serialization.JsonPropertyName("invalid_active_code_list")]
+ public string[] InvalidActiveCodeList { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseBatchShareActiveCodeRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseBatchShareActiveCodeRequest.cs
new file mode 100644
index 00000000..72c03e2b
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseBatchShareActiveCodeRequest.cs
@@ -0,0 +1,51 @@
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/license/batch_share_active_code 接口的请求。
+ ///
+ public class CgibinLicenseBatchShareActiveCodeRequest : WechatWorkRequest
+ {
+ public static class Types
+ {
+ public class Share
+ {
+ ///
+ /// 获取或设置账号激活码。
+ ///
+ [Newtonsoft.Json.JsonProperty("active_code")]
+ [System.Text.Json.Serialization.JsonPropertyName("active_code")]
+ public string ActiveCode { get; set; } = string.Empty;
+ }
+ }
+
+ ///
+ /// 获取或设置服务商 AccessToken。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public string ProviderAccessToken { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置上游企业 CorpId。
+ ///
+ [Newtonsoft.Json.JsonProperty("from_corpid")]
+ [System.Text.Json.Serialization.JsonPropertyName("from_corpid")]
+ public string FromCorpId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置下游企业 CorpId。
+ ///
+ [Newtonsoft.Json.JsonProperty("to_corpid")]
+ [System.Text.Json.Serialization.JsonPropertyName("to_corpid")]
+ public string ToCorpId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置转移列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("share_list")]
+ [System.Text.Json.Serialization.JsonPropertyName("share_list")]
+ public IList ShareList { get; set; } = new List();
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseBatchShareActiveCodeResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseBatchShareActiveCodeResponse.cs
new file mode 100644
index 00000000..ffe22f75
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseBatchShareActiveCodeResponse.cs
@@ -0,0 +1,42 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/license/batch_share_active_code 接口的响应。
+ ///
+ public class CgibinLicenseBatchShareActiveCodeResponse : WechatWorkResponse
+ {
+ public static class Types
+ {
+ public class Result
+ {
+ ///
+ /// 获取或设置错误码。
+ ///
+ [Newtonsoft.Json.JsonProperty("errcode")]
+ [System.Text.Json.Serialization.JsonPropertyName("errcode")]
+ public int ErrorCode { get; set; }
+
+ ///
+ /// 获取或设置错误描述。
+ ///
+ [Newtonsoft.Json.JsonProperty("errmsg")]
+ [System.Text.Json.Serialization.JsonPropertyName("errmsg")]
+ public string ErrorMessage { get; set; } = default!;
+
+ ///
+ /// 获取或设置账号激活码。
+ ///
+ [Newtonsoft.Json.JsonProperty("active_code")]
+ [System.Text.Json.Serialization.JsonPropertyName("active_code")]
+ public string ActiveCode { get; set; } = default!;
+ }
+ }
+
+ ///
+ /// 获取或设置结果列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("share_result")]
+ [System.Text.Json.Serialization.JsonPropertyName("share_result")]
+ public Types.Result[] ResultList { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseBatchTransferLicenseRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseBatchTransferLicenseRequest.cs
new file mode 100644
index 00000000..767d198b
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseBatchTransferLicenseRequest.cs
@@ -0,0 +1,51 @@
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/license/batch_transfer_license 接口的请求。
+ ///
+ public class CgibinLicenseBatchTransferLicenseRequest : WechatWorkRequest
+ {
+ public static class Types
+ {
+ public class Transfer
+ {
+ ///
+ /// 获取或设置转移成员的 UserId。
+ ///
+ [Newtonsoft.Json.JsonProperty("handover_userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("handover_userid")]
+ public string HandoverUserId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置接收成员的 UserId。
+ ///
+ [Newtonsoft.Json.JsonProperty("takeover_userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("takeover_userid")]
+ public string TakeoverUserId { get; set; } = string.Empty;
+ }
+ }
+
+ ///
+ /// 获取或设置服务商 AccessToken。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public string ProviderAccessToken { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置企业 CorpId。
+ ///
+ [Newtonsoft.Json.JsonProperty("corpid")]
+ [System.Text.Json.Serialization.JsonPropertyName("corpid")]
+ public string CorpId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置转移列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("transfer_list")]
+ [System.Text.Json.Serialization.JsonPropertyName("transfer_list")]
+ public IList TransferList { get; set; } = new List();
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseBatchTransferLicenseResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseBatchTransferLicenseResponse.cs
new file mode 100644
index 00000000..251af6b2
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseBatchTransferLicenseResponse.cs
@@ -0,0 +1,42 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/license/batch_transfer_license 接口的响应。
+ ///
+ public class CgibinLicenseBatchTransferLicenseResponse : WechatWorkResponse
+ {
+ public static class Types
+ {
+ public class Result
+ {
+ ///
+ /// 获取或设置错误码。
+ ///
+ [Newtonsoft.Json.JsonProperty("errcode")]
+ [System.Text.Json.Serialization.JsonPropertyName("errcode")]
+ public int ErrorCode { get; set; }
+
+ ///
+ /// 获取或设置转移成员的 UserId。
+ ///
+ [Newtonsoft.Json.JsonProperty("handover_userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("handover_userid")]
+ public string HandoverUserId { get; set; } = default!;
+
+ ///
+ /// 获取或设置接收成员的 UserId。
+ ///
+ [Newtonsoft.Json.JsonProperty("takeover_userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("takeover_userid")]
+ public string TakeoverUserId { get; set; } = default!;
+ }
+ }
+
+ ///
+ /// 获取或设置结果列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("transfer_result")]
+ [System.Text.Json.Serialization.JsonPropertyName("transfer_result")]
+ public Types.Result[] ResultList { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseGetActiveInfoByCodeRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseGetActiveInfoByCodeRequest.cs
new file mode 100644
index 00000000..cac9eee4
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseGetActiveInfoByCodeRequest.cs
@@ -0,0 +1,29 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/license/get_active_info_by_code 接口的请求。
+ ///
+ public class CgibinLicenseGetActiveInfoByCodeRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置服务商 AccessToken。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public string ProviderAccessToken { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置企业 CorpId。
+ ///
+ [Newtonsoft.Json.JsonProperty("corpid")]
+ [System.Text.Json.Serialization.JsonPropertyName("corpid")]
+ public string CorpId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置账号激活码。
+ ///
+ [Newtonsoft.Json.JsonProperty("active_code")]
+ [System.Text.Json.Serialization.JsonPropertyName("active_code")]
+ public string ActiveCode { get; set; } = string.Empty;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseGetActiveInfoByCodeResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseGetActiveInfoByCodeResponse.cs
new file mode 100644
index 00000000..b0791f0b
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseGetActiveInfoByCodeResponse.cs
@@ -0,0 +1,121 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/license/get_active_info_by_code 接口的响应。
+ ///
+ public class CgibinLicenseGetActiveInfoByCodeResponse : WechatWorkResponse
+ {
+ public static class Types
+ {
+ public class ActiveInfo
+ {
+ public static class Types
+ {
+ public class MergeInfo
+ {
+ ///
+ /// 获取或设置新激活码。
+ ///
+ [Newtonsoft.Json.JsonProperty("to_active_code")]
+ [System.Text.Json.Serialization.JsonPropertyName("to_active_code")]
+ public string ToActiveCode { get; set; } = default!;
+
+ ///
+ /// 获取或设置原激活码。
+ ///
+ [Newtonsoft.Json.JsonProperty("from_active_code")]
+ [System.Text.Json.Serialization.JsonPropertyName("from_active_code")]
+ public string FromActiveCode { get; set; } = default!;
+ }
+
+ public class ShareInfo
+ {
+ ///
+ /// 获取或设置新企业 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("to_corpid")]
+ [System.Text.Json.Serialization.JsonPropertyName("to_corpid")]
+ public string ToCorpId { get; set; } = default!;
+
+ ///
+ /// 获取或设置原企业 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("from_corpid")]
+ [System.Text.Json.Serialization.JsonPropertyName("from_corpid")]
+ public string FromCorpId { get; set; } = default!;
+ }
+ }
+
+ ///
+ /// 获取或设置账号激活码。
+ ///
+ [Newtonsoft.Json.JsonProperty("active_code")]
+ [System.Text.Json.Serialization.JsonPropertyName("active_code")]
+ public string ActiveCode { get; set; } = default!;
+
+ ///
+ /// 获取或设置账号类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("type")]
+ [System.Text.Json.Serialization.JsonPropertyName("type")]
+ public int Type { get; set; }
+
+ ///
+ /// 获取或设置账号状态。
+ ///
+ [Newtonsoft.Json.JsonProperty("status")]
+ [System.Text.Json.Serialization.JsonPropertyName("status")]
+ public int Status { get; set; }
+
+ ///
+ /// 获取或设置激活的成员 UserId。
+ ///
+ [Newtonsoft.Json.JsonProperty("userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("userid")]
+ public string? UserId { get; set; }
+
+ ///
+ /// 获取或设置创建时间戳。
+ ///
+ [Newtonsoft.Json.JsonProperty("create_time")]
+ [System.Text.Json.Serialization.JsonPropertyName("create_time")]
+ public long CreateTimestamp { get; set; }
+
+ ///
+ /// 获取或设置激活时间戳。
+ ///
+ [Newtonsoft.Json.JsonProperty("active_time")]
+ [System.Text.Json.Serialization.JsonPropertyName("active_time")]
+ public long? ActiveTimestamp { get; set; }
+
+ ///
+ /// 获取或设置过期时间戳。
+ ///
+ [Newtonsoft.Json.JsonProperty("expire_time")]
+ [System.Text.Json.Serialization.JsonPropertyName("expire_time")]
+ public long? ExpireTimestamp { get; set; }
+
+ ///
+ /// 获取或设置合并信息。
+ ///
+ [Newtonsoft.Json.JsonProperty("merge_info")]
+ [System.Text.Json.Serialization.JsonPropertyName("merge_info")]
+ public Types.MergeInfo? MergeInfo { get; set; }
+
+ ///
+ /// 获取或设置分享信息。
+ ///
+ [Newtonsoft.Json.JsonProperty("share_info")]
+ [System.Text.Json.Serialization.JsonPropertyName("share_info")]
+ public Types.ShareInfo? ShareInfo { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置账号激活信息。
+ ///
+ [Newtonsoft.Json.JsonProperty("active_info")]
+ [System.Text.Json.Serialization.JsonPropertyName("active_info")]
+ public Types.ActiveInfo ActiveInfo { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseGetActiveInfoByUserRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseGetActiveInfoByUserRequest.cs
new file mode 100644
index 00000000..660aae79
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseGetActiveInfoByUserRequest.cs
@@ -0,0 +1,29 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/license/get_active_info_by_user 接口的请求。
+ ///
+ public class CgibinLicenseGetActiveInfoByUserRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置服务商 AccessToken。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public string ProviderAccessToken { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置企业 CorpId。
+ ///
+ [Newtonsoft.Json.JsonProperty("corpid")]
+ [System.Text.Json.Serialization.JsonPropertyName("corpid")]
+ public string CorpId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置成员的 UserId。
+ ///
+ [Newtonsoft.Json.JsonProperty("userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("userid")]
+ public string UserId { get; set; } = string.Empty;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseGetActiveInfoByUserResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseGetActiveInfoByUserResponse.cs
new file mode 100644
index 00000000..c629b79a
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseGetActiveInfoByUserResponse.cs
@@ -0,0 +1,35 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/license/get_active_info_by_user 接口的响应。
+ ///
+ public class CgibinLicenseGetActiveInfoByUserResponse : WechatWorkResponse
+ {
+ public static class Types
+ {
+ public class Account : CgibinLicenseListActivedAccountResponse.Types.Account
+ {
+ ///
+ /// 获取或设置账号激活码。
+ ///
+ [Newtonsoft.Json.JsonProperty("active_code")]
+ [System.Text.Json.Serialization.JsonPropertyName("active_code")]
+ public string ActiveCode { get; set; } = default!;
+ }
+ }
+
+ ///
+ /// 获取或设置激活状态。
+ ///
+ [Newtonsoft.Json.JsonProperty("active_status")]
+ [System.Text.Json.Serialization.JsonPropertyName("active_status")]
+ public int ActiveStatus { get; set; }
+
+ ///
+ /// 获取或设置账号列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("active_info_list")]
+ [System.Text.Json.Serialization.JsonPropertyName("active_info_list")]
+ public Types.Account[] AccountList { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseListActivedAccountRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseListActivedAccountRequest.cs
new file mode 100644
index 00000000..5a1c7cb3
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseListActivedAccountRequest.cs
@@ -0,0 +1,36 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/license/list_actived_account 接口的请求。
+ ///
+ public class CgibinLicenseListActivedAccountRequest : WechatWorkRequest
+ {
+ ///
+ /// 获取或设置服务商 AccessToken。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public string ProviderAccessToken { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置企业 CorpId。
+ ///
+ [Newtonsoft.Json.JsonProperty("corpid")]
+ [System.Text.Json.Serialization.JsonPropertyName("corpid")]
+ public string CorpId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置分页游标。
+ ///
+ [Newtonsoft.Json.JsonProperty("cursor")]
+ [System.Text.Json.Serialization.JsonPropertyName("cursor")]
+ public string? Cursor { get; set; }
+
+ ///
+ /// 获取或设置分页每页数量。
+ ///
+ [Newtonsoft.Json.JsonProperty("limit")]
+ [System.Text.Json.Serialization.JsonPropertyName("limit")]
+ public int? Limit { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseListActivedAccountResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseListActivedAccountResponse.cs
new file mode 100644
index 00000000..61fc232a
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Account/CgibinLicenseListActivedAccountResponse.cs
@@ -0,0 +1,65 @@
+namespace SKIT.FlurlHttpClient.Wechat.Work.Models
+{
+ ///
+ /// 表示 [POST] /cgi-bin/license/list_actived_account 接口的响应。
+ ///
+ public class CgibinLicenseListActivedAccountResponse : WechatWorkResponse
+ {
+ public static class Types
+ {
+ public class Account
+ {
+ ///
+ /// 获取或设置成员的 UserId。
+ ///
+ [Newtonsoft.Json.JsonProperty("userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("userid")]
+ public string UserId { get; set; } = default!;
+
+ ///
+ /// 获取或设置账号类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("type")]
+ [System.Text.Json.Serialization.JsonPropertyName("type")]
+ public int Type { get; set; }
+
+ ///
+ /// 获取或设置激活时间戳。
+ ///
+ [Newtonsoft.Json.JsonProperty("active_time")]
+ [System.Text.Json.Serialization.JsonPropertyName("active_time")]
+ public long ActiveTimestamp { get; set; }
+
+ ///
+ /// 获取或设置过期时间戳。
+ ///
+ [Newtonsoft.Json.JsonProperty("expire_time")]
+ [System.Text.Json.Serialization.JsonPropertyName("expire_time")]
+ public long ExpireTimestamp { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置已激活成员列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("account_list")]
+ [System.Text.Json.Serialization.JsonPropertyName("account_list")]
+ public Types.Account[] AccountList { get; set; } = default!;
+
+ ///
+ /// 获取或设置是否还有更多数据。
+ ///
+ [Newtonsoft.Json.JsonProperty("has_more")]
+ [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalBooleanConverter))]
+ [System.Text.Json.Serialization.JsonPropertyName("has_more")]
+ [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalBooleanConverter))]
+ 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/CgibinLicense/Order/CgibinLicenseCreateNewOrderRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Order/CgibinLicenseCreateNewOrderRequest.cs
index a9b160bf..6e23fb05 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Order/CgibinLicenseCreateNewOrderRequest.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Order/CgibinLicenseCreateNewOrderRequest.cs
@@ -10,14 +10,14 @@
public class AccountCount
{
///
- /// 获取或设置基础帐号个数。
+ /// 获取或设置基础账号个数。
///
[Newtonsoft.Json.JsonProperty("base_count")]
[System.Text.Json.Serialization.JsonPropertyName("base_count")]
public int? BaseCount { get; set; }
///
- /// 获取或设置互通帐号个数。
+ /// 获取或设置互通账号个数。
///
[Newtonsoft.Json.JsonProperty("external_contact_count")]
[System.Text.Json.Serialization.JsonPropertyName("external_contact_count")]
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Order/CgibinLicenseCreateRenewOrderJobRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Order/CgibinLicenseCreateRenewOrderJobRequest.cs
index 87799df7..dfbfdd14 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Order/CgibinLicenseCreateRenewOrderJobRequest.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Order/CgibinLicenseCreateRenewOrderJobRequest.cs
@@ -19,7 +19,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
public string UserId { get; set; } = string.Empty;
///
- /// 获取或设置续期帐号类型。
+ /// 获取或设置续期账号类型。
///
[Newtonsoft.Json.JsonProperty("type")]
[System.Text.Json.Serialization.JsonPropertyName("type")]
@@ -49,7 +49,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
public string? JobId { get; set; }
///
- /// 获取或设置续期的帐号列表。
+ /// 获取或设置续期的账号列表。
///
[Newtonsoft.Json.JsonProperty("account_list")]
[System.Text.Json.Serialization.JsonPropertyName("account_list")]
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Order/CgibinLicenseCreateRenewOrderJobResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Order/CgibinLicenseCreateRenewOrderJobResponse.cs
index 360581e7..888a4fe1 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Order/CgibinLicenseCreateRenewOrderJobResponse.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Order/CgibinLicenseCreateRenewOrderJobResponse.cs
@@ -31,7 +31,7 @@
public string UserId { get; set; } = default!;
///
- /// 获取或设置续期帐号类型。
+ /// 获取或设置续期账号类型。
///
[Newtonsoft.Json.JsonProperty("type")]
[System.Text.Json.Serialization.JsonPropertyName("type")]
@@ -47,7 +47,7 @@
public string JobId { get; set; } = default!;
///
- /// 获取或设置无效的帐号列表。
+ /// 获取或设置无效的账号列表。
///
[Newtonsoft.Json.JsonProperty("invalid_account_list")]
[System.Text.Json.Serialization.JsonPropertyName("invalid_account_list")]
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Order/CgibinLicenseGetOrderResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Order/CgibinLicenseGetOrderResponse.cs
index b63affb0..c3cf049b 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Order/CgibinLicenseGetOrderResponse.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Order/CgibinLicenseGetOrderResponse.cs
@@ -14,14 +14,14 @@
public class AccountCount
{
///
- /// 获取或设置基础帐号个数。
+ /// 获取或设置基础账号个数。
///
[Newtonsoft.Json.JsonProperty("base_count")]
[System.Text.Json.Serialization.JsonPropertyName("base_count")]
public int BaseCount { get; set; }
///
- /// 获取或设置互通帐号个数。
+ /// 获取或设置互通账号个数。
///
[Newtonsoft.Json.JsonProperty("external_contact_count")]
[System.Text.Json.Serialization.JsonPropertyName("external_contact_count")]
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Order/CgibinLicenseListOrderAccountResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Order/CgibinLicenseListOrderAccountResponse.cs
index 5ce13511..7e8bbcff 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Order/CgibinLicenseListOrderAccountResponse.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinLicense/Order/CgibinLicenseListOrderAccountResponse.cs
@@ -10,7 +10,7 @@
public class Account
{
///
- /// 获取或设置帐号激活码。
+ /// 获取或设置账号激活码。
///
[Newtonsoft.Json.JsonProperty("active_code")]
[System.Text.Json.Serialization.JsonPropertyName("active_code")]
@@ -24,7 +24,7 @@
public string? UserId { get; set; }
///
- /// 获取或设置帐号类型。
+ /// 获取或设置账号类型。
///
[Newtonsoft.Json.JsonProperty("type")]
[System.Text.Json.Serialization.JsonPropertyName("type")]
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseActiveAccountRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseActiveAccountRequest.json
new file mode 100644
index 00000000..ce41b38b
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseActiveAccountRequest.json
@@ -0,0 +1,5 @@
+{
+ "active_code": "XXXXXXXX",
+ "corpid": "CORPID",
+ "userid": "USERID"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseBatchActiveAccountRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseBatchActiveAccountRequest.json
new file mode 100644
index 00000000..74562ace
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseBatchActiveAccountRequest.json
@@ -0,0 +1,13 @@
+{
+ "corpid": "CORPID",
+ "active_list": [
+ {
+ "active_code": "XXXXXXXX",
+ "userid": "USERID"
+ },
+ {
+ "active_code": "XXXXXXXX",
+ "userid": "USERID"
+ }
+ ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseBatchActiveAccountResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseBatchActiveAccountResponse.json
new file mode 100644
index 00000000..855a30d8
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseBatchActiveAccountResponse.json
@@ -0,0 +1,16 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "active_result": [
+ {
+ "active_code": "XXXXXXXX",
+ "userid": "USERID",
+ "errcode": 0
+ },
+ {
+ "active_code": "XXXXXXXX",
+ "userid": "USERID",
+ "errcode": 0
+ }
+ ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseBatchGetActiveInfoByCodeRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseBatchGetActiveInfoByCodeRequest.json
new file mode 100644
index 00000000..c0b05050
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseBatchGetActiveInfoByCodeRequest.json
@@ -0,0 +1,4 @@
+{
+ "corpid": "xxx",
+ "active_code_list": ["XXXXXXXX", "YYYYYYYY", "ZZZZZZZZ"]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseBatchGetActiveInfoByCodeResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseBatchGetActiveInfoByCodeResponse.json
new file mode 100644
index 00000000..23c52290
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseBatchGetActiveInfoByCodeResponse.json
@@ -0,0 +1,41 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "active_info_list": [
+ {
+ "active_code": "XXXXXXXX",
+ "type": 1,
+ "status": 1,
+ "userid": "USERID1",
+ "create_time": 1640966400,
+ "active_time": 1640966400,
+ "expire_time": 1640966400,
+ "merge_info": {
+ "to_active_code": "code_new",
+ "from_active_code": "code_old"
+ },
+ "share_info": {
+ "to_corpid": "CORPID",
+ "from_corpid": "CORPID"
+ }
+ },
+ {
+ "active_code": "YYYYYYYY",
+ "type": 2,
+ "status": 1,
+ "userid": "USERID2",
+ "create_time": 1640966400,
+ "active_time": 1640966400,
+ "expire_time": 1640966400,
+ "merge_info": {
+ "to_active_code": "code_new",
+ "from_active_code": "code_old"
+ },
+ "share_info": {
+ "to_corpid": "CORPID",
+ "from_corpid": "CORPID"
+ }
+ }
+ ],
+ "invalid_active_code_list": ["ZZZZZZZZ"]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseBatchShareActiveCodeRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseBatchShareActiveCodeRequest.json
new file mode 100644
index 00000000..e1490581
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseBatchShareActiveCodeRequest.json
@@ -0,0 +1,12 @@
+{
+ "from_corpid": "FROMCORPID",
+ "to_corpid": "ToCORPID",
+ "share_list": [
+ {
+ "active_code": "ACTIVE_CODE"
+ },
+ {
+ "active_code": "ACTIVE_CODE"
+ }
+ ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseBatchShareActiveCodeResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseBatchShareActiveCodeResponse.json
new file mode 100644
index 00000000..9d072234
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseBatchShareActiveCodeResponse.json
@@ -0,0 +1,11 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "share_result": [
+ {
+ "active_code": "ACTIVE_CODE",
+ "errcode": 0,
+ "errmsg": "ok"
+ }
+ ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseBatchTransferLicenseRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseBatchTransferLicenseRequest.json
new file mode 100644
index 00000000..1b334afa
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseBatchTransferLicenseRequest.json
@@ -0,0 +1,13 @@
+{
+ "corpid": "CORPID",
+ "transfer_list": [
+ {
+ "handover_userid": "USERID",
+ "takeover_userid": "USERID"
+ },
+ {
+ "handover_userid": "USERID",
+ "takeover_userid": "USERID"
+ }
+ ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseBatchTransferLicenseResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseBatchTransferLicenseResponse.json
new file mode 100644
index 00000000..d8f83a3f
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseBatchTransferLicenseResponse.json
@@ -0,0 +1,11 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "transfer_result": [
+ {
+ "handover_userid": "USERID",
+ "takeover_userid": "USERID",
+ "errcode": 0
+ }
+ ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseGetActiveInfoByCodeRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseGetActiveInfoByCodeRequest.json
new file mode 100644
index 00000000..5d0ed929
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseGetActiveInfoByCodeRequest.json
@@ -0,0 +1,4 @@
+{
+ "corpid": "xxx",
+ "active_code": "XXXXXXXX"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseGetActiveInfoByCodeResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseGetActiveInfoByCodeResponse.json
new file mode 100644
index 00000000..1dc944ca
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseGetActiveInfoByCodeResponse.json
@@ -0,0 +1,21 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "active_info": {
+ "active_code": "code1",
+ "type": 1,
+ "status": 1,
+ "userid": "USERID",
+ "create_time": 1640966400,
+ "active_time": 1640966400,
+ "expire_time": 1640966400,
+ "merge_info": {
+ "to_active_code": "code_new",
+ "from_active_code": "code_old"
+ },
+ "share_info": {
+ "to_corpid": "CORPID",
+ "from_corpid": "CORPID"
+ }
+ }
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseGetActiveInfoByUserRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseGetActiveInfoByUserRequest.json
new file mode 100644
index 00000000..c3c4af6c
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseGetActiveInfoByUserRequest.json
@@ -0,0 +1,4 @@
+{
+ "corpid": "CORPID",
+ "userid": "USERID"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseGetActiveInfoByUserResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseGetActiveInfoByUserResponse.json
new file mode 100644
index 00000000..41474fed
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseGetActiveInfoByUserResponse.json
@@ -0,0 +1,21 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "active_status": 1,
+ "active_info_list": [
+ {
+ "active_code": "code1",
+ "type": 1,
+ "userid": "USERID",
+ "active_time": 1640966400,
+ "expire_time": 1640966400
+ },
+ {
+ "active_code": "code1",
+ "type": 2,
+ "userid": "USERID",
+ "active_time": 1640966400,
+ "expire_time": 1640966400
+ }
+ ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseListActivedAccountRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseListActivedAccountRequest.json
new file mode 100644
index 00000000..7b211ad0
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseListActivedAccountRequest.json
@@ -0,0 +1,5 @@
+{
+ "corpid": "CORPID",
+ "limit": 500,
+ "cursor": "xxxx"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseListActivedAccountResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseListActivedAccountResponse.json
new file mode 100644
index 00000000..f95a2262
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLicense/Account/CgibinLicenseListActivedAccountResponse.json
@@ -0,0 +1,20 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "next_cursor": "xxx",
+ "has_more": 1,
+ "account_list": [
+ {
+ "userid": "user1",
+ "type": 1,
+ "expire_time": 1500000000,
+ "active_time": 1500000000
+ },
+ {
+ "userid": "user2",
+ "type": 1,
+ "expire_time": 1500000000,
+ "active_time": 1500000000
+ }
+ ]
+}