feat(work): 新增接口调用许可账号管理相关接口

This commit is contained in:
Fu Diwei 2022-10-31 14:35:16 +08:00
parent c3d5118974
commit ba7464454f
41 changed files with 1076 additions and 14 deletions

View File

@ -67,7 +67,7 @@
public int Scene { get; set; }
/// <summary>
/// 获取或设置激活的许可号列表。
/// 获取或设置激活的许可号列表。
/// </summary>
[System.Xml.Serialization.XmlElement("AccountList", Type = typeof(Types.Account))]
public Types.Account[] AccountList { get; set; } = default!;

View File

@ -131,6 +131,168 @@ namespace SKIT.FlurlHttpClient.Wechat.Work
}
#endregion
#region Account
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/license/active_account 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/95553 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinLicenseActiveAccountResponse> 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<Models.CgibinLicenseActiveAccountResponse>(flurlReq, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/license/batch_active_account 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/95553 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinLicenseBatchActiveAccountResponse> 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<Models.CgibinLicenseBatchActiveAccountResponse>(flurlReq, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/license/get_active_info_by_code 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/95552 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinLicenseGetActiveInfoByCodeResponse> 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<Models.CgibinLicenseGetActiveInfoByCodeResponse>(flurlReq, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/license/batch_get_active_info_by_code 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/95552 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinLicenseBatchGetActiveInfoByCodeResponse> 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<Models.CgibinLicenseBatchGetActiveInfoByCodeResponse>(flurlReq, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/license/list_actived_account 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/95544 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinLicenseListActivedAccountResponse> 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<Models.CgibinLicenseListActivedAccountResponse>(flurlReq, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/license/get_active_info_by_user 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/95555 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinLicenseGetActiveInfoByUserResponse> 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<Models.CgibinLicenseGetActiveInfoByUserResponse>(flurlReq, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/license/batch_transfer_license 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/95673 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinLicenseBatchTransferLicenseResponse> 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<Models.CgibinLicenseBatchTransferLicenseResponse>(flurlReq, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/license/batch_share_active_code 接口。</para>
/// <para>REF: https://developer.work.weixin.qq.com/document/path/96059 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CgibinLicenseBatchShareActiveCodeResponse> 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<Models.CgibinLicenseBatchShareActiveCodeResponse>(flurlReq, cancellationToken: cancellationToken);
}
#endregion
#region App
/// <summary>
/// <para>异步调用 [POST] /cgi-bin/license/get_app_license_info 接口。</para>

View File

@ -6,7 +6,7 @@
public class CgibinKfGetCorpStatisticRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置客服号 ID。
/// 获取或设置客服号 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("open_kfid")]
[System.Text.Json.Serialization.JsonPropertyName("open_kfid")]

View File

@ -6,7 +6,7 @@
public class CgibinKfGetServicerStatisticRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置客服号 ID。
/// 获取或设置客服号 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("open_kfid")]
[System.Text.Json.Serialization.JsonPropertyName("open_kfid")]

View File

@ -214,7 +214,7 @@
public int MessageOrigin { get; set; }
/// <summary>
/// 获取或设置客服号 ID。
/// 获取或设置客服号 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("open_kfid")]
[System.Text.Json.Serialization.JsonPropertyName("open_kfid")]

View File

@ -0,0 +1,36 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/license/active_account 接口的请求。</para>
/// </summary>
public class CgibinLicenseActiveAccountRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置服务商 AccessToken。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string ProviderAccessToken { get; set; } = string.Empty;
/// <summary>
/// 获取或设置企业 CorpId。
/// </summary>
[Newtonsoft.Json.JsonProperty("corpid")]
[System.Text.Json.Serialization.JsonPropertyName("corpid")]
public string CorpId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置账号激活码。
/// </summary>
[Newtonsoft.Json.JsonProperty("active_code")]
[System.Text.Json.Serialization.JsonPropertyName("active_code")]
public string ActiveCode { get; set; } = string.Empty;
/// <summary>
/// 获取或设置待绑定激活的成员 UserId。
/// </summary>
[Newtonsoft.Json.JsonProperty("userid")]
[System.Text.Json.Serialization.JsonPropertyName("userid")]
public string UserId { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/license/active_account 接口的响应。</para>
/// </summary>
public class CgibinLicenseActiveAccountResponse : WechatWorkResponse
{
}
}

View File

@ -0,0 +1,51 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/license/batch_active_account 接口的请求。</para>
/// </summary>
public class CgibinLicenseBatchActiveAccountRequest : WechatWorkRequest
{
public static class Types
{
public class Account
{
/// <summary>
/// 获取或设置账号激活码。
/// </summary>
[Newtonsoft.Json.JsonProperty("active_code")]
[System.Text.Json.Serialization.JsonPropertyName("active_code")]
public string ActiveCode { get; set; } = string.Empty;
/// <summary>
/// 获取或设置待绑定激活的成员 UserId。
/// </summary>
[Newtonsoft.Json.JsonProperty("userid")]
[System.Text.Json.Serialization.JsonPropertyName("userid")]
public string UserId { get; set; } = string.Empty;
}
}
/// <summary>
/// 获取或设置服务商 AccessToken。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string ProviderAccessToken { get; set; } = string.Empty;
/// <summary>
/// 获取或设置企业 CorpId。
/// </summary>
[Newtonsoft.Json.JsonProperty("corpid")]
[System.Text.Json.Serialization.JsonPropertyName("corpid")]
public string CorpId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置激活账号列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("active_list")]
[System.Text.Json.Serialization.JsonPropertyName("active_list")]
public IList<Types.Account> AccountList { get; set; } = new List<Types.Account>();
}
}

View File

@ -0,0 +1,42 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/license/batch_active_account 接口的响应。</para>
/// </summary>
public class CgibinLicenseBatchActiveAccountResponse : WechatWorkResponse
{
public static class Types
{
public class Result
{
/// <summary>
/// 获取或设置错误码。
/// </summary>
[Newtonsoft.Json.JsonProperty("errcode")]
[System.Text.Json.Serialization.JsonPropertyName("errcode")]
public int ErrorCode { get; set; }
/// <summary>
/// 获取或设置账号激活码。
/// </summary>
[Newtonsoft.Json.JsonProperty("active_code")]
[System.Text.Json.Serialization.JsonPropertyName("active_code")]
public string ActiveCode { get; set; } = string.Empty;
/// <summary>
/// 获取或设置待绑定激活的成员 UserId。
/// </summary>
[Newtonsoft.Json.JsonProperty("userid")]
[System.Text.Json.Serialization.JsonPropertyName("userid")]
public string UserId { get; set; } = string.Empty;
}
}
/// <summary>
/// 获取或设置激活结果列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("active_result")]
[System.Text.Json.Serialization.JsonPropertyName("active_result")]
public Types.Result[] ResultList { get; set; } = default!;
}
}

View File

@ -0,0 +1,31 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/license/batch_get_active_info_by_code 接口的请求。</para>
/// </summary>
public class CgibinLicenseBatchGetActiveInfoByCodeRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置服务商 AccessToken。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string ProviderAccessToken { get; set; } = string.Empty;
/// <summary>
/// 获取或设置企业 CorpId。
/// </summary>
[Newtonsoft.Json.JsonProperty("corpid")]
[System.Text.Json.Serialization.JsonPropertyName("corpid")]
public string CorpId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置账号激活码列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("active_code_list")]
[System.Text.Json.Serialization.JsonPropertyName("active_code_list")]
public IList<string> ActiveCodeList { get; set; } = new List<string>();
}
}

