diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECAftersaleUpdateEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECAftersaleUpdateEvent.cs
index 18d394a6..86847c3c 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECAftersaleUpdateEvent.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECAftersaleUpdateEvent.cs
@@ -4,7 +4,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Events
/// 表示 EVENT.channels_ec_aftersale_update 事件的数据。
///
/// REF:
- ///
+ ///
///
///
///
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs
index 1f9c9d1f..4a9218b6 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs
@@ -704,6 +704,77 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
#endregion
+
+ #region ECBasics/Shop
+ ///
+ /// 异步调用 [POST] /channels/ec/basics/shop/h5url/get 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteChannelsECBasicsShopH5UrlGetAsync(this WechatApiClient client, Models.ChannelsECBasicsShopH5UrlGetRequest 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", "basics", "shop", "h5url", "get")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+
+ ///
+ /// 异步调用 [POST] /channels/ec/basics/shop/taglink/get 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteChannelsECBasicsShopTagLinkGetAsync(this WechatApiClient client, Models.ChannelsECBasicsShopTagLinkGetRequest 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", "basics", "shop", "taglink", "get")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+
+ ///
+ /// 异步调用 [POST] /channels/ec/basics/shop/qrcode/get 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteChannelsECBasicsShopQrcodeGetAsync(this WechatApiClient client, Models.ChannelsECBasicsShopQrcodeGetRequest 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", "basics", "shop", "qrcode", "get")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+ #endregion
#endregion
#region ECBrand
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECBasics/Shop/ChannelsECBasicsShopH5UrlGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECBasics/Shop/ChannelsECBasicsShopH5UrlGetRequest.cs
new file mode 100644
index 00000000..289e6663
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECBasics/Shop/ChannelsECBasicsShopH5UrlGetRequest.cs
@@ -0,0 +1,29 @@
+namespace SKIT.FlurlHttpClient.Wechat.Api.Models
+{
+ ///
+ /// 表示 [POST] /channels/ec/basics/shop/h5url/get 接口的请求。
+ ///
+ public class ChannelsECBasicsShopH5UrlGetRequest : WechatApiRequest, IInferable
+ {
+ ///
+ /// 获取或设置商品 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("product_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("product_id")]
+ public long ProductId { get; set; }
+
+ ///
+ /// 获取或设置企业微信 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("wecom_corp_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("wecom_corp_id")]
+ public string? WecomCorpId { get; set; }
+
+ ///
+ /// 获取或设置企业微信账号 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("wecom_user_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("wecom_user_id")]
+ public string? WecomUserId { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECBasics/Shop/ChannelsECBasicsShopH5UrlGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECBasics/Shop/ChannelsECBasicsShopH5UrlGetResponse.cs
new file mode 100644
index 00000000..ac7d5172
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECBasics/Shop/ChannelsECBasicsShopH5UrlGetResponse.cs
@@ -0,0 +1,15 @@
+namespace SKIT.FlurlHttpClient.Wechat.Api.Models
+{
+ ///
+ /// 表示 [POST] /channels/ec/basics/shop/h5url/get 接口的响应。
+ ///
+ public class ChannelsECBasicsShopH5UrlGetResponse : WechatApiResponse
+ {
+ ///
+ /// 获取或设置店铺 H5 短链。
+ ///
+ [Newtonsoft.Json.JsonProperty("shop_h5url")]
+ [System.Text.Json.Serialization.JsonPropertyName("shop_h5url")]
+ public string ShopH5Url { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECBasics/Shop/ChannelsECBasicsShopQrcodeGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECBasics/Shop/ChannelsECBasicsShopQrcodeGetRequest.cs
new file mode 100644
index 00000000..73fb3e3a
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECBasics/Shop/ChannelsECBasicsShopQrcodeGetRequest.cs
@@ -0,0 +1,29 @@
+namespace SKIT.FlurlHttpClient.Wechat.Api.Models
+{
+ ///
+ /// 表示 [POST] /channels/ec/basics/shop/qrcode/get 接口的请求。
+ ///
+ public class ChannelsECBasicsShopQrcodeGetRequest : WechatApiRequest, IInferable
+ {
+ ///
+ /// 获取或设置二维码类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("qrcode_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("qrcode_type")]
+ public int QrcodeType { get; set; }
+
+ ///
+ /// 获取或设置企业微信 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("wecom_corp_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("wecom_corp_id")]
+ public string? WecomCorpId { get; set; }
+
+ ///
+ /// 获取或设置企业微信账号 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("wecom_user_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("wecom_user_id")]
+ public string? WecomUserId { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECBasics/Shop/ChannelsECBasicsShopQrcodeGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECBasics/Shop/ChannelsECBasicsShopQrcodeGetResponse.cs
new file mode 100644
index 00000000..f87e2edf
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECBasics/Shop/ChannelsECBasicsShopQrcodeGetResponse.cs
@@ -0,0 +1,15 @@
+namespace SKIT.FlurlHttpClient.Wechat.Api.Models
+{
+ ///
+ /// 表示 [POST] /channels/ec/basics/shop/qrcode/get 接口的响应。
+ ///
+ public class ChannelsECBasicsShopQrcodeGetResponse : WechatApiResponse
+ {
+ ///
+ /// 获取或设置店铺二维码链接。
+ ///
+ [Newtonsoft.Json.JsonProperty("shop_qrcode")]
+ [System.Text.Json.Serialization.JsonPropertyName("shop_qrcode")]
+ public string ShopQrcode { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECBasics/Shop/ChannelsECBasicsShopTagLinkGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECBasics/Shop/ChannelsECBasicsShopTagLinkGetRequest.cs
new file mode 100644
index 00000000..37b6f465
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECBasics/Shop/ChannelsECBasicsShopTagLinkGetRequest.cs
@@ -0,0 +1,22 @@
+namespace SKIT.FlurlHttpClient.Wechat.Api.Models
+{
+ ///
+ /// 表示 [POST] /channels/ec/basics/shop/taglink/get 接口的请求。
+ ///
+ public class ChannelsECBasicsShopTagLinkGetRequest : WechatApiRequest, IInferable
+ {
+ ///
+ /// 获取或设置企业微信 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("wecom_corp_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("wecom_corp_id")]
+ public string? WecomCorpId { get; set; }
+
+ ///
+ /// 获取或设置企业微信账号 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("wecom_user_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("wecom_user_id")]
+ public string? WecomUserId { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECBasics/Shop/ChannelsECBasicsShopTagLinkGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECBasics/Shop/ChannelsECBasicsShopTagLinkGetResponse.cs
new file mode 100644
index 00000000..2f204a8e
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECBasics/Shop/ChannelsECBasicsShopTagLinkGetResponse.cs
@@ -0,0 +1,15 @@
+namespace SKIT.FlurlHttpClient.Wechat.Api.Models
+{
+ ///
+ /// 表示 [POST] /channels/ec/basics/shop/taglink/get 接口的响应。
+ ///
+ public class ChannelsECBasicsShopTagLinkGetResponse : WechatApiResponse
+ {
+ ///
+ /// 获取或设置店铺微信口令。
+ ///
+ [Newtonsoft.Json.JsonProperty("shop_taglink")]
+ [System.Text.Json.Serialization.JsonPropertyName("shop_taglink")]
+ public string ShopTagLink { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECProduct/ChannelsECProductH5UrlGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECProduct/ChannelsECProductH5UrlGetRequest.cs
index c530cf24..6d45f0e0 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECProduct/ChannelsECProductH5UrlGetRequest.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECProduct/ChannelsECProductH5UrlGetRequest.cs
@@ -11,5 +11,19 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
[Newtonsoft.Json.JsonProperty("product_id")]
[System.Text.Json.Serialization.JsonPropertyName("product_id")]
public long ProductId { get; set; }
+
+ ///
+ /// 获取或设置企业微信 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("wecom_corp_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("wecom_corp_id")]
+ public string? WecomCorpId { get; set; }
+
+ ///
+ /// 获取或设置企业微信账号 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("wecom_user_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("wecom_user_id")]
+ public string? WecomUserId { get; set; }
}
}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECProduct/ChannelsECProductQrcodeGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECProduct/ChannelsECProductQrcodeGetRequest.cs
index 4f0266eb..8d9252ca 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECProduct/ChannelsECProductQrcodeGetRequest.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECProduct/ChannelsECProductQrcodeGetRequest.cs
@@ -11,5 +11,19 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
[Newtonsoft.Json.JsonProperty("product_id")]
[System.Text.Json.Serialization.JsonPropertyName("product_id")]
public long ProductId { get; set; }
+
+ ///
+ /// 获取或设置企业微信 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("wecom_corp_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("wecom_corp_id")]
+ public string? WecomCorpId { get; set; }
+
+ ///
+ /// 获取或设置企业微信账号 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("wecom_user_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("wecom_user_id")]
+ public string? WecomUserId { get; set; }
}
}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECProduct/ChannelsECProductSchemeGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECProduct/ChannelsECProductSchemeGetResponse.cs
index b18a781d..50ced3a5 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECProduct/ChannelsECProductSchemeGetResponse.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECProduct/ChannelsECProductSchemeGetResponse.cs
@@ -10,6 +10,6 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
///
[Newtonsoft.Json.JsonProperty("openlink")]
[System.Text.Json.Serialization.JsonPropertyName("openlink")]
- public string OpenLink { get; set; } = default!;
+ public string ProductScheme { get; set; } = default!;
}
}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECProduct/ChannelsECProductTagLinkGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECProduct/ChannelsECProductTagLinkGetRequest.cs
index 17283448..fd134bc8 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECProduct/ChannelsECProductTagLinkGetRequest.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECProduct/ChannelsECProductTagLinkGetRequest.cs
@@ -11,5 +11,19 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
[Newtonsoft.Json.JsonProperty("product_id")]
[System.Text.Json.Serialization.JsonPropertyName("product_id")]
public long ProductId { get; set; }
+
+ ///
+ /// 获取或设置企业微信 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("wecom_corp_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("wecom_corp_id")]
+ public string? WecomCorpId { get; set; }
+
+ ///
+ /// 获取或设置企业微信账号 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("wecom_user_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("wecom_user_id")]
+ public string? WecomUserId { get; set; }
}
}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECBasics/Shop/ChannelsECBasicsShopH5UrlGetRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECBasics/Shop/ChannelsECBasicsShopH5UrlGetRequest.json
new file mode 100644
index 00000000..f6b9a080
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECBasics/Shop/ChannelsECBasicsShopH5UrlGetRequest.json
@@ -0,0 +1,4 @@
+{
+ "wecom_corp_id": "wpxxxxxxxx",
+ "wecom_user_id": "woxxxxxxxx"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECBasics/Shop/ChannelsECBasicsShopH5UrlGetResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECBasics/Shop/ChannelsECBasicsShopH5UrlGetResponse.json
new file mode 100644
index 00000000..bf0dd9c5
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECBasics/Shop/ChannelsECBasicsShopH5UrlGetResponse.json
@@ -0,0 +1,5 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "shop_h5url": "https://channels.weixin.qq.com/shop/b/xsgVVZtSGpqwd45"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECBasics/Shop/ChannelsECBasicsShopQrcodeGetRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECBasics/Shop/ChannelsECBasicsShopQrcodeGetRequest.json
new file mode 100644
index 00000000..f6b9a080
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECBasics/Shop/ChannelsECBasicsShopQrcodeGetRequest.json
@@ -0,0 +1,4 @@
+{
+ "wecom_corp_id": "wpxxxxxxxx",
+ "wecom_user_id": "woxxxxxxxx"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECBasics/Shop/ChannelsECBasicsShopQrcodeGetResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECBasics/Shop/ChannelsECBasicsShopQrcodeGetResponse.json
new file mode 100644
index 00000000..b7f98b83
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECBasics/Shop/ChannelsECBasicsShopQrcodeGetResponse.json
@@ -0,0 +1,5 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "shop_qrcode": "https://res.wx.qq.com/shop/material/shop/xxxxxxxxxxxxxxxxxxxxxxxxxx.png"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECBasics/Shop/ChannelsECBasicsShopTagLinkGetRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECBasics/Shop/ChannelsECBasicsShopTagLinkGetRequest.json
new file mode 100644
index 00000000..f6b9a080
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECBasics/Shop/ChannelsECBasicsShopTagLinkGetRequest.json
@@ -0,0 +1,4 @@
+{
+ "wecom_corp_id": "wpxxxxxxxx",
+ "wecom_user_id": "woxxxxxxxx"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECBasics/Shop/ChannelsECBasicsShopTagLinkGetResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECBasics/Shop/ChannelsECBasicsShopTagLinkGetResponse.json
new file mode 100644
index 00000000..6ab40fe7
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECBasics/Shop/ChannelsECBasicsShopTagLinkGetResponse.json
@@ -0,0 +1,5 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "shop_taglink": "#微信小店://微信小店/qwrwqtwqgqwwweq"
+}