From a2eb8a263830e4ad09fc22b772fb05fd970357a2 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Sun, 10 Apr 2022 20:54:44 +0800 Subject: [PATCH] =?UTF-8?q?feat(wxapi):=20=E6=96=B0=E5=A2=9E=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E4=BA=A4=E6=98=93=E7=BB=84=E4=BB=B6=E5=88=86?= =?UTF-8?q?=E4=BA=AB=E5=91=98=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WechatApiClientExecuteShopExtensions.cs | 142 ++++++++++++++++++ .../Models/Shop/Order/ShopOrderGetResponse.cs | 7 + .../Shop/Sharer/ShopSharerBindRequest.cs | 17 +++ .../Shop/Sharer/ShopSharerBindResponse.cs | 63 ++++++++ .../ShopSharerGetSharerDataSummaryRequest.cs | 15 ++ .../ShopSharerGetSharerDataSummaryResponse.cs | 29 ++++ .../Sharer/ShopSharerGetSharerListRequest.cs | 22 +++ .../Sharer/ShopSharerGetSharerListResponse.cs | 56 +++++++ ...ShopSharerGetSharerLiveOrderListRequest.cs | 36 +++++ ...hopSharerGetSharerLiveOrderListResponse.cs | 29 ++++ ...opSharerGetSharerLiveSummaryListRequest.cs | 29 ++++ ...pSharerGetSharerLiveSummaryListResponse.cs | 84 +++++++++++ .../Sharer/ShopSharerSearchSharerRequest.cs | 15 ++ .../Sharer/ShopSharerSearchSharerResponse.cs | 36 +++++ .../Shop/Sharer/ShopSharerUnbindRequest.cs | 17 +++ .../Shop/Sharer/ShopSharerUnbindResponse.cs | 29 ++++ .../Shop/Sharer/ShopSharerBindRequest.json | 3 + .../Shop/Sharer/ShopSharerBindResponse.json | 14 ++ ...ShopSharerGetSharerDataSummaryRequest.json | 3 + ...hopSharerGetSharerDataSummaryResponse.json | 7 + .../ShopSharerGetSharerListRequest.json | 4 + .../ShopSharerGetSharerListResponse.json | 13 ++ ...opSharerGetSharerLiveOrderListRequest.json | 6 + ...pSharerGetSharerLiveOrderListResponse.json | 58 +++++++ ...SharerGetSharerLiveSummaryListRequest.json | 5 + ...harerGetSharerLiveSummaryListResponse.json | 17 +++ .../Sharer/ShopSharerSearchSharerRequest.json | 3 + .../ShopSharerSearchSharerResponse.json | 8 + .../Shop/Sharer/ShopSharerUnbindRequest.json | 3 + .../Shop/Sharer/ShopSharerUnbindResponse.json | 7 + 30 files changed, 777 insertions(+) create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerBindRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerBindResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerGetSharerDataSummaryRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerGetSharerDataSummaryResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerGetSharerListRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerGetSharerListResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerGetSharerLiveOrderListRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerGetSharerLiveOrderListResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerGetSharerLiveSummaryListRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerGetSharerLiveSummaryListResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerSearchSharerRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerSearchSharerResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerUnbindRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerUnbindResponse.cs create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerBindRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerBindResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerGetSharerDataSummaryRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerGetSharerDataSummaryResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerGetSharerListRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerGetSharerListResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerGetSharerLiveOrderListRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerGetSharerLiveOrderListResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerGetSharerLiveSummaryListRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerGetSharerLiveSummaryListResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerSearchSharerRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerSearchSharerResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerUnbindRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerUnbindResponse.json diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteShopExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteShopExtensions.cs index 22ffb845..168ee526 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteShopExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteShopExtensions.cs @@ -1047,5 +1047,147 @@ namespace SKIT.FlurlHttpClient.Wechat.Api return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } #endregion + + #region Sharer + /// + /// 异步调用 [POST] /shop/sharer/bind 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/ministore/minishopopencomponent2/API/sharer/bind_sharer.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopSharerBindAsync(this WechatApiClient client, Models.ShopSharerBindRequest 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, "shop", "sharer", "bind") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /shop/sharer/get_sharer_data_summary 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/ministore/minishopopencomponent2/API/sharer/get_sharer_data_summary.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopSharerGetSharerDataSummaryAsync(this WechatApiClient client, Models.ShopSharerGetSharerDataSummaryRequest 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, "shop", "sharer", "get_sharer_data_summary") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /shop/sharer/get_sharer_list 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/ministore/minishopopencomponent2/API/sharer/get_sharer_list.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopSharerGetSharerListAsync(this WechatApiClient client, Models.ShopSharerGetSharerListRequest 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, "shop", "sharer", "get_sharer_list") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /shop/sharer/get_sharer_live_order_list 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/ministore/minishopopencomponent2/API/sharer/get_sharer_live_order_list.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopSharerGetSharerLiveOrderListAsync(this WechatApiClient client, Models.ShopSharerGetSharerLiveOrderListRequest 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, "shop", "sharer", "get_sharer_live_order_list") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /shop/sharer/get_sharer_live_summary_list 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/ministore/minishopopencomponent2/API/sharer/get_sharer_live_summary_list.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopSharerGetSharerLiveSummaryListAsync(this WechatApiClient client, Models.ShopSharerGetSharerLiveSummaryListRequest 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, "shop", "sharer", "get_sharer_live_summary_list") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /shop/sharer/search_sharer 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/ministore/minishopopencomponent2/API/sharer/search_sharer.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopSharerSearchSharerAsync(this WechatApiClient client, Models.ShopSharerSearchSharerRequest 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, "shop", "sharer", "search_sharer") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /shop/sharer/unbind 接口。 + /// REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/ministore/minishopopencomponent2/API/sharer/unbind_sharer.html + /// + /// + /// + /// + /// + public static async Task ExecuteShopSharerUnbindAsync(this WechatApiClient client, Models.ShopSharerUnbindRequest 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, "shop", "sharer", "unbind") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #endregion } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Order/ShopOrderGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Order/ShopOrderGetResponse.cs index 4da2fe37..0c1f9aea 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Order/ShopOrderGetResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Order/ShopOrderGetResponse.cs @@ -239,6 +239,13 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models [System.Text.Json.Serialization.JsonPropertyName("promoter_openid")] public string? PromoterOpenId { get; set; } + /// + /// 获取或设置推广员用户名。 + /// + [Newtonsoft.Json.JsonProperty("finder_username")] + [System.Text.Json.Serialization.JsonPropertyName("finder_username")] + public string? FinderUsername { get; set; } + /// /// 获取或设置推广员昵称。 /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerBindRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerBindRequest.cs new file mode 100644 index 00000000..885016ff --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerBindRequest.cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/sharer/bind 接口的请求。 + /// + public class ShopSharerBindRequest : WechatApiRequest, IInferable + { + /// + /// 获取或设置分享员 OpenId 列表。 + /// + [Newtonsoft.Json.JsonProperty("openids")] + [System.Text.Json.Serialization.JsonPropertyName("openids")] + public IList OpenIdList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerBindResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerBindResponse.cs new file mode 100644 index 00000000..f06fd6ce --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerBindResponse.cs @@ -0,0 +1,63 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/sharer/bind 接口的响应。 + /// + public class ShopSharerBindResponse : WechatApiResponse + { + public static class Types + { + public class Result + { + /// + /// 获取或设置分享员 OpenId。 + /// + [Newtonsoft.Json.JsonProperty("openid")] + [System.Text.Json.Serialization.JsonPropertyName("openid")] + public string OpenId { get; set; } = default!; + + /// + /// 获取或设置邀请结果代码。 + /// + [Newtonsoft.Json.JsonProperty("result_code")] + [System.Text.Json.Serialization.JsonPropertyName("result_code")] + public int ResultCode { get; set; } + + /// + /// 获取或设置邀请错误原因代码。 + /// + [Newtonsoft.Json.JsonProperty("reason_code")] + [System.Text.Json.Serialization.JsonPropertyName("reason_code")] + public int ReasonCode { get; set; } + } + } + + /// + /// 获取或设置绑定成功的分享员 OpenId 列表。 + /// + [Newtonsoft.Json.JsonProperty("success_list")] + [System.Text.Json.Serialization.JsonPropertyName("success_list")] + public string[] SuccessOpenIdList { get; set; } = default!; + + /// + /// 获取或设置绑定失败的分享员 OpenId 列表。 + /// + [Newtonsoft.Json.JsonProperty("fail_list")] + [System.Text.Json.Serialization.JsonPropertyName("fail_list")] + public string[] FailOpenIdList { get; set; } = default!; + + /// + /// 获取或设置绑定拒绝的分享员 OpenId 列表。 + /// + [Newtonsoft.Json.JsonProperty("refuse_list")] + [System.Text.Json.Serialization.JsonPropertyName("refuse_list")] + public string[] RefuseOpenIdList { get; set; } = default!; + + /// + /// 获取或设置绑定结果列表。 + /// + [Newtonsoft.Json.JsonProperty("result_list")] + [System.Text.Json.Serialization.JsonPropertyName("result_list")] + public Types.Result[] ResultList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerGetSharerDataSummaryRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerGetSharerDataSummaryRequest.cs new file mode 100644 index 00000000..f717ddae --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerGetSharerDataSummaryRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/sharer/get_sharer_data_summary 接口的请求。 + /// + public class ShopSharerGetSharerDataSummaryRequest : WechatApiRequest, IInferable + { + /// + /// 获取或设置分享员 OpenId。 + /// + [Newtonsoft.Json.JsonProperty("openid")] + [System.Text.Json.Serialization.JsonPropertyName("openid")] + public string OpenId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerGetSharerDataSummaryResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerGetSharerDataSummaryResponse.cs new file mode 100644 index 00000000..4234b238 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerGetSharerDataSummaryResponse.cs @@ -0,0 +1,29 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/sharer/get_sharer_data_summary 接口的响应。 + /// + public class ShopSharerGetSharerDataSummaryResponse : WechatApiResponse + { + /// + /// 获取或设置分享员有效带货额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("gmv")] + [System.Text.Json.Serialization.JsonPropertyName("gmv")] + public int GMV { get; set; } + + /// + /// 获取或设置订单数。 + /// + [Newtonsoft.Json.JsonProperty("order_cnt")] + [System.Text.Json.Serialization.JsonPropertyName("order_cnt")] + public int OrderCount { get; set; } + + /// + /// 获取或设置下单用户数。 + /// + [Newtonsoft.Json.JsonProperty("user_cnt")] + [System.Text.Json.Serialization.JsonPropertyName("user_cnt")] + public int UserCount { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerGetSharerListRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerGetSharerListRequest.cs new file mode 100644 index 00000000..346907ff --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerGetSharerListRequest.cs @@ -0,0 +1,22 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/sharer/get_sharer_list 接口的请求。 + /// + public class ShopSharerGetSharerListRequest : WechatApiRequest, IInferable + { + /// + /// 获取或设置分页页数(从 1 开始)。 + /// + [Newtonsoft.Json.JsonProperty("page")] + [System.Text.Json.Serialization.JsonPropertyName("page")] + public int Page { get; set; } = 1; + + /// + /// 获取或设置分页每页数量。 + /// + [Newtonsoft.Json.JsonProperty("page_size")] + [System.Text.Json.Serialization.JsonPropertyName("page_size")] + public int Limit { get; set; } = 10; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerGetSharerListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerGetSharerListResponse.cs new file mode 100644 index 00000000..8cad9eb5 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerGetSharerListResponse.cs @@ -0,0 +1,56 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/sharer/get_sharer_list 接口的响应。 + /// + public class ShopSharerGetSharerListResponse : WechatApiResponse + { + public static class Types + { + public class Sharer + { + /// + /// 获取或设置分享员 OpenId。 + /// + [Newtonsoft.Json.JsonProperty("openid")] + [System.Text.Json.Serialization.JsonPropertyName("openid")] + public string OpenId { get; set; } = default!; + + /// + /// 获取或设置分享员昵称。 + /// + [Newtonsoft.Json.JsonProperty("nickname")] + [System.Text.Json.Serialization.JsonPropertyName("nickname")] + public string Nickname { get; set; } = default!; + + /// + /// 获取或设置邀请时间戳。 + /// + [Newtonsoft.Json.JsonProperty("invited_time")] + [System.Text.Json.Serialization.JsonPropertyName("invited_time")] + public long InviteTimestamp { get; set; } + + /// + /// 获取或设置绑定时间戳。 + /// + [Newtonsoft.Json.JsonProperty("bind_time")] + [System.Text.Json.Serialization.JsonPropertyName("bind_time")] + public long BindTimestamp { get; set; } + } + } + + /// + /// 获取或设置分享员列表。 + /// + [Newtonsoft.Json.JsonProperty("sharers")] + [System.Text.Json.Serialization.JsonPropertyName("sharers")] + public Types.Sharer[] SharerList { get; set; } = default!; + + /// + /// 获取或设置总数量。 + /// + [Newtonsoft.Json.JsonProperty("total_num")] + [System.Text.Json.Serialization.JsonPropertyName("total_num")] + public int TotalCount { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerGetSharerLiveOrderListRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerGetSharerLiveOrderListRequest.cs new file mode 100644 index 00000000..a605f1ca --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerGetSharerLiveOrderListRequest.cs @@ -0,0 +1,36 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/sharer/get_sharer_live_order_list 接口的请求。 + /// + public class ShopSharerGetSharerLiveOrderListRequest : WechatApiRequest, IInferable + { + /// + /// 获取或设置分享员 OpenId。 + /// + [Newtonsoft.Json.JsonProperty("openid")] + [System.Text.Json.Serialization.JsonPropertyName("openid")] + public string OpenId { get; set; } = string.Empty; + + /// + /// 获取或设置直播间 ExportId。 + /// + [Newtonsoft.Json.JsonProperty("live_export_id")] + [System.Text.Json.Serialization.JsonPropertyName("live_export_id")] + public string LiveExportId { get; set; } = string.Empty; + + /// + /// 获取或设置分页页数(从 1 开始)。 + /// + [Newtonsoft.Json.JsonProperty("page")] + [System.Text.Json.Serialization.JsonPropertyName("page")] + public int Page { get; set; } = 1; + + /// + /// 获取或设置分页每页数量。 + /// + [Newtonsoft.Json.JsonProperty("page_size")] + [System.Text.Json.Serialization.JsonPropertyName("page_size")] + public int Limit { get; set; } = 10; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerGetSharerLiveOrderListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerGetSharerLiveOrderListResponse.cs new file mode 100644 index 00000000..725a5dcf --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerGetSharerLiveOrderListResponse.cs @@ -0,0 +1,29 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/sharer/get_sharer_live_order_list 接口的响应。 + /// + public class ShopSharerGetSharerLiveOrderListResponse : WechatApiResponse + { + public static class Types + { + public class Order : ShopOrderGetListResponse.Types.Order + { + } + } + + /// + /// 获取或设置订单列表。 + /// + [Newtonsoft.Json.JsonProperty("orders")] + [System.Text.Json.Serialization.JsonPropertyName("orders")] + public Types.Order[] OrderList { get; set; } = default!; + + /// + /// 获取或设置总数量。 + /// + [Newtonsoft.Json.JsonProperty("total_num")] + [System.Text.Json.Serialization.JsonPropertyName("total_num")] + public int TotalCount { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerGetSharerLiveSummaryListRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerGetSharerLiveSummaryListRequest.cs new file mode 100644 index 00000000..56f924d4 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerGetSharerLiveSummaryListRequest.cs @@ -0,0 +1,29 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/sharer/get_sharer_live_summary_list 接口的请求。 + /// + public class ShopSharerGetSharerLiveSummaryListRequest : WechatApiRequest, IInferable + { + /// + /// 获取或设置分享员 OpenId。 + /// + [Newtonsoft.Json.JsonProperty("openid")] + [System.Text.Json.Serialization.JsonPropertyName("openid")] + public string OpenId { get; set; } = string.Empty; + + /// + /// 获取或设置分页页数(从 1 开始)。 + /// + [Newtonsoft.Json.JsonProperty("page")] + [System.Text.Json.Serialization.JsonPropertyName("page")] + public int Page { get; set; } = 1; + + /// + /// 获取或设置分页每页数量。 + /// + [Newtonsoft.Json.JsonProperty("page_size")] + [System.Text.Json.Serialization.JsonPropertyName("page_size")] + public int Limit { get; set; } = 10; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerGetSharerLiveSummaryListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerGetSharerLiveSummaryListResponse.cs new file mode 100644 index 00000000..396be793 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerGetSharerLiveSummaryListResponse.cs @@ -0,0 +1,84 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/sharer/get_sharer_live_summary_list 接口的响应。 + /// + public class ShopSharerGetSharerLiveSummaryListResponse : WechatApiResponse + { + public static class Types + { + public class Live + { + /// + /// 获取或设置直播间 ExportId。 + /// + [Newtonsoft.Json.JsonProperty("live_export_id")] + [System.Text.Json.Serialization.JsonPropertyName("live_export_id")] + public string LiveExportId { get; set; } = default!; + + /// + /// 获取或设置直播间昵称。 + /// + [Newtonsoft.Json.JsonProperty("live_nickname")] + [System.Text.Json.Serialization.JsonPropertyName("live_nickname")] + public string LiveNickname { get; set; } = default!; + + /// + /// 获取或设置直播开始时间戳。 + /// + [Newtonsoft.Json.JsonProperty("live_start_time")] + [System.Text.Json.Serialization.JsonPropertyName("live_start_time")] + public long LiveStartTimestamp { get; set; } + + /// + /// 获取或设置直播结束时间戳。 + /// + [Newtonsoft.Json.JsonProperty("live_end_time")] + [System.Text.Json.Serialization.JsonPropertyName("live_end_time")] + public long LiveEndTimestamp { get; set; } + + /// + /// 获取或设置直播状态。 + /// + [Newtonsoft.Json.JsonProperty("live_status")] + [System.Text.Json.Serialization.JsonPropertyName("live_status")] + public int LiveStatus { get; set; } + + /// + /// 获取或设置分享员有效带货额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("gmv")] + [System.Text.Json.Serialization.JsonPropertyName("gmv")] + public int GMV { get; set; } + + /// + /// 获取或设置订单数。 + /// + [Newtonsoft.Json.JsonProperty("order_cnt")] + [System.Text.Json.Serialization.JsonPropertyName("order_cnt")] + public int OrderCount { get; set; } + + /// + /// 获取或设置下单用户数。 + /// + [Newtonsoft.Json.JsonProperty("user_cnt")] + [System.Text.Json.Serialization.JsonPropertyName("user_cnt")] + public int UserCount { get; set; } + } + } + + /// + /// 获取或设置直播列表。 + /// + [Newtonsoft.Json.JsonProperty("lives")] + [System.Text.Json.Serialization.JsonPropertyName("lives")] + public Types.Live[] LiveList { get; set; } = default!; + + /// + /// 获取或设置总数量。 + /// + [Newtonsoft.Json.JsonProperty("total_num")] + [System.Text.Json.Serialization.JsonPropertyName("total_num")] + public int TotalCount { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerSearchSharerRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerSearchSharerRequest.cs new file mode 100644 index 00000000..35187ba9 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerSearchSharerRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/sharer/search_sharer 接口的请求。 + /// + public class ShopSharerSearchSharerRequest : WechatApiRequest, IInferable + { + /// + /// 获取或设置分享员 OpenId。 + /// + [Newtonsoft.Json.JsonProperty("openid")] + [System.Text.Json.Serialization.JsonPropertyName("openid")] + public string OpenId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerSearchSharerResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerSearchSharerResponse.cs new file mode 100644 index 00000000..c4b6c973 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerSearchSharerResponse.cs @@ -0,0 +1,36 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/sharer/search_sharer 接口的响应。 + /// + public class ShopSharerSearchSharerResponse : WechatApiResponse + { + /// + /// 获取或设置分享员昵称。 + /// + [Newtonsoft.Json.JsonProperty("nickname")] + [System.Text.Json.Serialization.JsonPropertyName("nickname")] + public string Nickname { get; set; } = default!; + + /// + /// 获取或设置邀请时间戳。 + /// + [Newtonsoft.Json.JsonProperty("invited_time")] + [System.Text.Json.Serialization.JsonPropertyName("invited_time")] + public long InviteTimestamp { get; set; } + + /// + /// 获取或设置绑定状态。 + /// + [Newtonsoft.Json.JsonProperty("bind_status")] + [System.Text.Json.Serialization.JsonPropertyName("bind_status")] + public int BindStatus { get; set; } + + /// + /// 获取或设置绑定时间戳。 + /// + [Newtonsoft.Json.JsonProperty("bind_time")] + [System.Text.Json.Serialization.JsonPropertyName("bind_time")] + public long? BindTimestamp { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerUnbindRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerUnbindRequest.cs new file mode 100644 index 00000000..c4bf1d47 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerUnbindRequest.cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/sharer/unbind 接口的请求。 + /// + public class ShopSharerUnbindRequest : WechatApiRequest, IInferable + { + /// + /// 获取或设置分享员 OpenId 列表。 + /// + [Newtonsoft.Json.JsonProperty("openids")] + [System.Text.Json.Serialization.JsonPropertyName("openids")] + public IList OpenIdList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerUnbindResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerUnbindResponse.cs new file mode 100644 index 00000000..9e5a9aa9 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Shop/Sharer/ShopSharerUnbindResponse.cs @@ -0,0 +1,29 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /shop/sharer/unbind 接口的响应。 + /// + public class ShopSharerUnbindResponse : WechatApiResponse + { + /// + /// 获取或设置解绑成功的分享员 OpenId 列表。 + /// + [Newtonsoft.Json.JsonProperty("success_list")] + [System.Text.Json.Serialization.JsonPropertyName("success_list")] + public string[] SuccessOpenIdList { get; set; } = default!; + + /// + /// 获取或设置解绑失败的分享员 OpenId 列表。 + /// + [Newtonsoft.Json.JsonProperty("fail_list")] + [System.Text.Json.Serialization.JsonPropertyName("fail_list")] + public string[] FailOpenIdList { get; set; } = default!; + + /// + /// 获取或设置解绑拒绝的分享员 OpenId 列表。 + /// + [Newtonsoft.Json.JsonProperty("refuse_list")] + [System.Text.Json.Serialization.JsonPropertyName("refuse_list")] + public string[] RefuseOpenIdList { get; set; } = default!; + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerBindRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerBindRequest.json new file mode 100644 index 00000000..9bbc2b46 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerBindRequest.json @@ -0,0 +1,3 @@ +{ + "openids": [ "openid1", "openid2", "openid3" ] +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerBindResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerBindResponse.json new file mode 100644 index 00000000..448e8aa8 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerBindResponse.json @@ -0,0 +1,14 @@ +{ + "errcode": 0, + "errmsg": "ok", + "success_list": [ "openid1", "openid2", "openid3" ], + "fail_list": [], + "refuse_list": [], + "result_list": [ + { + "openid": "OPENID", + "result_code": 0, + "reason_code": 0 + } + ] +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerGetSharerDataSummaryRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerGetSharerDataSummaryRequest.json new file mode 100644 index 00000000..7d47e688 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerGetSharerDataSummaryRequest.json @@ -0,0 +1,3 @@ +{ + "openid": "xxxxx" +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerGetSharerDataSummaryResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerGetSharerDataSummaryResponse.json new file mode 100644 index 00000000..94828353 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerGetSharerDataSummaryResponse.json @@ -0,0 +1,7 @@ +{ + "errcode": 0, + "errmsg": "ok", + "gmv": 12345, + "order_cnt": "9", + "user_cnt": 7 +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerGetSharerListRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerGetSharerListRequest.json new file mode 100644 index 00000000..705087f2 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerGetSharerListRequest.json @@ -0,0 +1,4 @@ +{ + "page": 1, + "page_size": 10 +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerGetSharerListResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerGetSharerListResponse.json new file mode 100644 index 00000000..df686d24 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerGetSharerListResponse.json @@ -0,0 +1,13 @@ +{ + "errcode": 0, + "errmsg": "ok", + "sharers": [ + { + "openid": "OPENID", + "invited_time": "1624082055", + "bind_time": "1624082155", + "nickname": "NICKNAME" + } + ], + "total_num": 20 +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerGetSharerLiveOrderListRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerGetSharerLiveOrderListRequest.json new file mode 100644 index 00000000..3fadb1cb --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerGetSharerLiveOrderListRequest.json @@ -0,0 +1,6 @@ +{ + "openid": "OPENID", + "live_export_id": "LIVE_EXPORT_ID", + "page": 1, + "page_size": 10 +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerGetSharerLiveOrderListResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerGetSharerLiveOrderListResponse.json new file mode 100644 index 00000000..1a4ff739 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerGetSharerLiveOrderListResponse.json @@ -0,0 +1,58 @@ +{ + "errcode": 0, + "errmsg": "ok", + "orders": [ + { + "order_id": 123455, + "out_order_id": "xxxxx", + "status": 20, + "path": "/pages/order.html?out_order_id=xxxxx", + "order_detail": { + "promotion_info": { + "finder_username": "FINDER_USERNAME", + "finder_nickname": "FINDER_NICKNAME", + "sharer_openid": "OPENID", + "live_start_time": "2020-04-25 12:05:25" + }, + "product_infos": [ + { + "out_product_id": "12345", + "out_sku_id": "23456", + "product_cnt": 10, + "sale_price": 200, + "path": "pages/productDetail/productDetail?productId=2176180", + "title": "标题", + "head_img": "http://img10.360buyimg.com/n1/s450x450_jfs/t1/85865/39/13611/488083/5e590a40E4bdf69c0/55c9bf645ea2b727.jpg", + "real_price": 200 + } + ], + "pay_info": { + "pay_method": "微信支付", + "prepay_id": "42526234625", + "prepay_time": "2020-03-25 14:04:25", + "transaction_id": "131456479687", + "pay_time": "2020-03-25 14:05:25", + "pay_method_type": 0 + }, + "price_info": { + "order_price": 1600, + "freight": 500, + "discounted_price": 1000, + "additional_price": 100, + "additional_remarks": "税费" + }, + "delivery_detail": { + "delivery_type": 1, + "finish_all_delivery": 1, + "delivery_list": [ + { + "waybill_id": "SFXXXX", + "delivery_id": "SF" + } + ] + } + } + } + ], + "total_num": 20 +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerGetSharerLiveSummaryListRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerGetSharerLiveSummaryListRequest.json new file mode 100644 index 00000000..223f66ce --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerGetSharerLiveSummaryListRequest.json @@ -0,0 +1,5 @@ +{ + "openid": "xxxxx", + "page": 1, + "page_size": 10 +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerGetSharerLiveSummaryListResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerGetSharerLiveSummaryListResponse.json new file mode 100644 index 00000000..2b6599ee --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerGetSharerLiveSummaryListResponse.json @@ -0,0 +1,17 @@ +{ + "errcode": 0, + "errmsg": "ok", + "lives": [ + { + "live_export_id": "LIVE_EXPORT_ID", + "live_nickname": "LIVE_NICKNAME", + "live_start_time": 2, + "live_end_time": 1, + "live_status": 1, + "gmv": 1000, + "order_cnt": 11, + "user_cnt": 10 + } + ], + "total_num": 20 +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerSearchSharerRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerSearchSharerRequest.json new file mode 100644 index 00000000..c28a621d --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerSearchSharerRequest.json @@ -0,0 +1,3 @@ +{ + "openid": "OPENID" +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerSearchSharerResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerSearchSharerResponse.json new file mode 100644 index 00000000..3431ae53 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerSearchSharerResponse.json @@ -0,0 +1,8 @@ +{ + "errcode": 0, + "errmsg": "ok", + "invited_time": "1624082055", + "bind_time": "1624082155", + "nickname": "NICKNAME", + "bind_status": "1" +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerUnbindRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerUnbindRequest.json new file mode 100644 index 00000000..9bbc2b46 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerUnbindRequest.json @@ -0,0 +1,3 @@ +{ + "openids": [ "openid1", "openid2", "openid3" ] +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerUnbindResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerUnbindResponse.json new file mode 100644 index 00000000..7fd4ccd5 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Shop/Sharer/ShopSharerUnbindResponse.json @@ -0,0 +1,7 @@ +{ + "errcode": 0, + "errmsg": "ok", + "success_list": [ "openid1", "openid2", "openid3" ], + "fail_list": [], + "refuse_list": [] +} \ No newline at end of file