View File

@ -0,0 +1,29 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/license/batch_get_active_info_by_code 接口的响应。</para>
/// </summary>
public class CgibinLicenseBatchGetActiveInfoByCodeResponse : WechatWorkResponse
{
public static class Types
{
public class ActiveInfo : CgibinLicenseGetActiveInfoByCodeResponse.Types.ActiveInfo
{
}
}
/// <summary>
/// 获取或设置账号激活列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("active_info_list")]
[System.Text.Json.Serialization.JsonPropertyName("active_info_list")]
public Types.ActiveInfo[] ActiveList { get; set; } = default!;
/// <summary>
/// 获取或设置无效的激活码列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("invalid_active_code_list")]
[System.Text.Json.Serialization.JsonPropertyName("invalid_active_code_list")]
public string[] InvalidActiveCodeList { get; set; } = default!;
}
}

View File

@ -0,0 +1,51 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/license/batch_share_active_code 接口的请求。</para>
/// </summary>
public class CgibinLicenseBatchShareActiveCodeRequest : WechatWorkRequest
{
public static class Types
{
public class Share
{
/// <summary>
/// 获取或设置账号激活码。
/// </summary>
[Newtonsoft.Json.JsonProperty("active_code")]
[System.Text.Json.Serialization.JsonPropertyName("active_code")]
public string ActiveCode { get; set; } = string.Empty;
}
}
/// <summary>
/// 获取或设置服务商 AccessToken。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string ProviderAccessToken { get; set; } = string.Empty;
/// <summary>
/// 获取或设置上游企业 CorpId。
/// </summary>
[Newtonsoft.Json.JsonProperty("from_corpid")]
[System.Text.Json.Serialization.JsonPropertyName("from_corpid")]
public string FromCorpId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置下游企业 CorpId。
/// </summary>
[Newtonsoft.Json.JsonProperty("to_corpid")]
[System.Text.Json.Serialization.JsonPropertyName("to_corpid")]
public string ToCorpId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置转移列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("share_list")]
[System.Text.Json.Serialization.JsonPropertyName("share_list")]
public IList<Types.Share> ShareList { get; set; } = new List<Types.Share>();
}
}

