diff --git a/docs/WechatTenpayV3/Advanced_ModelDefinition.md b/docs/WechatTenpayV3/Advanced_ModelDefinition.md
index 3f677259..f5e063fc 100644
--- a/docs/WechatTenpayV3/Advanced_ModelDefinition.md
+++ b/docs/WechatTenpayV3/Advanced_ModelDefinition.md
@@ -41,6 +41,7 @@
| √ | 营销工具:委托营销 | 直连商户 & 服务商 | |
| √ | 营销工具:消费卡 | 直连商户 & 服务商 | |
| √ | 营销工具:支付有礼 | 直连商户 & 服务商 | |
+| √ | 营销工具:代扣服务切卡组件 | 直连商户 & 服务商 | |
| √ | 营销工具:图片上传(营销专用) | 直连商户 & 服务商 | |
| × | 营销工具:现金红包 | 直连商户 & 服务商 | 官方未提供 v3 API |
| √ | 营销工具:银行定向促活 | 直连商户 & 服务商 | |
@@ -366,6 +367,10 @@
- 删除活动发券商户号:`DeleteMarketingPayGiftActivityMerchant`
+ - 代扣服务切卡组件
+
+ - 出行券切卡组件预下单:`CreateIndustryCouponToken`
+
- 图片上传(营销专用):`UploadMarketingMediaImage`
- 银行定向促活
@@ -922,6 +927,10 @@
- 删除活动发券商户号:`DeleteMarketingPayGiftActivityMerchant`
+ - 代扣服务切卡组件
+
+ - 出行券切卡组件预下单:`CreateIndustryCouponToken`
+
- 图片上传(营销专用):`UploadMarketingMediaImage`
- 资金应用
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteIndustryCouponExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteIndustryCouponExtensions.cs
new file mode 100644
index 00000000..00a3c57d
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteIndustryCouponExtensions.cs
@@ -0,0 +1,34 @@
+using System;
+using System.Net.Http;
+using System.Threading;
+using System.Threading.Tasks;
+using Flurl.Http;
+
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
+{
+ ///
+ /// 为 提供出行券相关的 API 扩展方法。
+ ///
+ public static class WechatTenpayClientExecuteIndustryCouponExtensions
+ {
+ ///
+ /// 异步调用 [POST] /industry-coupon/tokens 接口。
+ /// REF: https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter9_9_1.shtml
+ /// REF: https://pay.weixin.qq.com/wiki/doc/apiv3_partner/apis/chapter9_9_1.shtml
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCreateIndustryCouponTokenAsync(this WechatTenpayClient client, Models.CreateIndustryCouponTokenRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateRequest(request, HttpMethod.Post, "industry-coupon", "tokens");
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/IndustryCoupon/CreateIndustryCouponTokenRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/IndustryCoupon/CreateIndustryCouponTokenRequest.cs
new file mode 100644
index 00000000..98daaeeb
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/IndustryCoupon/CreateIndustryCouponTokenRequest.cs
@@ -0,0 +1,44 @@
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
+{
+ ///
+ /// 表示 [POST] /industry-coupon/tokens 接口的请求。
+ ///
+ public class CreateIndustryCouponTokenRequest : WechatTenpayRequest
+ {
+ public static class Types
+ {
+ public class Coupon
+ {
+ ///
+ /// 获取或设置批次号。
+ ///
+ [Newtonsoft.Json.JsonProperty("stock_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("stock_id")]
+ public int StockId { get; set; }
+
+ ///
+ /// 获取或设置券 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("coupon_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("coupon_id")]
+ public string CouponId { get; set; } = string.Empty;
+ }
+ }
+
+ ///
+ /// 获取或设置用户的 OpenId。
+ ///
+ [Newtonsoft.Json.JsonProperty("open_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("open_id")]
+ public string OpenId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置券列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("coupon_list")]
+ [System.Text.Json.Serialization.JsonPropertyName("coupon_list")]
+ public IList CouponList { get; set; } = new List();
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/IndustryCoupon/CreateIndustryCouponTokenResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/IndustryCoupon/CreateIndustryCouponTokenResponse.cs
new file mode 100644
index 00000000..2c92c522
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/IndustryCoupon/CreateIndustryCouponTokenResponse.cs
@@ -0,0 +1,27 @@
+using System;
+
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
+{
+ ///
+ /// 表示 [POST] /industry-coupon/tokens 接口的响应。
+ ///
+ [WechatTenpaySensitive]
+ public class CreateIndustryCouponTokenResponse : WechatTenpayResponse
+ {
+ ///
+ /// 获取或设置切卡组件 Token。
+ ///
+ [Newtonsoft.Json.JsonProperty("token")]
+ [System.Text.Json.Serialization.JsonPropertyName("token")]
+ public string Token { get; set; } = default!;
+
+ ///
+ /// 获取或设置 Token 过期时间。
+ ///
+ [Newtonsoft.Json.JsonProperty("expires_time")]
+ [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RFC3339DateTimeOffsetConverter))]
+ [System.Text.Json.Serialization.JsonPropertyName("expires_time")]
+ [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RFC3339DateTimeOffsetConverter))]
+ public DateTimeOffset ExpireTime { get; set; }
+ }
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/IndustryCoupon/CreateIndustryCouponTokenRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/IndustryCoupon/CreateIndustryCouponTokenRequest.json
new file mode 100644
index 00000000..da97c0a7
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/IndustryCoupon/CreateIndustryCouponTokenRequest.json
@@ -0,0 +1,9 @@
+{
+ "coupon_list": [
+ {
+ "coupon_id": "11004999626",
+ "stock_id": 16474341
+ }
+ ],
+ "open_id": "obLatjrR8kUDlj4-nofQsPAJAAFI"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/IndustryCoupon/CreateIndustryCouponTokenResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/IndustryCoupon/CreateIndustryCouponTokenResponse.json
new file mode 100644
index 00000000..7cdc164c
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/IndustryCoupon/CreateIndustryCouponTokenResponse.json
@@ -0,0 +1,4 @@
+{
+ "expires_time": "2015-05-20T13:29:35+08:00",
+ "token": "16824f40-aec1-11e8-a69c-f7a44da04f19"
+}