diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs
index 0dff2ed3..206bb39d 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs
@@ -736,6 +736,238 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
}
#endregion
+ #region ECCompass
+ ///
+ /// 异步调用 [POST] /channels/ec/compass/shop/overall/get 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteChannelsECCompassShopOverallGetAsync(this WechatApiClient client, Models.ChannelsECCompassShopOverallGetRequest 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, "channels", "ec", "compass", "shop", "overall", "get")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+
+ ///
+ /// 异步调用 [POST] /channels/ec/compass/shop/finder/authorization/list/get 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteChannelsECCompassShopFinderAuthorizationListGetAsync(this WechatApiClient client, Models.ChannelsECCompassShopFinderAuthorizationListGetRequest 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, "channels", "ec", "compass", "shop", "finder", "authorization", "list", "get")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+
+ ///
+ /// 异步调用 [POST] /channels/ec/compass/shop/finder/list/get 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteChannelsECCompassShopFinderListGetAsync(this WechatApiClient client, Models.ChannelsECCompassShopFinderListGetRequest 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, "channels", "ec", "compass", "shop", "finder", "list", "get")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+
+ ///
+ /// 异步调用 [POST] /channels/ec/compass/shop/finder/overall/get 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteChannelsECCompassShopFinderOverallGetAsync(this WechatApiClient client, Models.ChannelsECCompassShopFinderOverallGetRequest 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, "channels", "ec", "compass", "shop", "finder", "overall", "get")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+
+ ///
+ /// 异步调用 [POST] /channels/ec/compass/shop/finder/product/list/get 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteChannelsECCompassShopFinderProductListGetAsync(this WechatApiClient client, Models.ChannelsECCompassShopFinderProductListGetRequest 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, "channels", "ec", "compass", "shop", "finder", "product", "list", "get")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+
+ ///
+ /// 异步调用 [POST] /channels/ec/compass/shop/finder/product/overall/get 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteChannelsECCompassShopFinderProductOverallGetAsync(this WechatApiClient client, Models.ChannelsECCompassShopFinderProductOverallGetRequest 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, "channels", "ec", "compass", "shop", "finder", "product", "overall", "get")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+
+ ///
+ /// 异步调用 [POST] /channels/ec/compass/shop/live/list/get 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteChannelsECCompassShopLiveListGetAsync(this WechatApiClient client, Models.ChannelsECCompassShopLiveListGetRequest 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, "channels", "ec", "compass", "shop", "live", "list", "get")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+
+ ///
+ /// 异步调用 [POST] /channels/ec/compass/shop/product/list/get 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteChannelsECCompassShopProductListGetAsync(this WechatApiClient client, Models.ChannelsECCompassShopProductListGetRequest 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, "channels", "ec", "compass", "shop", "product", "list", "get")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+
+ ///
+ /// 异步调用 [POST] /channels/ec/compass/shop/product/data/get 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteChannelsECCompassShopProductDataGetAsync(this WechatApiClient client, Models.ChannelsECCompassShopProductDataGetRequest 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, "channels", "ec", "compass", "shop", "product", "data", "get")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+
+ ///
+ /// 异步调用 [POST] /channels/ec/compass/shop/sale/profile/data/get 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteChannelsECCompassShopSaleProfileDataGetAsync(this WechatApiClient client, Models.ChannelsECCompassShopSaleProfileDataGetRequest 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, "channels", "ec", "compass", "shop", "sale", "profile", "data", "get")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+ #endregion
+
#region ECCoupon
///
/// 异步调用 [POST] /channels/ec/coupon/create 接口。
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopFinderAuthorizationListGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopFinderAuthorizationListGetRequest.cs
new file mode 100644
index 00000000..7ccd0420
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopFinderAuthorizationListGetRequest.cs
@@ -0,0 +1,9 @@
+namespace SKIT.FlurlHttpClient.Wechat.Api.Models
+{
+ ///
+ /// 表示 [POST] /channels/ec/compass/shop/finder/authorization/list/get 接口的请求。
+ ///
+ public class ChannelsECCompassShopFinderAuthorizationListGetRequest : WechatApiRequest, IInferable
+ {
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopFinderAuthorizationListGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopFinderAuthorizationListGetResponse.cs
new file mode 100644
index 00000000..91cc0f91
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopFinderAuthorizationListGetResponse.cs
@@ -0,0 +1,22 @@
+namespace SKIT.FlurlHttpClient.Wechat.Api.Models
+{
+ ///
+ /// 表示 [POST] /channels/ec/compass/shop/finder/authorization/list/get 接口的响应。
+ ///
+ public class ChannelsECCompassShopFinderAuthorizationListGetResponse : WechatApiResponse
+ {
+ ///
+ /// 获取或设置主营视频号 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("main_finder_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("main_finder_id")]
+ public string MainFinderId { get; set; } = default!;
+
+ ///
+ /// 获取或设置授权视频号 ID 列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("authorized_finder_id_list")]
+ [System.Text.Json.Serialization.JsonPropertyName("authorized_finder_id_list")]
+ public string[]? AuthorizedFinderIdList { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopFinderListGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopFinderListGetRequest.cs
new file mode 100644
index 00000000..bb996726
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopFinderListGetRequest.cs
@@ -0,0 +1,15 @@
+namespace SKIT.FlurlHttpClient.Wechat.Api.Models
+{
+ ///
+ /// 表示 [POST] /channels/ec/compass/shop/finder/list/get 接口的请求。
+ ///
+ public class ChannelsECCompassShopFinderListGetRequest : WechatApiRequest, IInferable
+ {
+ ///
+ /// 获取或设置日期字符串(格式:yyyyMMdd)。
+ ///
+ [Newtonsoft.Json.JsonProperty("ds")]
+ [System.Text.Json.Serialization.JsonPropertyName("ds")]
+ public string DateString { get; set; } = string.Empty;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopFinderListGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopFinderListGetResponse.cs
new file mode 100644
index 00000000..4ba98ca5
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopFinderListGetResponse.cs
@@ -0,0 +1,88 @@
+namespace SKIT.FlurlHttpClient.Wechat.Api.Models
+{
+ ///
+ /// 表示 [POST] /channels/ec/compass/shop/finder/list/get 接口的响应。
+ ///
+ public class ChannelsECCompassShopFinderListGetResponse : WechatApiResponse
+ {
+ public static class Types
+ {
+ public class Finder
+ {
+ public static class Types
+ {
+ public class Data
+ {
+ ///
+ /// 获取或设置成交金额(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("pay_gmv")]
+ [System.Text.Json.Serialization.JsonPropertyName("pay_gmv")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long PayGMV { get; set; }
+
+ ///
+ /// 获取或设置成交人数。
+ ///
+ [Newtonsoft.Json.JsonProperty("pay_uv")]
+ [System.Text.Json.Serialization.JsonPropertyName("pay_uv")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public int PayUV { get; set; }
+
+ ///
+ /// 获取或设置成交退款金额(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("pay_refund_gmv")]
+ [System.Text.Json.Serialization.JsonPropertyName("pay_refund_gmv")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long PayRefundGMV { get; set; }
+
+ ///
+ /// 获取或设置动销商品数。
+ ///
+ [Newtonsoft.Json.JsonProperty("pay_product_id_cnt")]
+ [System.Text.Json.Serialization.JsonPropertyName("pay_product_id_cnt")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public int PayProductCount { get; set; }
+
+ ///
+ /// 获取或设置退款金额(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("refund_gmv")]
+ [System.Text.Json.Serialization.JsonPropertyName("refund_gmv")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long RefundGMV { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置视频号 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("finder_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("finder_id")]
+ public string FinderId { get; set; } = default!;
+
+ ///
+ /// 获取或设置视频号昵称。
+ ///
+ [Newtonsoft.Json.JsonProperty("finder_nickname")]
+ [System.Text.Json.Serialization.JsonPropertyName("finder_nickname")]
+ public string FinderNickname { get; set; } = default!;
+
+ ///
+ /// 获取或设置统计数据。
+ ///
+ [Newtonsoft.Json.JsonProperty("data")]
+ [System.Text.Json.Serialization.JsonPropertyName("data")]
+ public Types.Data Data { get; set; } = default!;
+ }
+ }
+
+ ///
+ /// 获取或设置视频号列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("finder_list")]
+ [System.Text.Json.Serialization.JsonPropertyName("finder_list")]
+ public Types.Finder[] FinderList { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopFinderOverallGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopFinderOverallGetRequest.cs
new file mode 100644
index 00000000..8745ff19
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopFinderOverallGetRequest.cs
@@ -0,0 +1,15 @@
+namespace SKIT.FlurlHttpClient.Wechat.Api.Models
+{
+ ///
+ /// 表示 [POST] /channels/ec/compass/shop/finder/overall/get 接口的请求。
+ ///
+ public class ChannelsECCompassShopFinderOverallGetRequest : WechatApiRequest, IInferable
+ {
+ ///
+ /// 获取或设置日期字符串(格式:yyyyMMdd)。
+ ///
+ [Newtonsoft.Json.JsonProperty("ds")]
+ [System.Text.Json.Serialization.JsonPropertyName("ds")]
+ public string DateString { get; set; } = string.Empty;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopFinderOverallGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopFinderOverallGetResponse.cs
new file mode 100644
index 00000000..866bd802
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopFinderOverallGetResponse.cs
@@ -0,0 +1,53 @@
+namespace SKIT.FlurlHttpClient.Wechat.Api.Models
+{
+ ///
+ /// 表示 [POST] /channels/ec/compass/shop/finder/overall/get 接口的响应。
+ ///
+ public class ChannelsECCompassShopFinderOverallGetResponse : WechatApiResponse
+ {
+ public static class Types
+ {
+ public class Data
+ {
+ ///
+ /// 获取或设置成交金额(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("pay_gmv")]
+ [System.Text.Json.Serialization.JsonPropertyName("pay_gmv")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long PayGMV { get; set; }
+
+ ///
+ /// 获取或设置动销达人数。
+ ///
+ [Newtonsoft.Json.JsonProperty("pay_sales_finder_cnt")]
+ [System.Text.Json.Serialization.JsonPropertyName("pay_sales_finder_cnt")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long PaySalesFinderCount { get; set; }
+
+ ///
+ /// 获取或设置动销商品数。
+ ///
+ [Newtonsoft.Json.JsonProperty("pay_product_id_cnt")]
+ [System.Text.Json.Serialization.JsonPropertyName("pay_product_id_cnt")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public int PayProductCount { get; set; }
+
+ ///
+ /// 获取或设置点击成交转化率(单位:百分数)。
+ ///
+ [Newtonsoft.Json.JsonProperty("click_to_pay_uv_ratio")]
+ [System.Text.Json.Serialization.JsonPropertyName("click_to_pay_uv_ratio")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public decimal ClickToPayUVRatio { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置返回数据。
+ ///
+ [Newtonsoft.Json.JsonProperty("data")]
+ [System.Text.Json.Serialization.JsonPropertyName("data")]
+ public Types.Data Data { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopFinderProductListGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopFinderProductListGetRequest.cs
new file mode 100644
index 00000000..0334d05a
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopFinderProductListGetRequest.cs
@@ -0,0 +1,22 @@
+namespace SKIT.FlurlHttpClient.Wechat.Api.Models
+{
+ ///
+ /// 表示 [POST] /channels/ec/compass/shop/finder/product/list/get 接口的请求。
+ ///
+ public class ChannelsECCompassShopFinderProductListGetRequest : WechatApiRequest, IInferable
+ {
+ ///
+ /// 获取或设置视频号 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("finder_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("finder_id")]
+ public string FinderId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置日期字符串(格式:yyyyMMdd)。
+ ///
+ [Newtonsoft.Json.JsonProperty("ds")]
+ [System.Text.Json.Serialization.JsonPropertyName("ds")]
+ public string DateString { get; set; } = string.Empty;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopFinderProductListGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopFinderProductListGetResponse.cs
new file mode 100644
index 00000000..7fd4bbc4
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopFinderProductListGetResponse.cs
@@ -0,0 +1,104 @@
+namespace SKIT.FlurlHttpClient.Wechat.Api.Models
+{
+ ///
+ /// 表示 [POST] /channels/ec/compass/shop/finder/product/list/get 接口的响应。
+ ///
+ public class ChannelsECCompassShopFinderProductListGetResponse : WechatApiResponse
+ {
+ public static class Types
+ {
+ public class Product
+ {
+ public static class Types
+ {
+ public class Data
+ {
+ ///
+ /// 获取或设置成交金额(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("pay_gmv")]
+ [System.Text.Json.Serialization.JsonPropertyName("pay_gmv")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long PayGMV { get; set; }
+
+ ///
+ /// 获取或设置佣金率。
+ ///
+ [Newtonsoft.Json.JsonProperty("commission_ratio")]
+ [System.Text.Json.Serialization.JsonPropertyName("commission_ratio")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public decimal CommissionRatio { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置商品 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("product_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("product_id")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long ProductId { get; set; }
+
+ ///
+ /// 获取或设置商品标题。
+ ///
+ [Newtonsoft.Json.JsonProperty("title")]
+ [System.Text.Json.Serialization.JsonPropertyName("title")]
+ public string Title { get; set; } = default!;
+
+ ///
+ /// 获取或设置商品头图 URL。
+ ///
+ [Newtonsoft.Json.JsonProperty("head_img_url")]
+ [System.Text.Json.Serialization.JsonPropertyName("head_img_url")]
+ public string HeadImageUrl { get; set; } = default!;
+
+ ///
+ /// 获取或设置商品价格(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("price")]
+ [System.Text.Json.Serialization.JsonPropertyName("price")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public int Price { get; set; }
+
+ ///
+ /// 获取或设置一级分类 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("first_category_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("first_category_id")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long FirstCategoryId { get; set; }
+
+ ///
+ /// 获取或设置二级分类 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("second_category_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("second_category_id")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long SecondCategoryId { get; set; }
+
+ ///
+ /// 获取或设置三级分类 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("third_category_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("third_category_id")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long ThirdCategoryId { get; set; }
+
+ ///
+ /// 获取或设置统计数据。
+ ///
+ [Newtonsoft.Json.JsonProperty("data")]
+ [System.Text.Json.Serialization.JsonPropertyName("data")]
+ public Types.Data Data { get; set; } = default!;
+ }
+ }
+
+ ///
+ /// 获取或设置商品列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("product_list")]
+ [System.Text.Json.Serialization.JsonPropertyName("product_list")]
+ public Types.Product[] ProductList { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopFinderProductOverallGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopFinderProductOverallGetRequest.cs
new file mode 100644
index 00000000..fc915be5
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopFinderProductOverallGetRequest.cs
@@ -0,0 +1,22 @@
+namespace SKIT.FlurlHttpClient.Wechat.Api.Models
+{
+ ///
+ /// 表示 [POST] /channels/ec/compass/shop/finder/product/overall/get 接口的请求。
+ ///
+ public class ChannelsECCompassShopFinderProductOverallGetRequest : WechatApiRequest, IInferable
+ {
+ ///
+ /// 获取或设置视频号 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("finder_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("finder_id")]
+ public string FinderId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置日期字符串(格式:yyyyMMdd)。
+ ///
+ [Newtonsoft.Json.JsonProperty("ds")]
+ [System.Text.Json.Serialization.JsonPropertyName("ds")]
+ public string DateString { get; set; } = string.Empty;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopFinderProductOverallGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopFinderProductOverallGetResponse.cs
new file mode 100644
index 00000000..4967bc20
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopFinderProductOverallGetResponse.cs
@@ -0,0 +1,61 @@
+namespace SKIT.FlurlHttpClient.Wechat.Api.Models
+{
+ ///
+ /// 表示 [POST] /channels/ec/compass/shop/finder/product/overall/get 接口的响应。
+ ///
+ public class ChannelsECCompassShopFinderProductOverallGetResponse : WechatApiResponse
+ {
+ public static class Types
+ {
+ public class Data
+ {
+ ///
+ /// 获取或设置成交金额(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("pay_gmv")]
+ [System.Text.Json.Serialization.JsonPropertyName("pay_gmv")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long PayGMV { get; set; }
+
+ ///
+ /// 获取或设置成交人数。
+ ///
+ [Newtonsoft.Json.JsonProperty("pay_uv")]
+ [System.Text.Json.Serialization.JsonPropertyName("pay_uv")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public int PayUV { get; set; }
+
+ ///
+ /// 获取或设置动销商品数。
+ ///
+ [Newtonsoft.Json.JsonProperty("pay_product_id_cnt")]
+ [System.Text.Json.Serialization.JsonPropertyName("pay_product_id_cnt")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public int PayProductCount { get; set; }
+
+ ///
+ /// 获取或设置成交退款金额(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("pay_refund_gmv")]
+ [System.Text.Json.Serialization.JsonPropertyName("pay_refund_gmv")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long PayRefundGMV { get; set; }
+
+ ///
+ /// 获取或设置退款金额(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("refund_gmv")]
+ [System.Text.Json.Serialization.JsonPropertyName("refund_gmv")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long RefundGMV { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置返回数据。
+ ///
+ [Newtonsoft.Json.JsonProperty("data")]
+ [System.Text.Json.Serialization.JsonPropertyName("data")]
+ public Types.Data Data { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopLiveListGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopLiveListGetRequest.cs
new file mode 100644
index 00000000..68ddb438
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopLiveListGetRequest.cs
@@ -0,0 +1,22 @@
+namespace SKIT.FlurlHttpClient.Wechat.Api.Models
+{
+ ///
+ /// 表示 [POST] /channels/ec/compass/shop/live/list/get 接口的请求。
+ ///
+ public class ChannelsECCompassShopLiveListGetRequest : WechatApiRequest, IInferable
+ {
+ ///
+ /// 获取或设置视频号 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("finder_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("finder_id")]
+ public string FinderId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置日期字符串(格式:yyyyMMdd)。
+ ///
+ [Newtonsoft.Json.JsonProperty("ds")]
+ [System.Text.Json.Serialization.JsonPropertyName("ds")]
+ public string DateString { get; set; } = string.Empty;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopLiveListGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopLiveListGetResponse.cs
new file mode 100644
index 00000000..db1580d4
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopLiveListGetResponse.cs
@@ -0,0 +1,58 @@
+namespace SKIT.FlurlHttpClient.Wechat.Api.Models
+{
+ ///
+ /// 表示 [POST] /channels/ec/compass/shop/live/list/get 接口的响应。
+ ///
+ public class ChannelsECCompassShopLiveListGetResponse : WechatApiResponse
+ {
+ public static class Types
+ {
+ public class Live
+ {
+ ///
+ /// 获取或设置直播 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("live_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("live_id")]
+ public string LiveId { get; set; } = default!;
+
+ ///
+ /// 获取或设置直播标题。
+ ///
+ [Newtonsoft.Json.JsonProperty("live_title")]
+ [System.Text.Json.Serialization.JsonPropertyName("live_title")]
+ public string LiveTitle { get; set; } = default!;
+
+ ///
+ /// 获取或设置开播时间戳。
+ ///
+ [Newtonsoft.Json.JsonProperty("live_time")]
+ [System.Text.Json.Serialization.JsonPropertyName("live_time")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long LiveTimestamp { get; set; }
+
+ ///
+ /// 获取或设置直播时长(单位:秒)。
+ ///
+ [Newtonsoft.Json.JsonProperty("live_duration")]
+ [System.Text.Json.Serialization.JsonPropertyName("live_duration")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public int LiveDuration { get; set; }
+
+ ///
+ /// 获取或设置直播封面 URL。
+ ///
+ [Newtonsoft.Json.JsonProperty("live_cover_img_url")]
+ [System.Text.Json.Serialization.JsonPropertyName("live_cover_img_url")]
+ public string LiveCoverImageUrl { get; set; } = default!;
+ }
+ }
+
+ ///
+ /// 获取或设置直播列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("live_list")]
+ [System.Text.Json.Serialization.JsonPropertyName("live_list")]
+ public Types.Live[] LiveList { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopOverallGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopOverallGetRequest.cs
new file mode 100644
index 00000000..4fd326db
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopOverallGetRequest.cs
@@ -0,0 +1,15 @@
+namespace SKIT.FlurlHttpClient.Wechat.Api.Models
+{
+ ///
+ /// 表示 [POST] /channels/ec/compass/shop/overall/get 接口的请求。
+ ///
+ public class ChannelsECCompassShopOverallGetRequest : WechatApiRequest, IInferable
+ {
+ ///
+ /// 获取或设置日期字符串(格式:yyyyMMdd)。
+ ///
+ [Newtonsoft.Json.JsonProperty("ds")]
+ [System.Text.Json.Serialization.JsonPropertyName("ds")]
+ public string DateString { get; set; } = string.Empty;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopOverallGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopOverallGetResponse.cs
new file mode 100644
index 00000000..43c0f37a
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopOverallGetResponse.cs
@@ -0,0 +1,69 @@
+namespace SKIT.FlurlHttpClient.Wechat.Api.Models
+{
+ ///
+ /// 表示 [POST] /channels/ec/compass/shop/overall/get 接口的响应。
+ ///
+ public class ChannelsECCompassShopOverallGetResponse : WechatApiResponse
+ {
+ public static class Types
+ {
+ public class Data
+ {
+ ///
+ /// 获取或设置成交金额(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("pay_gmv")]
+ [System.Text.Json.Serialization.JsonPropertyName("pay_gmv")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long PayGMV { get; set; }
+
+ ///
+ /// 获取或设置成交人数。
+ ///
+ [Newtonsoft.Json.JsonProperty("pay_uv")]
+ [System.Text.Json.Serialization.JsonPropertyName("pay_uv")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public int PayUV { get; set; }
+
+ ///
+ /// 获取或设置成交退款金额(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("pay_refund_gmv")]
+ [System.Text.Json.Serialization.JsonPropertyName("pay_refund_gmv")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long PayRefundGMV { get; set; }
+
+ ///
+ /// 获取或设置成交订单数。
+ ///
+ [Newtonsoft.Json.JsonProperty("pay_order_cnt")]
+ [System.Text.Json.Serialization.JsonPropertyName("pay_order_cnt")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public int PayOrderCount { get; set; }
+
+ ///
+ /// 获取或设置直播成交金额(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("live_pay_gmv")]
+ [System.Text.Json.Serialization.JsonPropertyName("live_pay_gmv")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long LivePayGMV { get; set; }
+
+ ///
+ /// 获取或设置短视频成交金额(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("feed_pay_gmv")]
+ [System.Text.Json.Serialization.JsonPropertyName("feed_pay_gmv")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long FeedPayGMV { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置返回数据。
+ ///
+ [Newtonsoft.Json.JsonProperty("data")]
+ [System.Text.Json.Serialization.JsonPropertyName("data")]
+ public Types.Data Data { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopProductDataGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopProductDataGetRequest.cs
new file mode 100644
index 00000000..d06be381
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopProductDataGetRequest.cs
@@ -0,0 +1,22 @@
+namespace SKIT.FlurlHttpClient.Wechat.Api.Models
+{
+ ///
+ /// 表示 [POST] /channels/ec/compass/shop/product/data/get 接口的请求。
+ ///
+ public class ChannelsECCompassShopProductDataGetRequest : WechatApiRequest, IInferable
+ {
+ ///
+ /// 获取或设置商品 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("product_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("product_id")]
+ public long ProductId { get; set; }
+
+ ///
+ /// 获取或设置日期字符串(格式:yyyyMMdd)。
+ ///
+ [Newtonsoft.Json.JsonProperty("ds")]
+ [System.Text.Json.Serialization.JsonPropertyName("ds")]
+ public string DateString { get; set; } = string.Empty;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopProductDataGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopProductDataGetResponse.cs
new file mode 100644
index 00000000..c2efbcd9
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopProductDataGetResponse.cs
@@ -0,0 +1,22 @@
+namespace SKIT.FlurlHttpClient.Wechat.Api.Models
+{
+ ///
+ /// 表示 [POST] /channels/ec/compass/shop/product/data/get 接口的响应。
+ ///
+ public class ChannelsECCompassShopProductDataGetResponse : WechatApiResponse
+ {
+ public static class Types
+ {
+ public class Product : ChannelsECCompassShopProductListGetResponse.Types.Product
+ {
+ }
+ }
+
+ ///
+ /// 获取或设置商品信息。
+ ///
+ [Newtonsoft.Json.JsonProperty("product_info")]
+ [System.Text.Json.Serialization.JsonPropertyName("product_info")]
+ public Types.Product Product { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopProductListGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopProductListGetRequest.cs
new file mode 100644
index 00000000..f9fbd64e
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopProductListGetRequest.cs
@@ -0,0 +1,15 @@
+namespace SKIT.FlurlHttpClient.Wechat.Api.Models
+{
+ ///
+ /// 表示 [POST] /channels/ec/compass/shop/product/list/get 接口的请求。
+ ///
+ public class ChannelsECCompassShopProductListGetRequest : WechatApiRequest, IInferable
+ {
+ ///
+ /// 获取或设置日期字符串(格式:yyyyMMdd)。
+ ///
+ [Newtonsoft.Json.JsonProperty("ds")]
+ [System.Text.Json.Serialization.JsonPropertyName("ds")]
+ public string DateString { get; set; } = string.Empty;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopProductListGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopProductListGetResponse.cs
new file mode 100644
index 00000000..889bda93
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopProductListGetResponse.cs
@@ -0,0 +1,336 @@
+namespace SKIT.FlurlHttpClient.Wechat.Api.Models
+{
+ ///
+ /// 表示 [POST] /channels/ec/compass/shop/product/list/get 接口的响应。
+ ///
+ public class ChannelsECCompassShopProductListGetResponse : WechatApiResponse
+ {
+ public static class Types
+ {
+ public class Product
+ {
+ public static class Types
+ {
+ public class Data
+ {
+ ///
+ /// 获取或设置下单金额(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("create_gmv")]
+ [System.Text.Json.Serialization.JsonPropertyName("create_gmv")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long CreateGMV { get; set; }
+
+ ///
+ /// 获取或设置下单订单数。
+ ///
+ [Newtonsoft.Json.JsonProperty("create_cnt")]
+ [System.Text.Json.Serialization.JsonPropertyName("create_cnt")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public int CreateCount { get; set; }
+
+ ///
+ /// 获取或设置下单人数。
+ ///
+ [Newtonsoft.Json.JsonProperty("create_uv")]
+ [System.Text.Json.Serialization.JsonPropertyName("create_uv")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public int CreateUV { get; set; }
+
+ ///
+ /// 获取或设置下单件数。
+ ///
+ [Newtonsoft.Json.JsonProperty("create_product_cnt")]
+ [System.Text.Json.Serialization.JsonPropertyName("create_product_cnt")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public int CreateProductCount { get; set; }
+
+ ///
+ /// 获取或设置成交金额(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("pay_gmv")]
+ [System.Text.Json.Serialization.JsonPropertyName("pay_gmv")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long PayGMV { get; set; }
+
+ ///
+ /// 获取或设置成交订单数。
+ ///
+ [Newtonsoft.Json.JsonProperty("pay_cnt")]
+ [System.Text.Json.Serialization.JsonPropertyName("pay_cnt")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public int PayCount { get; set; }
+
+ ///
+ /// 获取或设置成交人数。
+ ///
+ [Newtonsoft.Json.JsonProperty("pay_uv")]
+ [System.Text.Json.Serialization.JsonPropertyName("pay_uv")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public int PayUV { get; set; }
+
+ ///
+ /// 获取或设置成交件数。
+ ///
+ [Newtonsoft.Json.JsonProperty("pay_product_cnt")]
+ [System.Text.Json.Serialization.JsonPropertyName("pay_product_cnt")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public int PayProductCount { get; set; }
+
+ ///
+ /// 获取或设置净成交金额(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("pure_pay_gmv")]
+ [System.Text.Json.Serialization.JsonPropertyName("pure_pay_gmv")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long PurePayGMV { get; set; }
+
+ ///
+ /// 获取或设置净成交客单价(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("pay_gmv_per_uv")]
+ [System.Text.Json.Serialization.JsonPropertyName("pay_gmv_per_uv")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long PurePayGMVPerUV { get; set; }
+
+ ///
+ /// 获取或设置成交退款金额(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("pay_refund_gmv")]
+ [System.Text.Json.Serialization.JsonPropertyName("pay_refund_gmv")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long PayRefundGMV { get; set; }
+
+ ///
+ /// 获取或设置成交退款人数。
+ ///
+ [Newtonsoft.Json.JsonProperty("pay_refund_uv")]
+ [System.Text.Json.Serialization.JsonPropertyName("pay_refund_uv")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public int PayRefundUV { get; set; }
+
+ ///
+ /// 获取或设置成交退款率(单位:百分数)。
+ ///
+ [Newtonsoft.Json.JsonProperty("pay_refund_ratio")]
+ [System.Text.Json.Serialization.JsonPropertyName("pay_refund_ratio")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public decimal PayRefundRatio { get; set; }
+
+ ///
+ /// 获取或设置发货后成交退款率(单位:百分数)。
+ ///
+ [Newtonsoft.Json.JsonProperty("pay_refund_after_send_ratio")]
+ [System.Text.Json.Serialization.JsonPropertyName("pay_refund_after_send_ratio")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public decimal PayRefundAfterSendRatio { get; set; }
+
+ ///
+ /// 获取或设置成交退款订单数。
+ ///
+ [Newtonsoft.Json.JsonProperty("pay_refund_cnt")]
+ [System.Text.Json.Serialization.JsonPropertyName("pay_refund_cnt")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public int PayRefundCount { get; set; }
+
+ ///
+ /// 获取或设置成交退款件数。
+ ///
+ [Newtonsoft.Json.JsonProperty("pay_refund_product_cnt")]
+ [System.Text.Json.Serialization.JsonPropertyName("pay_refund_product_cnt")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public int PayRefundProductCount { get; set; }
+
+ ///
+ /// 获取或设置发货前成交退款率(单位:百分数)。
+ ///
+ [Newtonsoft.Json.JsonProperty("pay_refund_before_send_ratio")]
+ [System.Text.Json.Serialization.JsonPropertyName("pay_refund_before_send_ratio")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public decimal PayRefundBeforeSendRatio { get; set; }
+
+ ///
+ /// 获取或设置退款金额(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("refund_gmv")]
+ [System.Text.Json.Serialization.JsonPropertyName("refund_gmv")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long RefundGMV { get; set; }
+
+ ///
+ /// 获取或设置退款人数。
+ ///
+ [Newtonsoft.Json.JsonProperty("refund_uv")]
+ [System.Text.Json.Serialization.JsonPropertyName("refund_uv")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public int RefundUV { get; set; }
+
+ ///
+ /// 获取或设置退款订单数。
+ ///
+ [Newtonsoft.Json.JsonProperty("refund_cnt")]
+ [System.Text.Json.Serialization.JsonPropertyName("refund_cnt")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public int RefundCount { get; set; }
+
+ ///
+ /// 获取或设置退款件数。
+ ///
+ [Newtonsoft.Json.JsonProperty("refund_product_cnt")]
+ [System.Text.Json.Serialization.JsonPropertyName("refund_product_cnt")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public int RefundProductCount { get; set; }
+
+ ///
+ /// 获取或设置商品点击人数。
+ ///
+ [Newtonsoft.Json.JsonProperty("product_click_uv")]
+ [System.Text.Json.Serialization.JsonPropertyName("product_click_uv")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public int ProductClickUV { get; set; }
+
+ ///
+ /// 获取或设置商品点击次数。
+ ///
+ [Newtonsoft.Json.JsonProperty("product_click_cnt")]
+ [System.Text.Json.Serialization.JsonPropertyName("product_click_cnt")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public int ProductClickCount { get; set; }
+
+ ///
+ /// 获取或设置实际结算金额(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("seller_actual_settle_amount")]
+ [System.Text.Json.Serialization.JsonPropertyName("seller_actual_settle_amount")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long SellerActualSettleAmount { get; set; }
+
+ ///
+ /// 获取或设置实际服务费金额(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("platform_actual_commission")]
+ [System.Text.Json.Serialization.JsonPropertyName("platform_actual_commission")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long PlatformActualCommission { get; set; }
+
+ ///
+ /// 获取或设置实际达人佣金支出(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("finderuin_actual_commission")]
+ [System.Text.Json.Serialization.JsonPropertyName("finderuin_actual_commission")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long FinderActualCommission { get; set; }
+
+ ///
+ /// 获取或设置实际团长佣金支出(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("captain_actual_commission")]
+ [System.Text.Json.Serialization.JsonPropertyName("captain_actual_commission")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long CaptainActualCommission { get; set; }
+
+ ///
+ /// 获取或设置预估结算金额(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("seller_predict_settle_amount")]
+ [System.Text.Json.Serialization.JsonPropertyName("seller_predict_settle_amount")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long SellerPredictSettleAmount { get; set; }
+
+ ///
+ /// 获取或设置预估服务费金额(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("platform_predict_commission")]
+ [System.Text.Json.Serialization.JsonPropertyName("platform_predict_commission")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long PlatformPredictCommission { get; set; }
+
+ ///
+ /// 获取或设置预估达人佣金支出(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("finderuin_predict_commission")]
+ [System.Text.Json.Serialization.JsonPropertyName("finderuin_predict_commission")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long FinderuinPredictCommission { get; set; }
+
+ ///
+ /// 获取或设置预估团长佣金支出(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("captain_predict_commission")]
+ [System.Text.Json.Serialization.JsonPropertyName("captain_predict_commission")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long CaptainPredictCommission { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置商品 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("product_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("product_id")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long ProductId { get; set; }
+
+ ///
+ /// 获取或设置商品标题。
+ ///
+ [Newtonsoft.Json.JsonProperty("title")]
+ [System.Text.Json.Serialization.JsonPropertyName("title")]
+ public string Title { get; set; } = default!;
+
+ ///
+ /// 获取或设置商品头图 URL。
+ ///
+ [Newtonsoft.Json.JsonProperty("head_img_url")]
+ [System.Text.Json.Serialization.JsonPropertyName("head_img_url")]
+ public string HeadImageUrl { get; set; } = default!;
+
+ ///
+ /// 获取或设置商品价格(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("price")]
+ [System.Text.Json.Serialization.JsonPropertyName("price")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public int Price { get; set; }
+
+ ///
+ /// 获取或设置一级分类 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("first_category_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("first_category_id")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long FirstCategoryId { get; set; }
+
+ ///
+ /// 获取或设置二级分类 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("second_category_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("second_category_id")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long SecondCategoryId { get; set; }
+
+ ///
+ /// 获取或设置三级分类 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("third_category_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("third_category_id")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long ThirdCategoryId { get; set; }
+
+ ///
+ /// 获取或设置统计数据。
+ ///
+ [Newtonsoft.Json.JsonProperty("data")]
+ [System.Text.Json.Serialization.JsonPropertyName("data")]
+ public Types.Data Data { get; set; } = default!;
+ }
+ }
+
+ ///
+ /// 获取或设置商品列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("product_list")]
+ [System.Text.Json.Serialization.JsonPropertyName("product_list")]
+ public Types.Product[] ProductList { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopSaleProfileDataGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopSaleProfileDataGetRequest.cs
new file mode 100644
index 00000000..fba6f9d4
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopSaleProfileDataGetRequest.cs
@@ -0,0 +1,22 @@
+namespace SKIT.FlurlHttpClient.Wechat.Api.Models
+{
+ ///
+ /// 表示 [POST] /channels/ec/compass/shop/sale/profile/data/get 接口的请求。
+ ///
+ public class ChannelsECCompassShopSaleProfileDataGetRequest : WechatApiRequest, IInferable
+ {
+ ///
+ /// 获取或设置用户类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("type")]
+ [System.Text.Json.Serialization.JsonPropertyName("type")]
+ public int Type { get; set; }
+
+ ///
+ /// 获取或设置日期字符串(格式:yyyyMMdd)。
+ ///
+ [Newtonsoft.Json.JsonProperty("ds")]
+ [System.Text.Json.Serialization.JsonPropertyName("ds")]
+ public string DateString { get; set; } = string.Empty;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopSaleProfileDataGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopSaleProfileDataGetResponse.cs
new file mode 100644
index 00000000..7a219bb0
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECCompass/ChannelsECCompassShopSaleProfileDataGetResponse.cs
@@ -0,0 +1,69 @@
+namespace SKIT.FlurlHttpClient.Wechat.Api.Models
+{
+ ///
+ /// 表示 [POST] /channels/ec/compass/shop/sale/profile/data/get 接口的响应。
+ ///
+ public class ChannelsECCompassShopSaleProfileDataGetResponse : WechatApiResponse
+ {
+ public static class Types
+ {
+ public class Data
+ {
+ public static class Types
+ {
+ public class Field
+ {
+ public static class Types
+ {
+ public class Dimension
+ {
+ ///
+ /// 获取或设置维度指标名。
+ ///
+ [Newtonsoft.Json.JsonProperty("dim_key")]
+ [System.Text.Json.Serialization.JsonPropertyName("dim_key")]
+ public string Key { get; set; } = default!;
+
+ ///
+ /// 获取或设置维度指标值。
+ ///
+ [Newtonsoft.Json.JsonProperty("dim_value")]
+ [System.Text.Json.Serialization.JsonPropertyName("dim_value")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public decimal Value { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置维度类别名。
+ ///
+ [Newtonsoft.Json.JsonProperty("field_name")]
+ [System.Text.Json.Serialization.JsonPropertyName("field_name")]
+ public string FieldName { get; set; } = default!;
+
+ ///
+ /// 获取或设置维度指标列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("data_list")]
+ [System.Text.Json.Serialization.JsonPropertyName("data_list")]
+ public Types.Dimension[] DimensionList { get; set; } = default!;
+ }
+ }
+
+ ///
+ /// 获取或设置维度类别列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("field_list")]
+ [System.Text.Json.Serialization.JsonPropertyName("field_list")]
+ public Types.Field[] FieldList { get; set; } = default!;
+ }
+ }
+
+ ///
+ /// 获取或设置返回数据。
+ ///
+ [Newtonsoft.Json.JsonProperty("data")]
+ [System.Text.Json.Serialization.JsonPropertyName("data")]
+ public Types.Data Data { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECProductLocalLife/ChannelsECProductLocalLifeGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECProductLocalLife/ChannelsECProductLocalLifeGetResponse.cs
index 6d538e28..7493b7a3 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECProductLocalLife/ChannelsECProductLocalLifeGetResponse.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECProductLocalLife/ChannelsECProductLocalLifeGetResponse.cs
@@ -15,20 +15,6 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
public class Qualification : ChannelsECProductGetResponse.Types.Product.Types.Qualification
{
- ///
- /// 获取或设置资质 ID。
- ///
- [Newtonsoft.Json.JsonProperty("qua_id")]
- [System.Text.Json.Serialization.JsonPropertyName("qua_id")]
- [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
- public long QualificationId { get; set; }
-
- ///
- /// 获取或设置资质图片 URL 列表。
- ///
- [Newtonsoft.Json.JsonProperty("qua_url")]
- [System.Text.Json.Serialization.JsonPropertyName("qua_url")]
- public string[] PictureUrlList { get; set; } = default!;
}
public class MiniProgramPage
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopFinderAuthorizationListGetResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopFinderAuthorizationListGetResponse.json
new file mode 100644
index 00000000..a4eec78c
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopFinderAuthorizationListGetResponse.json
@@ -0,0 +1,39 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "main_finder_id": "sph5PZrwdkeP5b9",
+ "authorized_finder_id_list": [
+ "sphHdmv44m7o7By",
+ "sphZcvmBmwlYQsk",
+ "sph3fRoGF796gWJ",
+ "sph8LA3rVb3Gopt",
+ "sphFNhwzQxdoNSG",
+ "sphygO5xLDz6bO3",
+ "sphFkQVLw32uaLu",
+ "sphdnVy6iaUfalM",
+ "spho5zWDBCq64s1",
+ "sphy1UPLuCZLmMg",
+ "sphnGggiUx2NPIy",
+ "sph314JvRkABCUD",
+ "sphQxLoWW6oatth",
+ "sph4NRTxJXSHEvw",
+ "sphIigpSEN0mDk0",
+ "sphANAlLHQUj2gw",
+ "sph60y5du5mH2eB",
+ "sphuaBLYM9Cmxfk",
+ "sphM65MzTm9P3PE",
+ "sphk10L8iTkmcEN",
+ "sphHlfnkRRPksWt",
+ "sphIuNhW7oPy4Li",
+ "sphdoKnbcfu7by8",
+ "sphMBRSGYdtVBXm",
+ "sphfGEwjl9ElT8Z",
+ "sphQlkK3JHGYJyI",
+ "spha76uI6KEzUCI",
+ "sphexpm7crM2PSP",
+ "sphJH3GbXgVn3nJ",
+ "sphCYiuJfqc5xm6",
+ "sphB6u8yhkxevgF",
+ "sphe4zMVlJrOw4A"
+ ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopFinderListGetRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopFinderListGetRequest.json
new file mode 100644
index 00000000..4751f548
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopFinderListGetRequest.json
@@ -0,0 +1,3 @@
+{
+ "ds": "20240520"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopFinderListGetResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopFinderListGetResponse.json
new file mode 100644
index 00000000..bfd2ff29
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopFinderListGetResponse.json
@@ -0,0 +1,39 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "finder_list": [
+ {
+ "finder_id": "sphIEqMmbCyGrjd",
+ "finder_nickname": "momqw123456",
+ "data": {
+ "pay_gmv": "1",
+ "pay_product_id_cnt": "1",
+ "pay_uv": "1",
+ "refund_gmv": "0",
+ "pay_refund_gmv": "0"
+ }
+ },
+ {
+ "finder_id": "sphAZh85q8DcOEx",
+ "finder_nickname": "小猫想养狸花小猫",
+ "data": {
+ "pay_gmv": "0",
+ "pay_product_id_cnt": "0",
+ "pay_uv": "0",
+ "refund_gmv": "0",
+ "pay_refund_gmv": "0"
+ }
+ },
+ {
+ "finder_id": "spho6H66NXuU3wT",
+ "finder_nickname": "人间贩卖打工人",
+ "data": {
+ "pay_gmv": "0",
+ "pay_product_id_cnt": "0",
+ "pay_uv": "0",
+ "refund_gmv": "0",
+ "pay_refund_gmv": "0"
+ }
+ }
+ ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopFinderOverallGetRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopFinderOverallGetRequest.json
new file mode 100644
index 00000000..4751f548
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopFinderOverallGetRequest.json
@@ -0,0 +1,3 @@
+{
+ "ds": "20240520"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopFinderOverallGetResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopFinderOverallGetResponse.json
new file mode 100644
index 00000000..7bbfc83e
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopFinderOverallGetResponse.json
@@ -0,0 +1,10 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "data": {
+ "pay_gmv": "0",
+ "pay_sales_finder_cnt": "0",
+ "pay_product_id_cnt": "0",
+ "click_to_pay_uv_ratio": 0.0
+ }
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopFinderProductListGetRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopFinderProductListGetRequest.json
new file mode 100644
index 00000000..ac4abc8b
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopFinderProductListGetRequest.json
@@ -0,0 +1,4 @@
+{
+ "ds": "20240520",
+ "finder_id": "sphIEqMmbCyGrjd"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopFinderProductListGetResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopFinderProductListGetResponse.json
new file mode 100644
index 00000000..e50173d3
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopFinderProductListGetResponse.json
@@ -0,0 +1,19 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "product_list": [
+ {
+ "product_id": "10000105888088",
+ "head_img_url": "https://store.mp.video.tencent-cloud.com/161/20304/snscosdownload/SZ/reserved/6618aeb0000bbf460ac33a13e568bc1e000000a000004f50?imageView2/1/w/800/h/800/q/50",
+ "title": "尺码-女装呢",
+ "price": "20000",
+ "first_category_id": "6033",
+ "second_category_id": "6057",
+ "third_category_id": "6058",
+ "data": {
+ "commission_ratio": 1.0,
+ "pay_gmv": "1"
+ }
+ }
+ ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopFinderProductOverallGetRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopFinderProductOverallGetRequest.json
new file mode 100644
index 00000000..ac4abc8b
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopFinderProductOverallGetRequest.json
@@ -0,0 +1,4 @@
+{
+ "ds": "20240520",
+ "finder_id": "sphIEqMmbCyGrjd"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopFinderProductOverallGetResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopFinderProductOverallGetResponse.json
new file mode 100644
index 00000000..882ec5b9
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopFinderProductOverallGetResponse.json
@@ -0,0 +1,11 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "data": {
+ "pay_gmv": "1",
+ "pay_product_id_cnt": "1",
+ "pay_uv": "1",
+ "refund_gmv": "0",
+ "pay_refund_gmv": "0"
+ }
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopLiveListGetRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopLiveListGetRequest.json
new file mode 100644
index 00000000..c3c91aae
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopLiveListGetRequest.json
@@ -0,0 +1,4 @@
+{
+ "ds": "20240520",
+ "finder_id": "sphCYiuJfqc5xm6"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopLiveListGetResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopLiveListGetResponse.json
new file mode 100644
index 00000000..d17956f0
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopLiveListGetResponse.json
@@ -0,0 +1,34 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "live_list": [
+ {
+ "live_id": "export/UzFfAgtgekIEAQAAAAAA7H0w5NglsgAAAAstQy6ubaLX4KHWvLEZgBPEkKEQAGAUFbyEzNPgMJr0ltCVZdoYnc3iKOwF3f-P",
+ "live_title": "",
+ "live_time": "1715411591",
+ "live_duration": "665",
+ "live_cover_img_url": "http://wxapp.tc.qq.com/251/20350/stodownload?m=34af50dc00cbf7b0f8f0cab3ba43ea54&filekey=30350201010421301f020200fb0402535a041034af50dc00cbf7b0f8f0cab3ba43ea5402030136f0040d00000004627466730000000132&hy=SZ&storeid=5657c127d000e07771a454a71000000fb00004f7e535a19f69bc1e6a3d6725&dotrans=0&bizid=1023"
+ },
+ {
+ "live_id": "export/UzFfAgtgekIEAQAAAAAAAkYHTK6vkAAAAAstQy6ubaLX4KHWvLEZgBPEsaEsWzNJC7yEzNPgMJqXNdVJbsXgEd2QUtC5OIeu",
+ "live_title": "",
+ "live_time": "1715412297",
+ "live_duration": "1625",
+ "live_cover_img_url": "http://wxapp.tc.qq.com/251/20350/stodownload?m=34af50dc00cbf7b0f8f0cab3ba43ea54&filekey=30350201010421301f020200fb0402535a041034af50dc00cbf7b0f8f0cab3ba43ea5402030136f0040d00000004627466730000000132&hy=SZ&storeid=5657c127d000e07771a454a71000000fb00004f7e535a19f69bc1e6a3d6725&dotrans=0&bizid=1023"
+ },
+ {
+ "live_id": "export/UzFfAgtgekIEAQAAAAAAk8Mwt7aD8AAAAAstQy6ubaLX4KHWvLEZgBPEu6F0VChZDryEzNPgMJqEDY5WqvniwQgbJOTVvWFg",
+ "live_title": "",
+ "live_time": "1715413937",
+ "live_duration": "434",
+ "live_cover_img_url": "http://wxapp.tc.qq.com/251/20350/stodownload?m=34af50dc00cbf7b0f8f0cab3ba43ea54&filekey=30350201010421301f020200fb0402535a041034af50dc00cbf7b0f8f0cab3ba43ea5402030136f0040d00000004627466730000000132&hy=SZ&storeid=5657c127d000e07771a454a71000000fb00004f7e535a19f69bc1e6a3d6725&dotrans=0&bizid=1023"
+ },
+ {
+ "live_id": "export/UzFfAgtgekIEAQAAAAAArlcp9BbHOAAAAAstQy6ubaLX4KHWvLEZgBPEiqEUeB1PD7yEzNPgMJqdjdg2bPmVps73BdBCsEqr",
+ "live_title": "",
+ "live_time": "1715414385",
+ "live_duration": "998",
+ "live_cover_img_url": "http://wxapp.tc.qq.com/251/20350/stodownload?m=34af50dc00cbf7b0f8f0cab3ba43ea54&filekey=30350201010421301f020200fb0402535a041034af50dc00cbf7b0f8f0cab3ba43ea5402030136f0040d00000004627466730000000132&hy=SZ&storeid=5657c127d000e07771a454a71000000fb00004f7e535a19f69bc1e6a3d6725&dotrans=0&bizid=1023"
+ }
+ ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopOverallGetRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopOverallGetRequest.json
new file mode 100644
index 00000000..4751f548
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopOverallGetRequest.json
@@ -0,0 +1,3 @@
+{
+ "ds": "20240520"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopOverallGetResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopOverallGetResponse.json
new file mode 100644
index 00000000..a019e4c6
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopOverallGetResponse.json
@@ -0,0 +1,12 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "data": {
+ "pay_gmv": "42292",
+ "pay_uv": "8",
+ "pay_order_cnt": "10",
+ "pay_refund_gmv": "81",
+ "live_pay_gmv": "0",
+ "feed_pay_gmv": "0"
+ }
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopProductDataGetRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopProductDataGetRequest.json
new file mode 100644
index 00000000..e6f737f0
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopProductDataGetRequest.json
@@ -0,0 +1,4 @@
+{
+ "ds": "20240520",
+ "product_id": "10000099582075"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopProductDataGetResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopProductDataGetResponse.json
new file mode 100644
index 00000000..001b6f24
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopProductDataGetResponse.json
@@ -0,0 +1,46 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "product_info": {
+ "product_id": "10000099582075",
+ "head_img_url": "https://store.mp.video.tencent-cloud.com/161/20304/snscosdownload/SZ/reserved/65f56a990000dbce19b08e5ade908e0b000000a000004f50?imageView2/1/w/800/h/800/q/50",
+ "title": "支持细分资质copy",
+ "price": "1",
+ "first_category_id": "1001",
+ "second_category_id": "1002",
+ "third_category_id": "1010",
+ "data": {
+ "pay_gmv": "6",
+ "create_gmv": "6",
+ "create_cnt": "3",
+ "create_uv": "3",
+ "create_product_cnt": "6",
+ "pay_cnt": "3",
+ "pay_uv": "3",
+ "pay_product_cnt": "6",
+ "pure_pay_gmv": "5",
+ "pay_gmv_per_uv": "2",
+ "seller_actual_settle_amount": "1",
+ "platform_actual_commission": "0",
+ "finderuin_actual_commission": "0",
+ "captain_actual_commission": "0",
+ "seller_predict_settle_amount": "1",
+ "platform_predict_commission": "0",
+ "finderuin_predict_commission": "0",
+ "captain_predict_commission": "0",
+ "product_click_uv": "0",
+ "product_click_cnt": "0",
+ "pay_refund_gmv": "1",
+ "pay_refund_uv": "1",
+ "pay_refund_ratio": 0.3333333333333333,
+ "pay_refund_after_send_ratio": 0.3333333333333333,
+ "pay_refund_cnt": "1",
+ "pay_refund_product_cnt": "1",
+ "pay_refund_before_send_ratio": 0.0,
+ "refund_gmv": "1",
+ "refund_product_cnt": "1",
+ "refund_cnt": "1",
+ "refund_uv": "1"
+ }
+ }
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopProductListGetRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopProductListGetRequest.json
new file mode 100644
index 00000000..4751f548
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopProductListGetRequest.json
@@ -0,0 +1,3 @@
+{
+ "ds": "20240520"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopProductListGetResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopProductListGetResponse.json
new file mode 100644
index 00000000..e60abe8c
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopProductListGetResponse.json
@@ -0,0 +1,216 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "product_list": [
+ {
+ "product_id": "10000054370820",
+ "head_img_url": "https://store.mp.video.tencent-cloud.com/161/20304/snscosdownload/SZ/reserved/64ad0d7000005f161ed22d3e51618809000000a000004f50?imageView2/1/w/800/h/800/q/50",
+ "title": "榴莲yyds",
+ "price": "1",
+ "first_category_id": "6625",
+ "second_category_id": "6631",
+ "third_category_id": "545264",
+ "data": {
+ "pay_gmv": "0",
+ "create_gmv": "0",
+ "create_cnt": "0",
+ "create_uv": "0",
+ "create_product_cnt": "0",
+ "pay_cnt": "0",
+ "pay_uv": "0",
+ "pay_product_cnt": "0",
+ "pure_pay_gmv": "0",
+ "pay_gmv_per_uv": "0",
+ "seller_actual_settle_amount": "1",
+ "platform_actual_commission": "0",
+ "finderuin_actual_commission": "0",
+ "captain_actual_commission": "0",
+ "seller_predict_settle_amount": "0",
+ "platform_predict_commission": "0",
+ "finderuin_predict_commission": "0",
+ "captain_predict_commission": "0",
+ "product_click_uv": "0",
+ "product_click_cnt": "0",
+ "pay_refund_gmv": "0",
+ "pay_refund_uv": "0",
+ "pay_refund_ratio": 0.0,
+ "pay_refund_after_send_ratio": 0.0,
+ "pay_refund_cnt": "0",
+ "pay_refund_product_cnt": "0",
+ "pay_refund_before_send_ratio": 0.0,
+ "refund_gmv": "0",
+ "refund_product_cnt": "0",
+ "refund_cnt": "0",
+ "refund_uv": "0"
+ }
+ },
+ {
+ "product_id": "10000056024001",
+ "head_img_url": "https://store.mp.video.tencent-cloud.com/161/20304/snscosdownload/SZ/reserved/64b6896f000c5282208dfa8953618809000000a000004f50?imageView2/1/w/800/h/800/q/50",
+ "title": "坏了包赔的多汁甜柚子20 斤整箱",
+ "price": "1",
+ "first_category_id": "6625",
+ "second_category_id": "6631",
+ "third_category_id": "6632",
+ "data": {
+ "pay_gmv": "0",
+ "create_gmv": "0",
+ "create_cnt": "0",
+ "create_uv": "0",
+ "create_product_cnt": "0",
+ "pay_cnt": "0",
+ "pay_uv": "0",
+ "pay_product_cnt": "0",
+ "pure_pay_gmv": "0",
+ "pay_gmv_per_uv": "0",
+ "seller_actual_settle_amount": "10",
+ "platform_actual_commission": "0",
+ "finderuin_actual_commission": "0",
+ "captain_actual_commission": "0",
+ "seller_predict_settle_amount": "0",
+ "platform_predict_commission": "0",
+ "finderuin_predict_commission": "0",
+ "captain_predict_commission": "0",
+ "product_click_uv": "0",
+ "product_click_cnt": "0",
+ "pay_refund_gmv": "0",
+ "pay_refund_uv": "0",
+ "pay_refund_ratio": 0.0,
+ "pay_refund_after_send_ratio": 0.0,
+ "pay_refund_cnt": "0",
+ "pay_refund_product_cnt": "0",
+ "pay_refund_before_send_ratio": 0.0,
+ "refund_gmv": "0",
+ "refund_product_cnt": "0",
+ "refund_cnt": "0",
+ "refund_uv": "0"
+ }
+ },
+ {
+ "product_id": "10000071952389",
+ "head_img_url": "https://store.mp.video.tencent-cloud.com/161/20304/snscosdownload/SZ/reserved/650d2feb00051b0a1846e7b41c918e0b000000a000004f50?imageView2/1/w/800/h/800/q/50",
+ "title": "生鲜-方便菜,开了坏损包退,没开7天无理由",
+ "price": "1",
+ "first_category_id": "6625",
+ "second_category_id": "527038",
+ "third_category_id": "527050",
+ "data": {
+ "pay_gmv": "6",
+ "create_gmv": "6",
+ "create_cnt": "5",
+ "create_uv": "4",
+ "create_product_cnt": "6",
+ "pay_cnt": "5",
+ "pay_uv": "4",
+ "pay_product_cnt": "6",
+ "pure_pay_gmv": "6",
+ "pay_gmv_per_uv": "2",
+ "seller_actual_settle_amount": "1",
+ "platform_actual_commission": "0",
+ "finderuin_actual_commission": "0",
+ "captain_actual_commission": "0",
+ "seller_predict_settle_amount": "5",
+ "platform_predict_commission": "0",
+ "finderuin_predict_commission": "0",
+ "captain_predict_commission": "0",
+ "product_click_uv": "0",
+ "product_click_cnt": "0",
+ "pay_refund_gmv": "0",
+ "pay_refund_uv": "0",
+ "pay_refund_ratio": 0.0,
+ "pay_refund_after_send_ratio": 0.0,
+ "pay_refund_cnt": "0",
+ "pay_refund_product_cnt": "0",
+ "pay_refund_before_send_ratio": 0.0,
+ "refund_gmv": "1",
+ "refund_product_cnt": "1",
+ "refund_cnt": "1",
+ "refund_uv": "1"
+ }
+ },
+ {
+ "product_id": "10000093045061",
+ "head_img_url": "https://store.mp.video.tencent-cloud.com/161/20304/snscosdownload/SH/reserved/6406a072000c0f04251624a2bd368e0b000000a100004f50?imageView2/1/w/800/h/800/q/50",
+ "title": "手提包-很多很多属性的商品for推广,请勿乱动",
+ "price": "1000",
+ "first_category_id": "6033",
+ "second_category_id": "6122",
+ "third_category_id": "6124",
+ "data": {
+ "pay_gmv": "0",
+ "create_gmv": "0",
+ "create_cnt": "0",
+ "create_uv": "0",
+ "create_product_cnt": "0",
+ "pay_cnt": "0",
+ "pay_uv": "0",
+ "pay_product_cnt": "0",
+ "pure_pay_gmv": "0",
+ "pay_gmv_per_uv": "0",
+ "seller_actual_settle_amount": "950",
+ "platform_actual_commission": "50",
+ "finderuin_actual_commission": "0",
+ "captain_actual_commission": "0",
+ "seller_predict_settle_amount": "0",
+ "platform_predict_commission": "0",
+ "finderuin_predict_commission": "0",
+ "captain_predict_commission": "0",
+ "product_click_uv": "0",
+ "product_click_cnt": "0",
+ "pay_refund_gmv": "0",
+ "pay_refund_uv": "0",
+ "pay_refund_ratio": 0.0,
+ "pay_refund_after_send_ratio": 0.0,
+ "pay_refund_cnt": "0",
+ "pay_refund_product_cnt": "0",
+ "pay_refund_before_send_ratio": 0.0,
+ "refund_gmv": "0",
+ "refund_product_cnt": "0",
+ "refund_cnt": "0",
+ "refund_uv": "0"
+ }
+ },
+ {
+ "product_id": "10000099582075",
+ "head_img_url": "https://store.mp.video.tencent-cloud.com/161/20304/snscosdownload/SZ/reserved/65f56a990000dbce19b08e5ade908e0b000000a000004f50?imageView2/1/w/800/h/800/q/50",
+ "title": "支持细分资质copy",
+ "price": "1",
+ "first_category_id": "1001",
+ "second_category_id": "1002",
+ "third_category_id": "1010",
+ "data": {
+ "pay_gmv": "6",
+ "create_gmv": "6",
+ "create_cnt": "3",
+ "create_uv": "3",
+ "create_product_cnt": "6",
+ "pay_cnt": "3",
+ "pay_uv": "3",
+ "pay_product_cnt": "6",
+ "pure_pay_gmv": "5",
+ "pay_gmv_per_uv": "2",
+ "seller_actual_settle_amount": "1",
+ "platform_actual_commission": "0",
+ "finderuin_actual_commission": "0",
+ "captain_actual_commission": "0",
+ "seller_predict_settle_amount": "1",
+ "platform_predict_commission": "0",
+ "finderuin_predict_commission": "0",
+ "captain_predict_commission": "0",
+ "product_click_uv": "0",
+ "product_click_cnt": "0",
+ "pay_refund_gmv": "1",
+ "pay_refund_uv": "1",
+ "pay_refund_ratio": 0.3333333333333333,
+ "pay_refund_after_send_ratio": 0.3333333333333333,
+ "pay_refund_cnt": "1",
+ "pay_refund_product_cnt": "1",
+ "pay_refund_before_send_ratio": 0.0,
+ "refund_gmv": "1",
+ "refund_product_cnt": "1",
+ "refund_cnt": "1",
+ "refund_uv": "1"
+ }
+ }
+ ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopSaleProfileDataGetRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopSaleProfileDataGetRequest.json
new file mode 100644
index 00000000..a5461af7
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopSaleProfileDataGetRequest.json
@@ -0,0 +1,4 @@
+{
+ "ds": "20240520",
+ "type": 1
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopSaleProfileDataGetResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopSaleProfileDataGetResponse.json
new file mode 100644
index 00000000..9cfa6209
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECCompass/ChannelsECCompassShopSaleProfileDataGetResponse.json
@@ -0,0 +1,76 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "data": {
+ "field_list": [
+ {
+ "field_name": "地级",
+ "data_list": []
+ },
+ {
+ "field_name": "年龄",
+ "data_list": [
+ {
+ "dim_key": "18_24",
+ "dim_value": "1"
+ },
+ {
+ "dim_key": "25_39",
+ "dim_value": "8"
+ }
+ ]
+ },
+ {
+ "field_name": "省级",
+ "data_list": []
+ },
+ {
+ "field_name": "性别",
+ "data_list": [
+ {
+ "dim_key": "女",
+ "dim_value": "2"
+ },
+ {
+ "dim_key": "男",
+ "dim_value": "7"
+ }
+ ]
+ },
+ {
+ "field_name": "购买偏好",
+ "data_list": []
+ },
+ {
+ "field_name": "策略人群",
+ "data_list": [
+ {
+ "dim_key": "资深中产",
+ "dim_value": "1"
+ },
+ {
+ "dim_key": "新锐白领",
+ "dim_value": "4"
+ },
+ {
+ "dim_key": "Z世代",
+ "dim_value": "1"
+ },
+ {
+ "dim_key": "都市蓝领",
+ "dim_value": "1"
+ }
+ ]
+ },
+ {
+ "field_name": "消费力区间",
+ "data_list": [
+ {
+ "dim_key": "0_100",
+ "dim_value": "11"
+ }
+ ]
+ }
+ ]
+ }
+}