View File

@ -0,0 +1,42 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/license/batch_share_active_code 接口的响应。</para>
/// </summary>
public class CgibinLicenseBatchShareActiveCodeResponse : WechatWorkResponse
{
public static class Types
{
public class Result
{
/// <summary>
/// 获取或设置错误码。
/// </summary>
[Newtonsoft.Json.JsonProperty("errcode")]
[System.Text.Json.Serialization.JsonPropertyName("errcode")]
public int ErrorCode { get; set; }
/// <summary>
/// 获取或设置错误描述。
/// </summary>
[Newtonsoft.Json.JsonProperty("errmsg")]
[System.Text.Json.Serialization.JsonPropertyName("errmsg")]
public string ErrorMessage { get; set; } = default!;
/// <summary>
/// 获取或设置账号激活码。
/// </summary>
[Newtonsoft.Json.JsonProperty("active_code")]
[System.Text.Json.Serialization.JsonPropertyName("active_code")]
public string ActiveCode { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置结果列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("share_result")]
[System.Text.Json.Serialization.JsonPropertyName("share_result")]
public Types.Result[] ResultList { get; set; } = default!;
}
}

View File

@ -0,0 +1,51 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/license/batch_transfer_license 接口的请求。</para>
/// </summary>
public class CgibinLicenseBatchTransferLicenseRequest : WechatWorkRequest
{
public static class Types
{
public class Transfer
{
/// <summary>
/// 获取或设置转移成员的 UserId。
/// </summary>
[Newtonsoft.Json.JsonProperty("handover_userid")]
[System.Text.Json.Serialization.JsonPropertyName("handover_userid")]
public string HandoverUserId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置接收成员的 UserId。
/// </summary>
[Newtonsoft.Json.JsonProperty("takeover_userid")]
[System.Text.Json.Serialization.JsonPropertyName("takeover_userid")]
public string TakeoverUserId { get; set; } = string.Empty;
}
}
/// <summary>
/// 获取或设置服务商 AccessToken。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string ProviderAccessToken { get; set; } = string.Empty;
/// <summary>
/// 获取或设置企业 CorpId。
/// </summary>
[Newtonsoft.Json.JsonProperty("corpid")]
[System.Text.Json.Serialization.JsonPropertyName("corpid")]
public string CorpId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置转移列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("transfer_list")]
[System.Text.Json.Serialization.JsonPropertyName("transfer_list")]
public IList<Types.Transfer> TransferList { get; set; } = new List<Types.Transfer>();
}
}

View File

