diff --git a/README.md b/README.md index a4d8b09b..0eedc596 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ ### 4. 所有 API 都经过了测试吗? -由于微信的产品业务线众多,很多业务也需要前置条件才能继续,截至目前本项目已封装超过 2800 余个 API,虽然同时也编写了若干单元测试用例,但与数量庞大的 API 相比仍远远不够。 +由于微信的产品业务线众多,很多业务也需要前置条件才能继续,截至目前本项目已封装超过 2900 余个 API,虽然同时也编写了若干单元测试用例,但与数量庞大的 API 相比仍远远不够。 本项目严格按照微信官方提供的开发文档进行封装,并利用自动化工具保证封装结果的正确。但微信的文档本身质量比较低,所以存在错误在所难免。 diff --git a/docs/WechatWork/Basic_ModelDefinition.md b/docs/WechatWork/Basic_ModelDefinition.md index 4edfa9f7..2d7d5829 100644 --- a/docs/WechatWork/Basic_ModelDefinition.md +++ b/docs/WechatWork/Basic_ModelDefinition.md @@ -29,24 +29,26 @@ | | 微信 API | 开发模式 | 备注 | | :-: | :---------------------------: | :-------------------------------: | :------------------------------: | | √ | 开发接入 | 企业 & 第三方 & 服务商 & 智慧硬件 | | +| √ | 基础:应用授权 | 第三方 & 服务商 | | +| √ | 基础:接口调用许可 | 第三方 & 服务商 | | | √ | 基础:账号 ID | 企业 & 第三方 & 服务商 | | | √ | 基础:通讯录管理 | 企业 & 第三方 & 服务商 | | | √ | 基础:身份验证 | 企业 & 第三方 & 服务商 | | | √ | 基础:企业互联 | 企业 & 第三方 & 服务商 | | | √ | 基础:上下游 | 企业 & 第三方 & 服务商 | | +| √ | 基础:安全管理 | 企业 | | | √ | 基础:消息推送 | 企业 & 第三方 & 服务商 | | | √ | 基础:应用管理 | 企业 & 第三方 & 服务商 | | | √ | 基础:素材管理 | 企业 & 第三方 & 服务商 | | | √ | 基础:电子发票 | 企业 & 第三方 & 服务商 | | -| √ | 基础:应用授权 | 第三方 & 服务商 | | -| √ | 基础:接口调用许可 | 第三方 & 服务商 | | | √ | 基础:收银台 | 第三方 & 服务商 | | | √ | 基础:推广二维码 | 第三方 & 服务商 | | | √ | 连接微信:客户联系 | 企业 & 第三方 & 服务商 | | | √ | 连接微信:微信客服 | 企业 & 第三方 & 服务商 | | | × | 连接微信:企业支付 | 企业 & 第三方 & 服务商 | 异构协议,请使用 `TenpayV2` 模块 | | √ | 连接微信:小程序接入对外收款 | 企业 | | -| √ | 连接微信:会话内容存档 | 企业 | | +| √ | 连接微信:会话内容存档 | 企业 & 第三方 | | +| √ | 连接微信:数据与智能专区 | 第三方 & 服务商 | | | √ | 连接微信:家校沟通 | 企业 & 第三方 & 服务商 | | | √ | 连接微信:家校应用 | 企业 & 第三方 & 服务商 | | | √ | 连接微信:政民沟通 | 企业 & 第三方 & 服务商 | | diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Events/Service/SpecProgram/ProgramNotifyEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Events/Service/SpecProgram/ProgramNotifyEvent.cs new file mode 100644 index 00000000..94d0e7fb --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Events/Service/SpecProgram/ProgramNotifyEvent.cs @@ -0,0 +1,29 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Events +{ + /// + /// 表示 EVENT.program_notify 事件的数据。 + /// + /// REF:
+ /// + ///
+ ///
+ public class ProgramNotifyEvent : WechatWorkEvent + { + /// + /// 获取或设置通知 ID。 + /// + [Newtonsoft.Json.JsonProperty("NotifyId")] + [System.Text.Json.Serialization.JsonPropertyName("NotifyId")] + [System.Xml.Serialization.XmlElement("NotifyId")] + public string NotifyId { get; set; } = default!; + + /// + /// 获取或设置通知场景值。 + /// + [Newtonsoft.Json.JsonProperty("NotifyScene")] + [System.Text.Json.Serialization.JsonPropertyName("NotifyScene")] + [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] + [System.Xml.Serialization.XmlElement("NotifyScene")] + public int NotifyScene { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinAdvancedApiExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinAdvancedApiExtensions.cs new file mode 100644 index 00000000..957e3dc2 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinAdvancedApiExtensions.cs @@ -0,0 +1,150 @@ +using System; +using System.Net.Http; +using System.Threading; +using System.Threading.Tasks; +using Flurl; +using Flurl.Http; + +namespace SKIT.FlurlHttpClient.Wechat.Work +{ + public static class WechatWorkClientExecuteCgibinAdvancedApiExtensions + { + /// + /// 异步调用 [POST] /cgi-bin/advanced_api/create_order 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteCgibinAdvancedApiCreateOrderAsync(this WechatWorkClient client, Models.CgibinAdvancedApiCreateOrderRequest 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 + .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "advanced_api", "create_order") + .SetQueryParam("provider_access_token", request.ProviderAccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [POST] /cgi-bin/advanced_api/cancel_order 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteCgibinAdvancedApiCancelOrderAsync(this WechatWorkClient client, Models.CgibinAdvancedApiCancelOrderRequest 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 + .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "advanced_api", "cancel_order") + .SetQueryParam("provider_access_token", request.ProviderAccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [POST] /cgi-bin/advanced_api/submit_pay 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteCgibinAdvancedApiSubmitPayAsync(this WechatWorkClient client, Models.CgibinAdvancedApiSubmitPayRequest 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 + .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "advanced_api", "submit_pay") + .SetQueryParam("provider_access_token", request.ProviderAccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [POST] /cgi-bin/advanced_api/list_order 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteCgibinAdvancedApiListOrderAsync(this WechatWorkClient client, Models.CgibinAdvancedApiListOrderRequest 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 + .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "advanced_api", "list_order") + .SetQueryParam("provider_access_token", request.ProviderAccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [POST] /cgi-bin/advanced_api/get_order 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteCgibinAdvancedApiGetOrderAsync(this WechatWorkClient client, Models.CgibinAdvancedApiGetOrderRequest 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 + .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "advanced_api", "get_order") + .SetQueryParam("provider_access_token", request.ProviderAccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [POST] /cgi-bin/advanced_api/get_corp_buy_info 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteCgibinAdvancedApiGetCorpBuyInfoAsync(this WechatWorkClient client, Models.CgibinAdvancedApiGetCorpBuyInfoRequest 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 + .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "advanced_api", "get_corp_buy_info") + .SetQueryParam("provider_access_token", request.ProviderAccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinChatDataExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinChatDataExtensions.cs index e58c86d8..70b6fd17 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinChatDataExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Extensions/WechatWorkClientExecuteCgibinChatDataExtensions.cs @@ -320,6 +320,77 @@ namespace SKIT.FlurlHttpClient.Wechat.Work } #endregion + #region DebugMode + /// + /// 异步调用 [POST] /cgi-bin/chatdata/open_debug_mode 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteCgibinChatDataOpenDebugModeAsync(this WechatWorkClient client, Models.CgibinChatDataOpenDebugModeRequest 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 + .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "chatdata", "open_debug_mode") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); ; + } + + /// + /// 异步调用 [POST] /cgi-bin/chatdata/close_debug_mode 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteCgibinChatDataCloseDebugModeAsync(this WechatWorkClient client, Models.CgibinChatDataCloseDebugModeRequest 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 + .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "chatdata", "close_debug_mode") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); ; + } + + /// + /// 异步调用 [POST] /cgi-bin/chatdata/check_debug_mode 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteCgibinChatDataCheckDebugModeAsync(this WechatWorkClient client, Models.CgibinChatDataCheckDebugModeRequest 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 + .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "chatdata", "check_debug_mode") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); ; + } + #endregion + #region Export /// /// 异步调用 [POST] /cgi-bin/chatdata/export/create_job 接口。 @@ -556,6 +627,77 @@ namespace SKIT.FlurlHttpClient.Wechat.Work } #endregion + #region Program + /// + /// 异步调用 [POST] /cgi-bin/chatdata/sync_call_program 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteCgibinChatDataSyncCallProgramAsync(this WechatWorkClient client, Models.CgibinChatDataSyncCallProgramRequest 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 + .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "chatdata", "sync_call_program") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); ; + } + + /// + /// 异步调用 [POST] /cgi-bin/chatdata/async_program_task 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteCgibinChatDataAsyncProgramTaskAsync(this WechatWorkClient client, Models.CgibinChatDataAsyncProgramTaskRequest 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 + .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "chatdata", "async_program_task") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); ; + } + + /// + /// 异步调用 [POST] /cgi-bin/chatdata/async_program_result 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteCgibinChatDataAsyncProgramResultAsync(this WechatWorkClient client, Models.CgibinChatDataAsyncProgramResultRequest 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 + .CreateFlurlRequest(request, HttpMethod.Post, "cgi-bin", "chatdata", "async_program_result") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); ; + } + #endregion + #region Search /// /// 异步调用 [POST] /cgi-bin/chatdata/search_chat 接口。 diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinAdvancedApi/CgibinAdvancedApiCancelOrderRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinAdvancedApi/CgibinAdvancedApiCancelOrderRequest.cs new file mode 100644 index 00000000..9bb96d8f --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinAdvancedApi/CgibinAdvancedApiCancelOrderRequest.cs @@ -0,0 +1,22 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/advanced_api/cancel_order 接口的请求。 + /// + public class CgibinAdvancedApiCancelOrderRequest : WechatWorkRequest + { + /// + /// 获取或设置服务商 AccessToken。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string ProviderAccessToken { get; set; } = string.Empty; + + /// + /// 获取或设置订单号。 + /// + [Newtonsoft.Json.JsonProperty("order_id")] + [System.Text.Json.Serialization.JsonPropertyName("order_id")] + public string OrderId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinAdvancedApi/CgibinAdvancedApiCancelOrderResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinAdvancedApi/CgibinAdvancedApiCancelOrderResponse.cs new file mode 100644 index 00000000..2d1a2031 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinAdvancedApi/CgibinAdvancedApiCancelOrderResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/advanced_api/cancel_order 接口的响应。 + /// + public class CgibinAdvancedApiCancelOrderResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinAdvancedApi/CgibinAdvancedApiCreateOrderRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinAdvancedApi/CgibinAdvancedApiCreateOrderRequest.cs new file mode 100644 index 00000000..d0d494ba --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinAdvancedApi/CgibinAdvancedApiCreateOrderRequest.cs @@ -0,0 +1,119 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/advanced_api/create_order 接口的请求。 + /// + public class CgibinAdvancedApiCreateOrderRequest : WechatWorkRequest + { + public static class Types + { + public class ChatArchiveApi + { + public static class Types + { + public class EditionInfo + { + /// + /// 获取或设置开始时间戳。 + /// + [Newtonsoft.Json.JsonProperty("begin_time")] + [System.Text.Json.Serialization.JsonPropertyName("begin_time")] + public long BeginTimestamp { get; set; } + + /// + /// 获取或设置结束时间戳。 + /// + [Newtonsoft.Json.JsonProperty("end_time")] + [System.Text.Json.Serialization.JsonPropertyName("end_time")] + public long EndTimestamp { get; set; } + } + } + + /// + /// 获取或设置目标版本。 + /// + [Newtonsoft.Json.JsonProperty("edition")] + [System.Text.Json.Serialization.JsonPropertyName("edition")] + public int TargetEdition { get; set; } + + /// + /// 获取或设置目标版本生效信息。 + /// + [Newtonsoft.Json.JsonProperty("target_edition_info")] + [System.Text.Json.Serialization.JsonPropertyName("target_edition_info")] + public Types.EditionInfo? TargetEditionInfo { get; set; } + + /// + /// 获取或设置旧版本。 + /// + [Newtonsoft.Json.JsonProperty("old_edition")] + [System.Text.Json.Serialization.JsonPropertyName("old_edition")] + public int? OldEdition { get; set; } + + /// + /// 获取或设置旧版本生效信息。 + /// + [Newtonsoft.Json.JsonProperty("old_edition_info")] + [System.Text.Json.Serialization.JsonPropertyName("old_edition_info")] + public Types.EditionInfo? OldEditionInfo { get; set; } + + /// + /// 获取或设置购买数量。 + /// + [Newtonsoft.Json.JsonProperty("purchase_count")] + [System.Text.Json.Serialization.JsonPropertyName("purchase_count")] + public int? PurchaseCount { get; set; } + + /// + /// 获取或设置生效时间戳。 + /// + [Newtonsoft.Json.JsonProperty("take_effect_time")] + [System.Text.Json.Serialization.JsonPropertyName("take_effect_time")] + public long? TakeEffectTimestamp { get; set; } + } + } + + /// + /// 获取或设置服务商 AccessToken。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string ProviderAccessToken { get; set; } = string.Empty; + + /// + /// 获取或设置购买的高级接口类型。 + /// 默认值:1 + /// + [Newtonsoft.Json.JsonProperty("advanced_api_type")] + [System.Text.Json.Serialization.JsonPropertyName("advanced_api_type")] + public int AdvancedApiType { get; set; } = 1; + + /// + /// 获取或设置客户企业 ID。 + /// + [Newtonsoft.Json.JsonProperty("custom_corpid")] + [System.Text.Json.Serialization.JsonPropertyName("custom_corpid")] + public string CustomCorpId { get; set; } = string.Empty; + + /// + /// 获取或设置下单人成员账号。 + /// + [Newtonsoft.Json.JsonProperty("buyer_userid")] + [System.Text.Json.Serialization.JsonPropertyName("buyer_userid")] + public string BuyerUserId { get; set; } = string.Empty; + + /// + /// 获取或设置订单类型。 + /// + [Newtonsoft.Json.JsonProperty("order_type")] + [System.Text.Json.Serialization.JsonPropertyName("order_type")] + public int? OrderType { get; set; } + + /// + /// 获取或设置会话内容数据接口订单相关信息。 + /// + [Newtonsoft.Json.JsonProperty("chat_archive_api")] + [System.Text.Json.Serialization.JsonPropertyName("chat_archive_api")] + public Types.ChatArchiveApi? ChatArchiveApi { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinAdvancedApi/CgibinAdvancedApiCreateOrderResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinAdvancedApi/CgibinAdvancedApiCreateOrderResponse.cs new file mode 100644 index 00000000..2c53b78a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinAdvancedApi/CgibinAdvancedApiCreateOrderResponse.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/advanced_api/create_order 接口的响应。 + /// + public class CgibinAdvancedApiCreateOrderResponse : WechatWorkResponse + { + /// + /// 获取或设置订单号。 + /// + [Newtonsoft.Json.JsonProperty("order_id")] + [System.Text.Json.Serialization.JsonPropertyName("order_id")] + public string OrderId { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinAdvancedApi/CgibinAdvancedApiGetCorpBuyInfoRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinAdvancedApi/CgibinAdvancedApiGetCorpBuyInfoRequest.cs new file mode 100644 index 00000000..75503b06 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinAdvancedApi/CgibinAdvancedApiGetCorpBuyInfoRequest.cs @@ -0,0 +1,30 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/advanced_api/get_corp_buy_info 接口的请求。 + /// + public class CgibinAdvancedApiGetCorpBuyInfoRequest : WechatWorkRequest + { + /// + /// 获取或设置服务商 AccessToken。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string ProviderAccessToken { get; set; } = string.Empty; + + /// + /// 获取或设置购买的高级接口类型。 + /// 默认值:1 + /// + [Newtonsoft.Json.JsonProperty("advanced_api_type")] + [System.Text.Json.Serialization.JsonPropertyName("advanced_api_type")] + public int AdvancedApiType { get; set; } = 1; + + /// + /// 获取或设置客户企业 ID。 + /// + [Newtonsoft.Json.JsonProperty("custom_corpid")] + [System.Text.Json.Serialization.JsonPropertyName("custom_corpid")] + public string CustomCorpId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinAdvancedApi/CgibinAdvancedApiGetCorpBuyInfoResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinAdvancedApi/CgibinAdvancedApiGetCorpBuyInfoResponse.cs new file mode 100644 index 00000000..28c125e0 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinAdvancedApi/CgibinAdvancedApiGetCorpBuyInfoResponse.cs @@ -0,0 +1,62 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/advanced_api/get_corp_buy_info 接口的响应。 + /// + public class CgibinAdvancedApiGetCorpBuyInfoResponse : WechatWorkResponse + { + public static class Types + { + public class ChatArchivApiBuyInfo + { + public static class Types + { + public class EditionInfo + { + /// + /// 获取或设置版本。 + /// + [Newtonsoft.Json.JsonProperty("edition")] + [System.Text.Json.Serialization.JsonPropertyName("edition")] + public int Edition { get; set; } + + /// + /// 获取或设置购买数量。 + /// + [Newtonsoft.Json.JsonProperty("purchase_count")] + [System.Text.Json.Serialization.JsonPropertyName("purchase_count")] + public int PurchaseCount { get; set; } + + /// + /// 获取或设置开始时间戳。 + /// + [Newtonsoft.Json.JsonProperty("begin_time")] + [System.Text.Json.Serialization.JsonPropertyName("begin_time")] + public long BeginTimestamp { get; set; } + + /// + /// 获取或设置结束时间戳。 + /// + [Newtonsoft.Json.JsonProperty("end_time")] + [System.Text.Json.Serialization.JsonPropertyName("end_time")] + public long EndTimestamp { get; set; } + } + } + + /// + /// 获取或设置已购版本列表。 + /// + [Newtonsoft.Json.JsonProperty("edition_list")] + [System.Text.Json.Serialization.JsonPropertyName("edition_list")] + public Types.EditionInfo[] EditionList { get; set; } = default!; + } + } + + /// + /// 获取或设置会话内容数据接口的购买信息。 + /// + [Newtonsoft.Json.JsonProperty("chat_archive_api_buy_info")] + [System.Text.Json.Serialization.JsonPropertyName("chat_archive_api_buy_info")] + public Types.ChatArchivApiBuyInfo ChatArchivApiBuyInfo { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinAdvancedApi/CgibinAdvancedApiGetOrderRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinAdvancedApi/CgibinAdvancedApiGetOrderRequest.cs new file mode 100644 index 00000000..a288a8e2 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinAdvancedApi/CgibinAdvancedApiGetOrderRequest.cs @@ -0,0 +1,22 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/advanced_api/get_order 接口的请求。 + /// + public class CgibinAdvancedApiGetOrderRequest : WechatWorkRequest + { + /// + /// 获取或设置服务商 AccessToken。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string ProviderAccessToken { get; set; } = string.Empty; + + /// + /// 获取或设置订单号。 + /// + [Newtonsoft.Json.JsonProperty("order_id")] + [System.Text.Json.Serialization.JsonPropertyName("order_id")] + public string OrderId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinAdvancedApi/CgibinAdvancedApiGetOrderResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinAdvancedApi/CgibinAdvancedApiGetOrderResponse.cs new file mode 100644 index 00000000..8713bbc0 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinAdvancedApi/CgibinAdvancedApiGetOrderResponse.cs @@ -0,0 +1,132 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/advanced_api/get_order 接口的响应。 + /// + public class CgibinAdvancedApiGetOrderResponse : WechatWorkResponse + { + public static class Types + { + public class Order + { + public static class Types + { + public class ChatArchiveApi + { + /// + /// 获取或设置版本。 + /// + [Newtonsoft.Json.JsonProperty("edition")] + [System.Text.Json.Serialization.JsonPropertyName("edition")] + public int Edition { get; set; } + + /// + /// 获取或设置购买数量。 + /// + [Newtonsoft.Json.JsonProperty("purchase_count")] + [System.Text.Json.Serialization.JsonPropertyName("purchase_count")] + public int PurchaseCount { get; set; } + + /// + /// 获取或设置购买天数。 + /// + [Newtonsoft.Json.JsonProperty("purchase_duration_days")] + [System.Text.Json.Serialization.JsonPropertyName("purchase_duration_days")] + public int PurchaseDurationDays { get; set; } + + /// + /// 获取或设置生效时间戳。 + /// + [Newtonsoft.Json.JsonProperty("take_effect_time")] + [System.Text.Json.Serialization.JsonPropertyName("take_effect_time")] + public long TakeEffectTimestamp { get; set; } + + /// + /// 获取或设置到期时间戳。 + /// + [Newtonsoft.Json.JsonProperty("end_time")] + [System.Text.Json.Serialization.JsonPropertyName("end_time")] + public long EndTimestamp { get; set; } + + /// + /// 获取或设置原价(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("original_price")] + [System.Text.Json.Serialization.JsonPropertyName("original_price")] + public int? OriginalPrice { get; set; } + } + } + + /// + /// 获取或设置订单号。 + /// + [Newtonsoft.Json.JsonProperty("order_id")] + [System.Text.Json.Serialization.JsonPropertyName("order_id")] + public string OrderId { get; set; } = default!; + + /// + /// 获取或设置购买的高级接口类型。 + /// + [Newtonsoft.Json.JsonProperty("advanced_api_type")] + [System.Text.Json.Serialization.JsonPropertyName("advanced_api_type")] + public int AdvancedApiType { get; set; } + + /// + /// 获取或设置客户企业 ID。 + /// + [Newtonsoft.Json.JsonProperty("custom_corpid")] + [System.Text.Json.Serialization.JsonPropertyName("custom_corpid")] + public string CustomCorpId { get; set; } = default!; + + /// + /// 获取或设置下单人成员账号。 + /// + [Newtonsoft.Json.JsonProperty("buyer_userid")] + [System.Text.Json.Serialization.JsonPropertyName("buyer_userid")] + public string BuyerUserId { get; set; } = default!; + + /// + /// 获取或设置订单类型。 + /// + [Newtonsoft.Json.JsonProperty("order_type")] + [System.Text.Json.Serialization.JsonPropertyName("order_type")] + public int OrderType { get; set; } + + /// + /// 获取或设置订单状态。 + /// + [Newtonsoft.Json.JsonProperty("order_status")] + [System.Text.Json.Serialization.JsonPropertyName("order_status")] + public int OrderStatus { get; set; } + + /// + /// 获取或设置下单时间戳。 + /// + [Newtonsoft.Json.JsonProperty("create_time")] + [System.Text.Json.Serialization.JsonPropertyName("create_time")] + public long CreateTimestamp { get; set; } + + /// + /// 获取或设置应付金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("paid_price")] + [System.Text.Json.Serialization.JsonPropertyName("paid_price")] + public int PaidPrice { get; set; } + + /// + /// 获取或设置会话内容数据接口订单相关信息。 + /// + [Newtonsoft.Json.JsonProperty("chat_archive_api")] + [System.Text.Json.Serialization.JsonPropertyName("chat_archive_api")] + public Types.ChatArchiveApi? ChatArchiveApi { get; set; } + } + } + + /// + /// 获取或设置订单信息。 + /// + [Newtonsoft.Json.JsonProperty("order")] + [System.Text.Json.Serialization.JsonPropertyName("order")] + public Types.Order Order { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinAdvancedApi/CgibinAdvancedApiListOrderRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinAdvancedApi/CgibinAdvancedApiListOrderRequest.cs new file mode 100644 index 00000000..7472c86c --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinAdvancedApi/CgibinAdvancedApiListOrderRequest.cs @@ -0,0 +1,57 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/advanced_api/list_order 接口的请求。 + /// + public class CgibinAdvancedApiListOrderRequest : WechatWorkRequest + { + /// + /// 获取或设置服务商 AccessToken。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string ProviderAccessToken { get; set; } = string.Empty; + + /// + /// 获取或设置客户企业 ID。 + /// + [Newtonsoft.Json.JsonProperty("custom_corpid")] + [System.Text.Json.Serialization.JsonPropertyName("custom_corpid")] + public string? CustomCorpId { get; set; } + + /// + /// 获取或设置下单时间开始时间戳。 + /// + [Newtonsoft.Json.JsonProperty("start_time")] + [System.Text.Json.Serialization.JsonPropertyName("start_time")] + public long? StartTimestamp { get; set; } + + /// + /// 获取或设置下单时间结束时间戳。 + /// + [Newtonsoft.Json.JsonProperty("end_time")] + [System.Text.Json.Serialization.JsonPropertyName("end_time")] + public long? EndTimestamp { get; set; } + + /// + /// 获取或设置购买的高级接口类型。 + /// + [Newtonsoft.Json.JsonProperty("advanced_api_type")] + [System.Text.Json.Serialization.JsonPropertyName("advanced_api_type")] + public int? AdvancedApiType { get; set; } + + /// + /// 获取或设置分页游标。 + /// + [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/CgibinAdvancedApi/CgibinAdvancedApiListOrderResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinAdvancedApi/CgibinAdvancedApiListOrderResponse.cs new file mode 100644 index 00000000..0c81004c --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinAdvancedApi/CgibinAdvancedApiListOrderResponse.cs @@ -0,0 +1,65 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/advanced_api/list_order 接口的响应。 + /// + public class CgibinAdvancedApiListOrderResponse : WechatWorkResponse + { + public static class Types + { + public class Order + { + /// + /// 获取或设置订单号。 + /// + [Newtonsoft.Json.JsonProperty("order_id")] + [System.Text.Json.Serialization.JsonPropertyName("order_id")] + public string OrderId { get; set; } = default!; + + /// + /// 获取或设置订单类型。 + /// + [Newtonsoft.Json.JsonProperty("order_type")] + [System.Text.Json.Serialization.JsonPropertyName("order_type")] + public int OrderType { get; set; } + + /// + /// 获取或设置订单状态。 + /// + [Newtonsoft.Json.JsonProperty("order_status")] + [System.Text.Json.Serialization.JsonPropertyName("order_status")] + public int OrderStatus { get; set; } + + /// + /// 获取或设置下单时间戳。 + /// + [Newtonsoft.Json.JsonProperty("create_time")] + [System.Text.Json.Serialization.JsonPropertyName("create_time")] + public long CreateTimestamp { get; set; } + } + } + + /// + /// 获取或设置订单列表。 + /// + [Newtonsoft.Json.JsonProperty("order_list")] + [System.Text.Json.Serialization.JsonPropertyName("order_list")] + public Types.Order[] OrderList { get; set; } = default!; + + /// + /// 获取或设置分页游标。 + /// + [Newtonsoft.Json.JsonProperty("next_cursor")] + [System.Text.Json.Serialization.JsonPropertyName("next_cursor")] + public string? NextCursor { get; set; } + + /// + /// 获取或设置是否还有更多数据。 + /// + [Newtonsoft.Json.JsonProperty("has_more")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("has_more")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))] + public bool HasMore { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinAdvancedApi/CgibinAdvancedApiSubmitPayRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinAdvancedApi/CgibinAdvancedApiSubmitPayRequest.cs new file mode 100644 index 00000000..dd12bcf9 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinAdvancedApi/CgibinAdvancedApiSubmitPayRequest.cs @@ -0,0 +1,29 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/advanced_api/submit_pay 接口的请求。 + /// + public class CgibinAdvancedApiSubmitPayRequest : WechatWorkRequest + { + /// + /// 获取或设置服务商 AccessToken。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string ProviderAccessToken { get; set; } = string.Empty; + + /// + /// 获取或设置订单号。 + /// + [Newtonsoft.Json.JsonProperty("order_id")] + [System.Text.Json.Serialization.JsonPropertyName("order_id")] + public string OrderId { get; set; } = string.Empty; + + /// + /// 获取或设置支付人成员账号。 + /// + [Newtonsoft.Json.JsonProperty("payer_userid")] + [System.Text.Json.Serialization.JsonPropertyName("payer_userid")] + public string PayerUserId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinAdvancedApi/CgibinAdvancedApiSubmitPayResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinAdvancedApi/CgibinAdvancedApiSubmitPayResponse.cs new file mode 100644 index 00000000..21581aed --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinAdvancedApi/CgibinAdvancedApiSubmitPayResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/advanced_api/submit_pay 接口的响应。 + /// + public class CgibinAdvancedApiSubmitPayResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinChatData/DebugMode/CgibinChatDataCheckDebugModeRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinChatData/DebugMode/CgibinChatDataCheckDebugModeRequest.cs new file mode 100644 index 00000000..b983277c --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinChatData/DebugMode/CgibinChatDataCheckDebugModeRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/chatdata/check_debug_mode 接口的请求。 + /// + public class CgibinChatDataCheckDebugModeRequest : WechatWorkRequest + { + /// + /// 获取或设置应用关联的程序 ID。 + /// + [Newtonsoft.Json.JsonProperty("program_id")] + [System.Text.Json.Serialization.JsonPropertyName("program_id")] + public string ProgramId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinChatData/DebugMode/CgibinChatDataCheckDebugModeResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinChatData/DebugMode/CgibinChatDataCheckDebugModeResponse.cs new file mode 100644 index 00000000..427a5c0b --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinChatData/DebugMode/CgibinChatDataCheckDebugModeResponse.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/chatdata/check_debug_mode 接口的响应。 + /// + public class CgibinChatDataCheckDebugModeResponse : WechatWorkResponse + { + /// + /// 获取或设置程序当前的调试模式状态。 + /// + [Newtonsoft.Json.JsonProperty("debug_mode_status")] + [System.Text.Json.Serialization.JsonPropertyName("debug_mode_status")] + public int DebugModeStatus { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinChatData/DebugMode/CgibinChatDataCloseDebugModeRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinChatData/DebugMode/CgibinChatDataCloseDebugModeRequest.cs new file mode 100644 index 00000000..0410ce3a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinChatData/DebugMode/CgibinChatDataCloseDebugModeRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/chatdata/close_debug_mode 接口的请求。 + /// + public class CgibinChatDataCloseDebugModeRequest : WechatWorkRequest + { + /// + /// 获取或设置应用关联的程序 ID。 + /// + [Newtonsoft.Json.JsonProperty("program_id")] + [System.Text.Json.Serialization.JsonPropertyName("program_id")] + public string ProgramId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinChatData/DebugMode/CgibinChatDataCloseDebugModeResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinChatData/DebugMode/CgibinChatDataCloseDebugModeResponse.cs new file mode 100644 index 00000000..e739eda5 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinChatData/DebugMode/CgibinChatDataCloseDebugModeResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/chatdata/close_debug_mode 接口的响应。 + /// + public class CgibinChatDataCloseDebugModeResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinChatData/DebugMode/CgibinChatDataOpenDebugModeRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinChatData/DebugMode/CgibinChatDataOpenDebugModeRequest.cs new file mode 100644 index 00000000..b014751d --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinChatData/DebugMode/CgibinChatDataOpenDebugModeRequest.cs @@ -0,0 +1,22 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/chatdata/open_debug_mode 接口的请求。 + /// + public class CgibinChatDataOpenDebugModeRequest : WechatWorkRequest + { + /// + /// 获取或设置应用关联的程序 ID。 + /// + [Newtonsoft.Json.JsonProperty("program_id")] + [System.Text.Json.Serialization.JsonPropertyName("program_id")] + public string ProgramId { get; set; } = string.Empty; + + /// + /// 获取或设置程序的调试凭证。 + /// + [Newtonsoft.Json.JsonProperty("debug_token")] + [System.Text.Json.Serialization.JsonPropertyName("debug_token")] + public string DebugToken { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinChatData/DebugMode/CgibinChatDataOpenDebugModeResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinChatData/DebugMode/CgibinChatDataOpenDebugModeResponse.cs new file mode 100644 index 00000000..6b4c7645 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinChatData/DebugMode/CgibinChatDataOpenDebugModeResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/chatdata/open_debug_mode 接口的响应。 + /// + public class CgibinChatDataOpenDebugModeResponse : WechatWorkResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinChatData/Program/CgibinChatDataAsyncProgramResultRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinChatData/Program/CgibinChatDataAsyncProgramResultRequest.cs new file mode 100644 index 00000000..2dece1c3 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinChatData/Program/CgibinChatDataAsyncProgramResultRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/chatdata/async_program_result 接口的请求。 + /// + public class CgibinChatDataAsyncProgramResultRequest : 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/CgibinChatData/Program/CgibinChatDataAsyncProgramResultResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinChatData/Program/CgibinChatDataAsyncProgramResultResponse.cs new file mode 100644 index 00000000..7c97ece8 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinChatData/Program/CgibinChatDataAsyncProgramResultResponse.cs @@ -0,0 +1,22 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/chatdata/async_program_result 接口的响应。 + /// + public class CgibinChatDataAsyncProgramResultResponse : WechatWorkResponse + { + /// + /// 获取或设置专区程序的错误码。 + /// + [Newtonsoft.Json.JsonProperty("response_errcode")] + [System.Text.Json.Serialization.JsonPropertyName("response_errcode")] + public int ResponseErrorCode { get; set; } + + /// + /// 获取或设置专区程序的输出 JSON。 + /// + [Newtonsoft.Json.JsonProperty("response_data")] + [System.Text.Json.Serialization.JsonPropertyName("response_data")] + public string? ResponseDataJson { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinChatData/Program/CgibinChatDataAsyncProgramTaskRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinChatData/Program/CgibinChatDataAsyncProgramTaskRequest.cs new file mode 100644 index 00000000..676a5fce --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinChatData/Program/CgibinChatDataAsyncProgramTaskRequest.cs @@ -0,0 +1,29 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/chatdata/async_program_task 接口的请求。 + /// + public class CgibinChatDataAsyncProgramTaskRequest : WechatWorkRequest + { + /// + /// 获取或设置应用关联的程序 ID。 + /// + [Newtonsoft.Json.JsonProperty("program_id")] + [System.Text.Json.Serialization.JsonPropertyName("program_id")] + public string ProgramId { get; set; } = string.Empty; + + /// + /// 获取或设置程序关联的能力 ID。 + /// + [Newtonsoft.Json.JsonProperty("ability_id")] + [System.Text.Json.Serialization.JsonPropertyName("ability_id")] + public string AbilityId { get; set; } = string.Empty; + + /// + /// 获取或设置请求的输入 JSON。 + /// + [Newtonsoft.Json.JsonProperty("request_data")] + [System.Text.Json.Serialization.JsonPropertyName("request_data")] + public string? RequestDataJson { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinChatData/Program/CgibinChatDataAsyncProgramTaskResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinChatData/Program/CgibinChatDataAsyncProgramTaskResponse.cs new file mode 100644 index 00000000..4e04e3ca --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinChatData/Program/CgibinChatDataAsyncProgramTaskResponse.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/chatdata/async_program_task 接口的响应。 + /// + public class CgibinChatDataAsyncProgramTaskResponse : WechatWorkResponse + { + /// + /// 获取或设置任务 ID。 + /// + [Newtonsoft.Json.JsonProperty("jobid")] + [System.Text.Json.Serialization.JsonPropertyName("jobid")] + public string JobId { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinChatData/Program/CgibinChatDataSyncCallProgramRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinChatData/Program/CgibinChatDataSyncCallProgramRequest.cs new file mode 100644 index 00000000..f115a80e --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinChatData/Program/CgibinChatDataSyncCallProgramRequest.cs @@ -0,0 +1,36 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/chatdata/sync_call_program 接口的请求。 + /// + public class CgibinChatDataSyncCallProgramRequest : WechatWorkRequest + { + /// + /// 获取或设置应用关联的程序 ID。 + /// + [Newtonsoft.Json.JsonProperty("program_id")] + [System.Text.Json.Serialization.JsonPropertyName("program_id")] + public string ProgramId { get; set; } = string.Empty; + + /// + /// 获取或设置程序关联的能力 ID。 + /// + [Newtonsoft.Json.JsonProperty("ability_id")] + [System.Text.Json.Serialization.JsonPropertyName("ability_id")] + public string AbilityId { get; set; } = string.Empty; + + /// + /// 获取或设置通知 ID。 + /// + [Newtonsoft.Json.JsonProperty("notify_id")] + [System.Text.Json.Serialization.JsonPropertyName("notify_id")] + public string NotifyId { get; set; } = string.Empty; + + /// + /// 获取或设置请求的输入 JSON。 + /// + [Newtonsoft.Json.JsonProperty("request_data")] + [System.Text.Json.Serialization.JsonPropertyName("request_data")] + public string? RequestDataJson { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinChatData/Program/CgibinChatDataSyncCallProgramResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinChatData/Program/CgibinChatDataSyncCallProgramResponse.cs new file mode 100644 index 00000000..585a6592 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Work/Models/CgibinChatData/Program/CgibinChatDataSyncCallProgramResponse.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Work.Models +{ + /// + /// 表示 [POST] /cgi-bin/chatdata/sync_call_program 接口的响应。 + /// + public class CgibinChatDataSyncCallProgramResponse : WechatWorkResponse + { + /// + /// 获取或设置专区程序的输出 JSON。 + /// + [Newtonsoft.Json.JsonProperty("response_data")] + [System.Text.Json.Serialization.JsonPropertyName("response_data")] + public string? ResponseDataJson { get; set; } + } +} diff --git a/src/src.sln b/src/src.sln new file mode 100644 index 00000000..6958ba5e --- /dev/null +++ b/src/src.sln @@ -0,0 +1,60 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.5.2.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SKIT.FlurlHttpClient.Wechat.Ads", "SKIT.FlurlHttpClient.Wechat.Ads\SKIT.FlurlHttpClient.Wechat.Ads.csproj", "{1199FEE5-D27A-23FA-2390-355051497DA8}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SKIT.FlurlHttpClient.Wechat.Api", "SKIT.FlurlHttpClient.Wechat.Api\SKIT.FlurlHttpClient.Wechat.Api.csproj", "{60E87902-3A99-5E21-375C-04DA40786B72}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SKIT.FlurlHttpClient.Wechat.OpenAI", "SKIT.FlurlHttpClient.Wechat.OpenAI\SKIT.FlurlHttpClient.Wechat.OpenAI.csproj", "{4FD99934-3133-2E8A-276A-E08E935B2CDD}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SKIT.FlurlHttpClient.Wechat.TenpayBusiness", "SKIT.FlurlHttpClient.Wechat.TenpayBusiness\SKIT.FlurlHttpClient.Wechat.TenpayBusiness.csproj", "{74B1E0E0-5325-F373-A45F-133D20B3FEB4}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SKIT.FlurlHttpClient.Wechat.TenpayV2", "SKIT.FlurlHttpClient.Wechat.TenpayV2\SKIT.FlurlHttpClient.Wechat.TenpayV2.csproj", "{6F95E6BA-B2FD-7AC8-B8EE-6E57DF2A7A49}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SKIT.FlurlHttpClient.Wechat.TenpayV3", "SKIT.FlurlHttpClient.Wechat.TenpayV3\SKIT.FlurlHttpClient.Wechat.TenpayV3.csproj", "{A763CCAC-78B3-DD3D-AF3B-E1F7104C8523}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SKIT.FlurlHttpClient.Wechat.Work", "SKIT.FlurlHttpClient.Wechat.Work\SKIT.FlurlHttpClient.Wechat.Work.csproj", "{04AE2971-1723-1774-7290-E3C1C16C005C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {1199FEE5-D27A-23FA-2390-355051497DA8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1199FEE5-D27A-23FA-2390-355051497DA8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1199FEE5-D27A-23FA-2390-355051497DA8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1199FEE5-D27A-23FA-2390-355051497DA8}.Release|Any CPU.Build.0 = Release|Any CPU + {60E87902-3A99-5E21-375C-04DA40786B72}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {60E87902-3A99-5E21-375C-04DA40786B72}.Debug|Any CPU.Build.0 = Debug|Any CPU + {60E87902-3A99-5E21-375C-04DA40786B72}.Release|Any CPU.ActiveCfg = Release|Any CPU + {60E87902-3A99-5E21-375C-04DA40786B72}.Release|Any CPU.Build.0 = Release|Any CPU + {4FD99934-3133-2E8A-276A-E08E935B2CDD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4FD99934-3133-2E8A-276A-E08E935B2CDD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4FD99934-3133-2E8A-276A-E08E935B2CDD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4FD99934-3133-2E8A-276A-E08E935B2CDD}.Release|Any CPU.Build.0 = Release|Any CPU + {74B1E0E0-5325-F373-A45F-133D20B3FEB4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {74B1E0E0-5325-F373-A45F-133D20B3FEB4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {74B1E0E0-5325-F373-A45F-133D20B3FEB4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {74B1E0E0-5325-F373-A45F-133D20B3FEB4}.Release|Any CPU.Build.0 = Release|Any CPU + {6F95E6BA-B2FD-7AC8-B8EE-6E57DF2A7A49}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6F95E6BA-B2FD-7AC8-B8EE-6E57DF2A7A49}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6F95E6BA-B2FD-7AC8-B8EE-6E57DF2A7A49}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6F95E6BA-B2FD-7AC8-B8EE-6E57DF2A7A49}.Release|Any CPU.Build.0 = Release|Any CPU + {A763CCAC-78B3-DD3D-AF3B-E1F7104C8523}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A763CCAC-78B3-DD3D-AF3B-E1F7104C8523}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A763CCAC-78B3-DD3D-AF3B-E1F7104C8523}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A763CCAC-78B3-DD3D-AF3B-E1F7104C8523}.Release|Any CPU.Build.0 = Release|Any CPU + {04AE2971-1723-1774-7290-E3C1C16C005C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {04AE2971-1723-1774-7290-E3C1C16C005C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {04AE2971-1723-1774-7290-E3C1C16C005C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {04AE2971-1723-1774-7290-E3C1C16C005C}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {BD91E3AB-01FA-4412-839E-69CC33529FB6} + EndGlobalSection +EndGlobal diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/EventSamples/Service/SpecProgram/ProgramNotifyEvent.xml b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/EventSamples/Service/SpecProgram/ProgramNotifyEvent.xml new file mode 100644 index 00000000..d8ca1cf9 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/EventSamples/Service/SpecProgram/ProgramNotifyEvent.xml @@ -0,0 +1,9 @@ + + + + 1348831860 + + + + 1 + diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAdvancedApi/CgibinAdvancedApiCancelOrderRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAdvancedApi/CgibinAdvancedApiCancelOrderRequest.json new file mode 100644 index 00000000..56d2320d --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAdvancedApi/CgibinAdvancedApiCancelOrderRequest.json @@ -0,0 +1,3 @@ +{ + "order_id": "xxxxx" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAdvancedApi/CgibinAdvancedApiCreateOrderRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAdvancedApi/CgibinAdvancedApiCreateOrderRequest.json new file mode 100644 index 00000000..5a5e69e7 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAdvancedApi/CgibinAdvancedApiCreateOrderRequest.json @@ -0,0 +1,20 @@ +{ + "advanced_api_type": 1, + "custom_corpid": "wwxxx", + "buyer_userid": "xxxx", + "order_type": 1, + "chat_archive_api": { + "edition": 3, + "old_edition": 2, + "purchase_count": 100, + "take_effect_time": 1704038400, + "old_edition_info": { + "begin_time": 1704038000, + "end_time": 1704038000 + }, + "target_edition_info": { + "begin_time": 1704038000, + "end_time": 1704038000 + } + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAdvancedApi/CgibinAdvancedApiCreateOrderResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAdvancedApi/CgibinAdvancedApiCreateOrderResponse.json new file mode 100644 index 00000000..26e6d2f8 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAdvancedApi/CgibinAdvancedApiCreateOrderResponse.json @@ -0,0 +1,5 @@ +{ + "errcode": 0, + "errmsg": "ok", + "order_id": "xxxx" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAdvancedApi/CgibinAdvancedApiGetCorpBuyInfoRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAdvancedApi/CgibinAdvancedApiGetCorpBuyInfoRequest.json new file mode 100644 index 00000000..8196dc80 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAdvancedApi/CgibinAdvancedApiGetCorpBuyInfoRequest.json @@ -0,0 +1,4 @@ +{ + "advanced_api_type": 1, + "custom_corpid": "xxxxx" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAdvancedApi/CgibinAdvancedApiGetCorpBuyInfoResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAdvancedApi/CgibinAdvancedApiGetCorpBuyInfoResponse.json new file mode 100644 index 00000000..5d850079 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAdvancedApi/CgibinAdvancedApiGetCorpBuyInfoResponse.json @@ -0,0 +1,20 @@ +{ + "errcode": 0, + "errmsg": "ok", + "chat_archive_api_buy_info": { + "edition_list": [ + { + "edition": 2, + "purchase_count": 100, + "begin_time": 1726588800, + "end_time": 1729180800 + }, + { + "edition": 3, + "purchase_count": 100, + "begin_time": 1726588800, + "end_time": 1729180800 + } + ] + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAdvancedApi/CgibinAdvancedApiGetOrderRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAdvancedApi/CgibinAdvancedApiGetOrderRequest.json new file mode 100644 index 00000000..56d2320d --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAdvancedApi/CgibinAdvancedApiGetOrderRequest.json @@ -0,0 +1,3 @@ +{ + "order_id": "xxxxx" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAdvancedApi/CgibinAdvancedApiGetOrderResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAdvancedApi/CgibinAdvancedApiGetOrderResponse.json new file mode 100644 index 00000000..8916713d --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAdvancedApi/CgibinAdvancedApiGetOrderResponse.json @@ -0,0 +1,22 @@ +{ + "errcode": 0, + "errmsg": "ok", + "order": { + "advanced_api_type": 1, + "order_id": "xxxxx", + "order_type": 1, + "order_status": 1, + "custom_corpid": "wpxxxx", + "create_time": 150000000, + "buyer_userid": "xxx", + "paid_price": 10000, + "chat_archive_api": { + "edition": 2, + "purchase_count": 100, + "purchase_duration_days": 90, + "take_effect_time": 150000000, + "end_time": 150000000, + "original_price": 10010 + } + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAdvancedApi/CgibinAdvancedApiListOrderRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAdvancedApi/CgibinAdvancedApiListOrderRequest.json new file mode 100644 index 00000000..bdacd37a --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAdvancedApi/CgibinAdvancedApiListOrderRequest.json @@ -0,0 +1,8 @@ +{ + "custom_corpid": "xxxxx", + "start_time": 1500000000, + "end_time": 1600000000, + "advanced_api_type": 1, + "cursor": "xxx", + "limit": 10 +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAdvancedApi/CgibinAdvancedApiListOrderResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAdvancedApi/CgibinAdvancedApiListOrderResponse.json new file mode 100644 index 00000000..0137b838 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAdvancedApi/CgibinAdvancedApiListOrderResponse.json @@ -0,0 +1,14 @@ +{ + "errcode": 0, + "errmsg": "ok", + "next_cursor": "xxx", + "has_more": 1, + "order_list": [ + { + "order_id": "xxx", + "order_type": 1, + "order_status": 1, + "create_time": 1704038400 + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAdvancedApi/CgibinAdvancedApiSubmitPayRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAdvancedApi/CgibinAdvancedApiSubmitPayRequest.json new file mode 100644 index 00000000..3ffd5aac --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAdvancedApi/CgibinAdvancedApiSubmitPayRequest.json @@ -0,0 +1,4 @@ +{ + "payer_userid": "USERID", + "order_id": "ORDERID" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinChatData/DebugMode/CgibinChatDataCheckDebugModeRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinChatData/DebugMode/CgibinChatDataCheckDebugModeRequest.json new file mode 100644 index 00000000..11b4ea73 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinChatData/DebugMode/CgibinChatDataCheckDebugModeRequest.json @@ -0,0 +1,3 @@ +{ + "program_id": "xxx" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinChatData/DebugMode/CgibinChatDataCheckDebugModeResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinChatData/DebugMode/CgibinChatDataCheckDebugModeResponse.json new file mode 100644 index 00000000..14d70321 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinChatData/DebugMode/CgibinChatDataCheckDebugModeResponse.json @@ -0,0 +1,5 @@ +{ + "errcode": 0, + "errmsg": "ok", + "debug_mode_status": 1 +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinChatData/DebugMode/CgibinChatDataCloseDebugModeRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinChatData/DebugMode/CgibinChatDataCloseDebugModeRequest.json new file mode 100644 index 00000000..11b4ea73 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinChatData/DebugMode/CgibinChatDataCloseDebugModeRequest.json @@ -0,0 +1,3 @@ +{ + "program_id": "xxx" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinChatData/DebugMode/CgibinChatDataOpenDebugModeRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinChatData/DebugMode/CgibinChatDataOpenDebugModeRequest.json new file mode 100644 index 00000000..005fcce3 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinChatData/DebugMode/CgibinChatDataOpenDebugModeRequest.json @@ -0,0 +1,4 @@ +{ + "program_id": "xxx", + "debug_token": "xxx" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinChatData/Program/CgibinChatDataAsyncProgramResultRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinChatData/Program/CgibinChatDataAsyncProgramResultRequest.json new file mode 100644 index 00000000..ea8ec7e8 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinChatData/Program/CgibinChatDataAsyncProgramResultRequest.json @@ -0,0 +1,3 @@ +{ + "jobid": "JOBID" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinChatData/Program/CgibinChatDataAsyncProgramResultResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinChatData/Program/CgibinChatDataAsyncProgramResultResponse.json new file mode 100644 index 00000000..4d475082 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinChatData/Program/CgibinChatDataAsyncProgramResultResponse.json @@ -0,0 +1,6 @@ +{ + "errcode": 0, + "errmsg": "ok", + "response_errcode": 0, + "response_data": "{\"output\":\"xxx\"}" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinChatData/Program/CgibinChatDataAsyncProgramTaskRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinChatData/Program/CgibinChatDataAsyncProgramTaskRequest.json new file mode 100644 index 00000000..c6035482 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinChatData/Program/CgibinChatDataAsyncProgramTaskRequest.json @@ -0,0 +1,5 @@ +{ + "program_id": "xxx", + "ability_id": "xxx", + "request_data": "{\"input\":\"xxx\"}" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinChatData/Program/CgibinChatDataAsyncProgramTaskResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinChatData/Program/CgibinChatDataAsyncProgramTaskResponse.json new file mode 100644 index 00000000..3ae7240d --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinChatData/Program/CgibinChatDataAsyncProgramTaskResponse.json @@ -0,0 +1,5 @@ +{ + "errcode": 0, + "errmsg": "ok", + "jobid": "JOBID" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinChatData/Program/CgibinChatDataSyncCallProgramRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinChatData/Program/CgibinChatDataSyncCallProgramRequest.json new file mode 100644 index 00000000..b0d5ad7a --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinChatData/Program/CgibinChatDataSyncCallProgramRequest.json @@ -0,0 +1,6 @@ +{ + "program_id": "xxx", + "ability_id": "xxx", + "notify_id": "xxx", + "request_data": "{\"input\":\"xxx\"}" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinChatData/Program/CgibinChatDataSyncCallProgramResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinChatData/Program/CgibinChatDataSyncCallProgramResponse.json new file mode 100644 index 00000000..9d5f7966 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinChatData/Program/CgibinChatDataSyncCallProgramResponse.json @@ -0,0 +1,5 @@ +{ + "errcode": 0, + "errmsg": "ok", + "response_data": "{\"output\":\"xxx\"}" +}