diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMerchantSettlementExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMerchantSettlementExtensions.cs
new file mode 100644
index 00000000..26a82295
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMerchantSettlementExtensions.cs
@@ -0,0 +1,52 @@
+using System;
+using System.Net.Http;
+using System.Threading;
+using System.Threading.Tasks;
+using Flurl.Http;
+
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
+{
+ ///
+ /// 为 提供从业机构特约商户结算规则 ID 管理相关的 API 扩展方法。
+ ///
+ public static class WechatTenpayClientExecuteMerchantSettlementExtensions
+ {
+ ///
+ /// 异步调用 [POST] /merchant-settlement/merchant-settle-rule-applications 接口。
+ /// REF: https://pay.weixin.qq.com/wiki/doc/apiv3_partner/Offline/apis/chapter3_1_1.shtml
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCreateMerchantSettlementSettleRuleApplymentAsync(this WechatTenpayClient client, Models.CreateMerchantSettlementSettleRuleApplymentRequest 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, "merchant-settlement", "merchant-settle-rule-applications");
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [GET] /merchant-settlement/merchant-settle-rule-applications/{application_id} 接口。
+ /// REF: https://pay.weixin.qq.com/wiki/doc/apiv3_partner/Offline/apis/chapter3_1_2.shtml
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteGetMerchantSettlementSettleRuleApplicationByApplymentIdAsync(this WechatTenpayClient client, Models.GetMerchantSettlementSettleRuleApplicationByApplymentIdRequest 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.Get, "merchant-settlement", "merchant-settle-rule-applications", request.ApplymentId);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/Apply4Subject/GetApplyForSubjectApplymentByBusinessCodeResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/Apply4Subject/GetApplyForSubjectApplymentByBusinessCodeResponse.cs
index d976a43e..07a5c42b 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/Apply4Subject/GetApplyForSubjectApplymentByBusinessCodeResponse.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/Apply4Subject/GetApplyForSubjectApplymentByBusinessCodeResponse.cs
@@ -1,4 +1,4 @@
-namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
///
/// 表示 [GET] /apply4subject/applyment 接口的响应。
@@ -13,11 +13,11 @@
public string ApplymentState { get; set; } = default!;
///
- /// 获取或设置小程序码图片数据(经 Base64 编码)。
+ /// 获取或设置经 Base64 编码的小程序码图片数据。
///
[Newtonsoft.Json.JsonProperty("qrcode_data")]
[System.Text.Json.Serialization.JsonPropertyName("qrcode_data")]
- public string? QrcodeData { get; set; }
+ public string? EncodingQrcodeData { get; set; }
///
/// 获取或设置驳回参数。
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingBank/UploadMarketingBankPackagesTasksResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingBank/UploadMarketingBankPackagesTasksResponse.cs
index 0facc8c9..01bdc4e8 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingBank/UploadMarketingBankPackagesTasksResponse.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingBank/UploadMarketingBankPackagesTasksResponse.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
@@ -64,7 +64,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
public int? SuccessUserCount { get; set; }
///
- /// 获取或设置银行类型。
+ /// 获取或设置创建类型。
///
[Newtonsoft.Json.JsonProperty("create_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RFC3339DateTimeOffsetConverter))]
@@ -73,7 +73,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
public DateTimeOffset CreateTime { get; set; }
///
- /// 获取或设置银行类型。
+ /// 获取或设置最后更新类型。
///
[Newtonsoft.Json.JsonProperty("update_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RFC3339NullableDateTimeOffsetConverter))]
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingSettlement/CreateMerchantSettlementSettleRuleApplymentRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingSettlement/CreateMerchantSettlementSettleRuleApplymentRequest.cs
new file mode 100644
index 00000000..d63e295a
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingSettlement/CreateMerchantSettlementSettleRuleApplymentRequest.cs
@@ -0,0 +1,36 @@
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
+{
+ ///
+ /// 表示 [POST] /merchant-settlement/merchant-settle-rule-applications 接口的请求。
+ ///
+ public class CreateMerchantSettlementSettleRuleApplymentRequest : WechatTenpayRequest
+ {
+ ///
+ /// 获取或设置从业机构号。
+ ///
+ [Newtonsoft.Json.JsonProperty("acquiring_bank_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("acquiring_bank_id")]
+ public string AcquiringBankId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置特约商户号。
+ ///
+ [Newtonsoft.Json.JsonProperty("sub_mchid")]
+ [System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
+ public string SubMerchantId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置渠道商户号。
+ ///
+ [Newtonsoft.Json.JsonProperty("channel_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("channel_id")]
+ public string ChannelId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置结算规则 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("settle_rule_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("settle_rule_id")]
+ public int SettleRuleId { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingSettlement/CreateMerchantSettlementSettleRuleApplymentResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingSettlement/CreateMerchantSettlementSettleRuleApplymentResponse.cs
new file mode 100644
index 00000000..d8863132
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingSettlement/CreateMerchantSettlementSettleRuleApplymentResponse.cs
@@ -0,0 +1,9 @@
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
+{
+ ///
+ /// 表示 [POST] /merchant-settlement/merchant-settle-rule-applications 接口的响应。
+ ///
+ public class CreateMerchantSettlementSettleRuleApplymentResponse : GetMerchantSettlementSettleRuleApplicationByApplymentIdResponse
+ {
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingSettlement/GetMerchantSettlementSettleRuleApplicationByApplymentIdRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingSettlement/GetMerchantSettlementSettleRuleApplicationByApplymentIdRequest.cs
new file mode 100644
index 00000000..b3a67160
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingSettlement/GetMerchantSettlementSettleRuleApplicationByApplymentIdRequest.cs
@@ -0,0 +1,15 @@
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
+{
+ ///
+ /// 表示 [GET] /merchant-settlement/merchant-settle-rule-applications/{application_id} 接口的请求。
+ ///
+ public class GetMerchantSettlementSettleRuleApplicationByApplymentIdRequest : WechatTenpayRequest
+ {
+ ///
+ /// 获取或设置申请单编号。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public string ApplymentId { get; set; } = string.Empty;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingSettlement/GetMerchantSettlementSettleRuleApplicationByApplymentIdResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingSettlement/GetMerchantSettlementSettleRuleApplicationByApplymentIdResponse.cs
new file mode 100644
index 00000000..fc6bcae2
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MarketingSettlement/GetMerchantSettlementSettleRuleApplicationByApplymentIdResponse.cs
@@ -0,0 +1,68 @@
+using System;
+
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
+{
+ ///
+ /// 表示 [GET] /merchant-settlement/merchant-settle-rule-applications/{application_id} 接口的响应。
+ ///
+ public class GetMerchantSettlementSettleRuleApplicationByApplymentIdResponse : WechatTenpayResponse
+ {
+ ///
+ /// 获取或设置申请单编号。
+ ///
+ [Newtonsoft.Json.JsonProperty("application_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("application_id")]
+ public string ApplymentId { get; set; } = default!;
+
+ ///
+ /// 获取或设置申请单处理信息。
+ ///
+ [Newtonsoft.Json.JsonProperty("application_process_info")]
+ [System.Text.Json.Serialization.JsonPropertyName("application_process_info")]
+ public string ApplymentProcessInformation { get; set; } = default!;
+
+ ///
+ /// 获取或设置申请单状态。
+ ///
+ [Newtonsoft.Json.JsonProperty("application_state")]
+ [System.Text.Json.Serialization.JsonPropertyName("application_state")]
+ public string? ApplymentState { get; set; }
+
+ ///
+ /// 获取或设置从业机构号。
+ ///
+ [Newtonsoft.Json.JsonProperty("acquiring_bank_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("acquiring_bank_id")]
+ public string? AcquiringBankId { get; set; }
+
+ ///
+ /// 获取或设置渠道商户号。
+ ///
+ [Newtonsoft.Json.JsonProperty("channel_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("channel_id")]
+ public string? ChannelId { get; set; }
+
+ ///
+ /// 获取或设置特约商户号。
+ ///
+ [Newtonsoft.Json.JsonProperty("sub_mchid")]
+ [System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
+ public string? SubMerchantId { get; set; }
+
+ ///
+ /// 获取或设置结算规则 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("settle_rule_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("settle_rule_id")]
+ public int? SettleRuleId { get; set; }
+
+ ///
+ /// 获取或设置最后更新时间。
+ ///
+ [Newtonsoft.Json.JsonProperty("update_time")]
+ [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RFC3339NullableDateTimeOffsetConverter))]
+ [System.Text.Json.Serialization.JsonPropertyName("update_time")]
+ [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RFC3339NullableDateTimeOffsetConverter))]
+ public DateTimeOffset? UpdateTime { get; set; }
+ }
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingSettlement/CreateMerchantSettlementSettleRuleApplymentRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingSettlement/CreateMerchantSettlementSettleRuleApplymentRequest.json
new file mode 100644
index 00000000..091ece36
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingSettlement/CreateMerchantSettlementSettleRuleApplymentRequest.json
@@ -0,0 +1,6 @@
+{
+ "acquiring_bank_id": "1356485",
+ "channel_id": "20001111",
+ "sub_mchid": "1346578",
+ "settle_rule_id": 760
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingSettlement/CreateMerchantSettlementSettleRuleApplymentResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingSettlement/CreateMerchantSettlementSettleRuleApplymentResponse.json
new file mode 100644
index 00000000..969d0ac6
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingSettlement/CreateMerchantSettlementSettleRuleApplymentResponse.json
@@ -0,0 +1,10 @@
+{
+ "application_id": "20000011111",
+ "application_process_info": "正在处理中",
+ "application_state": "PROCESSING",
+ "update_time": "2015-05-20T13:29:35+08:00",
+ "acquiring_bank_id": "1356485",
+ "channel_id": "20001111",
+ "sub_mchid": "1346578",
+ "settle_rule_id": 760
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingSettlement/GetMerchantSettlementSettleRuleApplicationByApplymentIdResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingSettlement/GetMerchantSettlementSettleRuleApplicationByApplymentIdResponse.json
new file mode 100644
index 00000000..5a97d72b
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MarketingSettlement/GetMerchantSettlementSettleRuleApplicationByApplymentIdResponse.json
@@ -0,0 +1,10 @@
+{
+ "application_id": "20000011111",
+ "application_process_info": "正在处理中",
+ "application_state": "PASSED",
+ "update_time": "2015-05-20T13:29:35+08:00",
+ "acquiring_bank_id": "1356485",
+ "channel_id": "20001111",
+ "sub_mchid": "1346578",
+ "settle_rule_id": 760
+}