@ -0,0 +1,42 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/license/batch_transfer_license 接口的响应。</para>
/// </summary>
public class CgibinLicenseBatchTransferLicenseResponse : WechatWorkResponse
{
public static class Types
{
public class Result
{
/// <summary>
/// 获取或设置错误码。
/// </summary>
[Newtonsoft.Json.JsonProperty("errcode")]
[System.Text.Json.Serialization.JsonPropertyName("errcode")]
public int ErrorCode { get; set; }
/// <summary>
/// 获取或设置转移成员的 UserId。
/// </summary>
[Newtonsoft.Json.JsonProperty("handover_userid")]
[System.Text.Json.Serialization.JsonPropertyName("handover_userid")]
public string HandoverUserId { get; set; } = default!;
/// <summary>
/// 获取或设置接收成员的 UserId。
/// </summary>
[Newtonsoft.Json.JsonProperty("takeover_userid")]
[System.Text.Json.Serialization.JsonPropertyName("takeover_userid")]
public string TakeoverUserId { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置结果列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("transfer_result")]
[System.Text.Json.Serialization.JsonPropertyName("transfer_result")]
public Types.Result[] ResultList { get; set; } = default!;
}
}

View File

@ -0,0 +1,29 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/license/get_active_info_by_code 接口的请求。</para>
/// </summary>
public class CgibinLicenseGetActiveInfoByCodeRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置服务商 AccessToken。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string ProviderAccessToken { get; set; } = string.Empty;
/// <summary>
/// 获取或设置企业 CorpId。
/// </summary>
[Newtonsoft.Json.JsonProperty("corpid")]
[System.Text.Json.Serialization.JsonPropertyName("corpid")]
public string CorpId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置账号激活码。
/// </summary>
[Newtonsoft.Json.JsonProperty("active_code")]
[System.Text.Json.Serialization.JsonPropertyName("active_code")]
public string ActiveCode { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,121 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/license/get_active_info_by_code 接口的响应。</para>
/// </summary>
public class CgibinLicenseGetActiveInfoByCodeResponse : WechatWorkResponse
{
public static class Types
{
public class ActiveInfo
{
public static class Types
{
public class MergeInfo
{
/// <summary>
/// 获取或设置新激活码。
/// </summary>
[Newtonsoft.Json.JsonProperty("to_active_code")]
[System.Text.Json.Serialization.JsonPropertyName("to_active_code")]
public string ToActiveCode { get; set; } = default!;
/// <summary>
/// 获取或设置原激活码。
/// </summary>
[Newtonsoft.Json.JsonProperty("from_active_code")]
[System.Text.Json.Serialization.JsonPropertyName("from_active_code")]
public string FromActiveCode { get; set; } = default!;
}
public class ShareInfo
{
/// <summary>
/// 获取或设置新企业 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("to_corpid")]
[System.Text.Json.Serialization.JsonPropertyName("to_corpid")]
public string ToCorpId { get; set; } = default!;
/// <summary>
/// 获取或设置原企业 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("from_corpid")]
[System.Text.Json.Serialization.JsonPropertyName("from_corpid")]
public string FromCorpId { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置账号激活码。
/// </summary>
[Newtonsoft.Json.JsonProperty("active_code")]
[System.Text.Json.Serialization.JsonPropertyName("active_code")]
public string ActiveCode { get; set; } = default!;
/// <summary>
/// 获取或设置账号类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("type")]
[System.Text.Json.Serialization.JsonPropertyName("type")]
public int Type { get; set; }
/// <summary>
/// 获取或设置账号状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("status")]
[System.Text.Json.Serialization.JsonPropertyName("status")]
public int Status { get; set; }
/// <summary>
/// 获取或设置激活的成员 UserId。
/// </summary>
[Newtonsoft.Json.JsonProperty("userid")]
[System.Text.Json.Serialization.JsonPropertyName("userid")]
public string? UserId { get; set; }
/// <summary>
/// 获取或设置创建时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("create_time")]
[System.Text.Json.Serialization.JsonPropertyName("create_time")]
public long CreateTimestamp { get; set; }
/// <summary>
/// 获取或设置激活时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("active_time")]
[System.Text.Json.Serialization.JsonPropertyName("active_time")]
public long? ActiveTimestamp { get; set; }
/// <summary>
/// 获取或设置过期时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("expire_time")]
[System.Text.Json.Serialization.JsonPropertyName("expire_time")]
public long? ExpireTimestamp { get; set; }
/// <summary>
/// 获取或设置合并信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("merge_info")]
[System.Text.Json.Serialization.JsonPropertyName("merge_info")]
public Types.MergeInfo? MergeInfo { get; set; }
/// <summary>
/// 获取或设置分享信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("share_info")]
[System.Text.Json.Serialization.JsonPropertyName("share_info")]
public Types.ShareInfo? ShareInfo { get; set; }
}
}
/// <summary>
/// 获取或设置账号激活信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("active_info")]
[System.Text.Json.Serialization.JsonPropertyName("active_info")]
public Types.ActiveInfo ActiveInfo { get; set; } = default!;
}
}

View File

@ -0,0 +1,29 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/license/get_active_info_by_user 接口的请求。</para>
/// </summary>
public class CgibinLicenseGetActiveInfoByUserRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置服务商 AccessToken。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string ProviderAccessToken { get; set; } = string.Empty;
/// <summary>
/// 获取或设置企业 CorpId。
/// </summary>
[Newtonsoft.Json.JsonProperty("corpid")]
[System.Text.Json.Serialization.JsonPropertyName("corpid")]
public string CorpId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置成员的 UserId。
/// </summary>
[Newtonsoft.Json.JsonProperty("userid")]
[System.Text.Json.Serialization.JsonPropertyName("userid")]
public string UserId { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,35 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/license/get_active_info_by_user 接口的响应。</para>
/// </summary>
public class CgibinLicenseGetActiveInfoByUserResponse : WechatWorkResponse
{
public static class Types
{
public class Account : CgibinLicenseListActivedAccountResponse.Types.Account
{
/// <summary>
/// 获取或设置账号激活码。
/// </summary>
[Newtonsoft.Json.JsonProperty("active_code")]
[System.Text.Json.Serialization.JsonPropertyName("active_code")]
public string ActiveCode { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置激活状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("active_status")]
[System.Text.Json.Serialization.JsonPropertyName("active_status")]
public int ActiveStatus { get; set; }
/// <summary>
/// 获取或设置账号列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("active_info_list")]
[System.Text.Json.Serialization.JsonPropertyName("active_info_list")]
public Types.Account[] AccountList { get; set; } = default!;
}
}

View File

@ -0,0 +1,36 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/license/list_actived_account 接口的请求。</para>
/// </summary>
public class CgibinLicenseListActivedAccountRequest : WechatWorkRequest
{
/// <summary>
/// 获取或设置服务商 AccessToken。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string ProviderAccessToken { get; set; } = string.Empty;
/// <summary>
/// 获取或设置企业 CorpId。
/// </summary>
[Newtonsoft.Json.JsonProperty("corpid")]
[System.Text.Json.Serialization.JsonPropertyName("corpid")]
public string CorpId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置分页游标。
/// </summary>
[Newtonsoft.Json.JsonProperty("cursor")]
[System.Text.Json.Serialization.JsonPropertyName("cursor")]
public string? Cursor { get; set; }
/// <summary>
/// 获取或设置分页每页数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("limit")]
[System.Text.Json.Serialization.JsonPropertyName("limit")]
public int? Limit { get; set; }
}
}

View File

@ -0,0 +1,65 @@
namespace SKIT.FlurlHttpClient.Wechat.Work.Models
{
/// <summary>
/// <para>表示 [POST] /cgi-bin/license/list_actived_account 接口的响应。</para>
/// </summary>
public class CgibinLicenseListActivedAccountResponse : WechatWorkResponse
{
public static class Types
{
public class Account
{
/// <summary>
/// 获取或设置成员的 UserId。
/// </summary>
[Newtonsoft.Json.JsonProperty("userid")]
[System.Text.Json.Serialization.JsonPropertyName("userid")]
public string UserId { get; set; } = default!;
/// <summary>
/// 获取或设置账号类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("type")]
[System.Text.Json.Serialization.JsonPropertyName("type")]
public int Type { get; set; }
/// <summary>
/// 获取或设置激活时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("active_time")]
[System.Text.Json.Serialization.JsonPropertyName("active_time")]
public long ActiveTimestamp { get; set; }
/// <summary>
/// 获取或设置过期时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("expire_time")]
[System.Text.Json.Serialization.JsonPropertyName("expire_time")]
public long ExpireTimestamp { get; set; }
}
}
/// <summary>
/// 获取或设置已激活成员列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("account_list")]
[System.Text.Json.Serialization.JsonPropertyName("account_list")]
public Types.Account[] AccountList { get; set; } = default!;
/// <summary>
/// 获取或设置是否还有更多数据。
/// </summary>
[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; }
/// <summary>
/// 获取或设置分页游标。
/// </summary>
[Newtonsoft.Json.JsonProperty("next_cursor")]
[System.Text.Json.Serialization.JsonPropertyName("next_cursor")]
public string? NextCursor { get; set; }
}
}

View File

@ -10,14 +10,14 @@
public class AccountCount
{
/// <summary>
/// 获取或设置基础号个数。
/// 获取或设置基础号个数。
/// </summary>
[Newtonsoft.Json.JsonProperty("base_count")]
[System.Text.Json.Serialization.JsonPropertyName("base_count")]
public int? BaseCount { get; set; }
/// <summary>
/// 获取或设置互通号个数。
/// 获取或设置互通号个数。
/// </summary>
[Newtonsoft.Json.JsonProperty("external_contact_count")]
[System.Text.Json.Serialization.JsonPropertyName("external_contact_count")]

View File

@ -19,7 +19,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.Models
public string UserId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置续期号类型。
/// 获取或设置续期号类型。
/// </summary>
[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; }
/// <summary>
/// 获取或设置续期的号列表。
/// 获取或设置续期的号列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("account_list")]
[System.Text.Json.Serialization.JsonPropertyName("account_list")]

View File

@ -31,7 +31,7 @@
public string UserId { get; set; } = default!;
/// <summary>
/// 获取或设置续期号类型。
/// 获取或设置续期号类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("type")]
[System.Text.Json.Serialization.JsonPropertyName("type")]
@ -47,7 +47,7 @@
public string JobId { get; set; } = default!;
/// <summary>
/// 获取或设置无效的号列表。
/// 获取或设置无效的号列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("invalid_account_list")]
[System.Text.Json.Serialization.JsonPropertyName("invalid_account_list")]

View File

@ -14,14 +14,14 @@
public class AccountCount
{
/// <summary>
/// 获取或设置基础号个数。
/// 获取或设置基础号个数。
/// </summary>
[Newtonsoft.Json.JsonProperty("base_count")]
[System.Text.Json.Serialization.JsonPropertyName("base_count")]
public int BaseCount { get; set; }
/// <summary>
/// 获取或设置互通号个数。
/// 获取或设置互通号个数。
/// </summary>
[Newtonsoft.Json.JsonProperty("external_contact_count")]
[System.Text.Json.Serialization.JsonPropertyName("external_contact_count")]

View File

@ -10,7 +10,7 @@
public class Account
{
/// <summary>
/// 获取或设置号激活码。
/// 获取或设置号激活码。
/// </summary>
[Newtonsoft.Json.JsonProperty("active_code")]
[System.Text.Json.Serialization.JsonPropertyName("active_code")]
@ -24,7 +24,7 @@
public string? UserId { get; set; }
/// <summary>
/// 获取或设置号类型。
/// 获取或设置号类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("type")]
[System.Text.Json.Serialization.JsonPropertyName("type")]

View File

@ -0,0 +1,5 @@
{
"active_code": "XXXXXXXX",
"corpid": "CORPID",
"userid": "USERID"
}

View File

@ -0,0 +1,13 @@
{
"corpid": "CORPID",
"active_list": [
{
"active_code": "XXXXXXXX",
"userid": "USERID"
},
{
"active_code": "XXXXXXXX",
"userid": "USERID"
}
]
}

View File

@ -0,0 +1,16 @@
{
"errcode": 0,
"errmsg": "ok",
"active_result": [
{
"active_code": "XXXXXXXX",
"userid": "USERID",
"errcode": 0
},
{
"active_code": "XXXXXXXX",
"userid": "USERID",
"errcode": 0
}
]
}

View File

@ -0,0 +1,4 @@
{
"corpid": "xxx",
"active_code_list": ["XXXXXXXX", "YYYYYYYY", "ZZZZZZZZ"]
}

View File

@ -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"]
}

View File

@ -0,0 +1,12 @@
{
"from_corpid": "FROMCORPID",
"to_corpid": "ToCORPID",
"share_list": [
{
"active_code": "ACTIVE_CODE"
},
{
"active_code": "ACTIVE_CODE"
}
]
}

View File

@ -0,0 +1,11 @@
{
"errcode": 0,
"errmsg": "ok",
"share_result": [
{
"active_code": "ACTIVE_CODE",
"errcode": 0,
"errmsg": "ok"
}
]
}

View File

@ -0,0 +1,13 @@
{
"corpid": "CORPID",
"transfer_list": [
{
"handover_userid": "USERID",
"takeover_userid": "USERID"
},
{
"handover_userid": "USERID",
"takeover_userid": "USERID"
}
]
}

View File

@ -0,0 +1,11 @@
{
"errcode": 0,
"errmsg": "ok",
"transfer_result": [
{
"handover_userid": "USERID",
"takeover_userid": "USERID",
"errcode": 0
}
]
}

View File

@ -0,0 +1,4 @@
{
"corpid": "xxx",
"active_code": "XXXXXXXX"
}

View File

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

View File

@ -0,0 +1,4 @@
{
"corpid": "CORPID",
"userid": "USERID"
}

View File

@ -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
}
]
}

View File

@ -0,0 +1,5 @@
{
"corpid": "CORPID",
"limit": 500,
"cursor": "xxxx"
}

View File

@ -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
}
]
}