diff --git a/docs/WechatTenpayV3/Basic_ModelDefinition.md b/docs/WechatTenpayV3/Basic_ModelDefinition.md
index 8a978229..dcc6a6be 100644
--- a/docs/WechatTenpayV3/Basic_ModelDefinition.md
+++ b/docs/WechatTenpayV3/Basic_ModelDefinition.md
@@ -64,6 +64,7 @@
| × | 其他能力:清关报关 | 直连商户 | 官方未提供 v3 API |
| √ | 其他能力:图片上传 | 直连商户 & 服务商 | |
| √ | 其他能力:视频上传 | 直连商户 & 服务商 | |
+| √ | 其他能力:优惠费率活动 | 服务商 | |
| √ | 境外支付:子商户进件 | 服务商 | |
| √ | 境外支付:融合钱包 | 服务商 | |
| √ | 境外支付:报关 | 服务商 | |
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteRateActivityExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteRateActivityExtensions.cs
new file mode 100644
index 00000000..5fe89c41
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteRateActivityExtensions.cs
@@ -0,0 +1,72 @@
+using System;
+using System.Net.Http;
+using System.Threading;
+using System.Threading.Tasks;
+using Flurl;
+using Flurl.Http;
+
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
+{
+ ///
+ /// 为 提供优惠费率活动相关的 API 扩展方法。
+ ///
+ public static class WechatTenpayClientExecuteRateActivityExtensions
+ {
+ ///
+ /// 异步调用 [POST] /rate-activity/applications 接口。
+ /// REF: https://pay.weixin.qq.com/wiki/doc/apiv3_partner/Offline/apis/chapter4_7_1.shtml
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCreateRateActivityApplicationAsync(this WechatTenpayClient client, Models.CreateRateActivityApplicationRequest 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, "rate-activity", "applications");
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [GET] /rate-activity/applications/id/{application_id} 接口。
+ /// REF: https://pay.weixin.qq.com/wiki/doc/apiv3_partner/Offline/apis/chapter4_7_2.shtml
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteGetRateActivityApplicationByApplicationIdAsync(this WechatTenpayClient client, Models.GetRateActivityApplicationByApplicationIdRequest 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, "rate-activity", "applications", "id", request.ApplicationId);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [PATCH] /rate-activity/applications/id/{application_id} 接口。
+ /// REF: https://pay.weixin.qq.com/wiki/doc/apiv3_partner/Offline/apis/chapter4_7_3.shtml
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteUpdateRateActivityApplicationAsync(this WechatTenpayClient client, Models.UpdateRateActivityApplicationRequest 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, new HttpMethod("PATCH"), "rate-activity", "applications", "id", request.ApplicationId);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MerchantService/ComplaintsV2/GetMerchantServiceComplaintByComplaintIdResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MerchantService/ComplaintsV2/GetMerchantServiceComplaintByComplaintIdResponse.cs
index 0386869f..e4f30a52 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MerchantService/ComplaintsV2/GetMerchantServiceComplaintByComplaintIdResponse.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MerchantService/ComplaintsV2/GetMerchantServiceComplaintByComplaintIdResponse.cs
@@ -75,7 +75,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
public string? State { get; set; }
}
- public class AdditionalInfo
+ public class AdditionalInfomation
{
public static class Types
{
@@ -237,6 +237,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
///
[Newtonsoft.Json.JsonProperty("additional_info")]
[System.Text.Json.Serialization.JsonPropertyName("additional_info")]
- public Types.AdditionalInfo? AdditionalInfo { get; set; }
+ public Types.AdditionalInfomation? AdditionalInfomation { get; set; }
}
}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MerchantService/ComplaintsV2/QueryMerchantServiceComplaintsResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MerchantService/ComplaintsV2/QueryMerchantServiceComplaintsResponse.cs
index f324f407..882a8893 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MerchantService/ComplaintsV2/QueryMerchantServiceComplaintsResponse.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MerchantService/ComplaintsV2/QueryMerchantServiceComplaintsResponse.cs
@@ -26,7 +26,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
}
- public class AdditionalInfo : GetMerchantServiceComplaintByComplaintIdResponse.Types.AdditionalInfo
+ public class AdditionalInfomation : GetMerchantServiceComplaintByComplaintIdResponse.Types.AdditionalInfomation
{
}
}
@@ -160,7 +160,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
///
[Newtonsoft.Json.JsonProperty("additional_info")]
[System.Text.Json.Serialization.JsonPropertyName("additional_info")]
- public Types.AdditionalInfo? AdditionalInfo { get; set; }
+ public Types.AdditionalInfomation? AdditionalInfomation { get; set; }
}
}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/RateActivity/CreateRateActivityApplicationRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/RateActivity/CreateRateActivityApplicationRequest.cs
new file mode 100644
index 00000000..d8a5dfdd
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/RateActivity/CreateRateActivityApplicationRequest.cs
@@ -0,0 +1,109 @@
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
+{
+ ///
+ /// 表示 [POST] /rate-activity/applications 接口的请求。
+ ///
+ public class CreateRateActivityApplicationRequest : WechatTenpayRequest
+ {
+ public static class Types
+ {
+ public class ActivityDetail
+ {
+ public static class Types
+ {
+ public class Material
+ {
+ ///
+ /// 获取或设置材料 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("apply_material_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("apply_material_id")]
+ public string? MaterialId { get; set; }
+
+ ///
+ /// 获取或设置材料 MediaId 列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("apply_material_information")]
+ [System.Text.Json.Serialization.JsonPropertyName("apply_material_information")]
+ public IList? MaterialMediaIdList { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置活动 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("activity_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("activity_id")]
+ public string ActivityId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置活动费率字符串。
+ ///
+ [Newtonsoft.Json.JsonProperty("activity_rate")]
+ [System.Text.Json.Serialization.JsonPropertyName("activity_rate")]
+ public string? ActivityRateString { get; set; }
+
+ ///
+ /// 获取或设置申请材料列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("activity_apply_information")]
+ [System.Text.Json.Serialization.JsonPropertyName("activity_apply_information")]
+ public IList? MaterialList { get; set; }
+ }
+
+ public class AdditionalInfomation
+ {
+ ///
+ /// 获取或设置补充说明。
+ ///
+ [Newtonsoft.Json.JsonProperty("additional_message")]
+ [System.Text.Json.Serialization.JsonPropertyName("additional_message")]
+ public string? AdditionalMessage { get; set; }
+
+ ///
+ /// 获取或设置补充材料 MediaId 列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("additional_material")]
+ [System.Text.Json.Serialization.JsonPropertyName("additional_material")]
+ public IList? AdditionalMaterialMediaIdList { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置从业机构号。
+ ///
+ [Newtonsoft.Json.JsonProperty("acquiring_bank_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("acquiring_bank_id")]
+ public string AcquiringBankId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置渠道商户号。
+ ///
+ [Newtonsoft.Json.JsonProperty("channel_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("channel_id")]
+ public string ChannelId { 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("activity_detail")]
+ [System.Text.Json.Serialization.JsonPropertyName("activity_detail")]
+ public Types.ActivityDetail ActivityDetail { get; set; } = new Types.ActivityDetail();
+
+ ///
+ /// 获取或设置补充信息。
+ ///
+ [Newtonsoft.Json.JsonProperty("additional_information")]
+ [System.Text.Json.Serialization.JsonPropertyName("additional_information")]
+ public Types.AdditionalInfomation? AdditionalInfomation { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/RateActivity/CreateRateActivityApplicationResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/RateActivity/CreateRateActivityApplicationResponse.cs
new file mode 100644
index 00000000..8be6cb7c
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/RateActivity/CreateRateActivityApplicationResponse.cs
@@ -0,0 +1,15 @@
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
+{
+ ///
+ /// 表示 [POST] /rate-activity/applications 接口的响应。
+ ///
+ public class CreateRateActivityApplicationResponse : WechatTenpayResponse
+ {
+ ///
+ /// 获取或设置申请单编号。
+ ///
+ [Newtonsoft.Json.JsonProperty("application_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("application_id")]
+ public string ApplicationId { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/RateActivity/GetRateActivityApplicationByApplicationIdRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/RateActivity/GetRateActivityApplicationByApplicationIdRequest.cs
new file mode 100644
index 00000000..c05a1437
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/RateActivity/GetRateActivityApplicationByApplicationIdRequest.cs
@@ -0,0 +1,15 @@
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
+{
+ ///
+ /// 表示 [GET] /rate-activity/applications/id/{application_id} 接口的请求。
+ ///
+ public class GetRateActivityApplicationByApplicationIdRequest : WechatTenpayRequest
+ {
+ ///
+ /// 获取或设置申请单编号。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public string ApplicationId { get; set; } = string.Empty;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/RateActivity/GetRateActivityApplicationByApplicationIdResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/RateActivity/GetRateActivityApplicationByApplicationIdResponse.cs
new file mode 100644
index 00000000..37a1f516
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/RateActivity/GetRateActivityApplicationByApplicationIdResponse.cs
@@ -0,0 +1,47 @@
+using System;
+
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
+{
+ ///
+ /// 表示 [GET] /rate-activity/applications/id/{application_id} 接口的响应。
+ ///
+ public class GetRateActivityApplicationByApplicationIdResponse : WechatTenpayResponse
+ {
+ ///
+ /// 获取或设置申请单状态。
+ ///
+ [Newtonsoft.Json.JsonProperty("application_state")]
+ [System.Text.Json.Serialization.JsonPropertyName("application_state")]
+ public string ApplicationState { get; set; } = default!;
+
+ ///
+ /// 获取或设置从业机构特约商户号 。
+ ///
+ [Newtonsoft.Json.JsonProperty("sub_mchid")]
+ [System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
+ public string SubMerchantId { get; set; } = default!;
+
+ ///
+ /// 获取或设置驳回参数。
+ ///
+ [Newtonsoft.Json.JsonProperty("reject_parameter")]
+ [System.Text.Json.Serialization.JsonPropertyName("reject_parameter")]
+ public string? RejectParameter { get; set; }
+
+ ///
+ /// 获取或设置驳回原因。
+ ///
+ [Newtonsoft.Json.JsonProperty("reject_reason")]
+ [System.Text.Json.Serialization.JsonPropertyName("reject_reason")]
+ public string? RejectReason { get; set; }
+
+ ///
+ /// 获取或设置审核通过时间。
+ ///
+ [Newtonsoft.Json.JsonProperty("pass_time")]
+ [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RFC3339NullableDateTimeOffsetConverter))]
+ [System.Text.Json.Serialization.JsonPropertyName("pass_time")]
+ [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RFC3339NullableDateTimeOffsetConverter))]
+ public DateTimeOffset? PassTime { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/RateActivity/UpdateRateActivityApplicationRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/RateActivity/UpdateRateActivityApplicationRequest.cs
new file mode 100644
index 00000000..1aafe307
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/RateActivity/UpdateRateActivityApplicationRequest.cs
@@ -0,0 +1,62 @@
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
+{
+ ///
+ /// 表示 [PATCH] /rate-activity/applications/id/{application_id} 接口的请求。
+ ///
+ public class UpdateRateActivityApplicationRequest : WechatTenpayRequest
+ {
+ public static class Types
+ {
+ public class ActivityDetail
+ {
+ public static class Types
+ {
+ public class Material : CreateRateActivityApplicationRequest.Types.ActivityDetail.Types.Material
+ {
+ }
+ }
+
+ ///
+ /// 获取或设置活动费率字符串。
+ ///
+ [Newtonsoft.Json.JsonProperty("activity_rate")]
+ [System.Text.Json.Serialization.JsonPropertyName("activity_rate")]
+ public string? ActivityRateString { get; set; }
+
+ ///
+ /// 获取或设置申请材料列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("activity_apply_information")]
+ [System.Text.Json.Serialization.JsonPropertyName("activity_apply_information")]
+ public IList? MaterialList { get; set; }
+ }
+
+ public class AdditionalInfomation : CreateRateActivityApplicationRequest.Types.AdditionalInfomation
+ {
+ }
+ }
+
+ ///
+ /// 获取或设置申请单编号。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public string ApplicationId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置报名活动详情。
+ ///
+ [Newtonsoft.Json.JsonProperty("activity_detail_modification")]
+ [System.Text.Json.Serialization.JsonPropertyName("activity_detail_modification")]
+ public Types.ActivityDetail? ActivityDetail { get; set; }
+
+ ///
+ /// 获取或设置补充信息。
+ ///
+ [Newtonsoft.Json.JsonProperty("additional_information")]
+ [System.Text.Json.Serialization.JsonPropertyName("additional_information")]
+ public Types.AdditionalInfomation? AdditionalInfomation { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/RateActivity/UpdateRateActivityApplicationResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/RateActivity/UpdateRateActivityApplicationResponse.cs
new file mode 100644
index 00000000..05b3e004
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/RateActivity/UpdateRateActivityApplicationResponse.cs
@@ -0,0 +1,15 @@
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
+{
+ ///
+ /// 表示 [PATCH] /rate-activity/applications/id/{application_id} 接口的响应。
+ ///
+ public class UpdateRateActivityApplicationResponse : WechatTenpayResponse
+ {
+ ///
+ /// 获取或设置申请单编号。
+ ///
+ [Newtonsoft.Json.JsonProperty("application_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("application_id")]
+ public string ApplicationId { get; set; } = default!;
+ }
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/RateActivity/CreateRateActivityApplicationRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/RateActivity/CreateRateActivityApplicationRequest.json
new file mode 100644
index 00000000..58b477ee
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/RateActivity/CreateRateActivityApplicationRequest.json
@@ -0,0 +1,32 @@
+{
+ "acquiring_bank_id": "1356485",
+ "additional_information": {
+ "additional_message": "特殊情况,说明原因",
+ "additional_material": [
+ "0P3ng6KTIW4-Q_l2FjKLZuhHjBWoMAjmVtCz7ScmhEIThCaV-4BBgVwtNkCHO_XXqK5dE5YdOmFJBZR9FwczhJehHhAZN6BKXQPcs-VvdSo",
+ "0P3ng6KTIW4-Q_l2FjKLZuhHjBWoMAjmVtCz7ScmhEIThCaV-4BBgVwtNkCHO_XXqK5dE5YdOmFJBZR9FwczhJehHhAZN6BKXQPcs-VvdSo"
+ ]
+ },
+ "activity_detail": {
+ "activity_id": "schoolcanteen_001",
+ "activity_rate": "0.6",
+ "activity_apply_information": [
+ {
+ "apply_material_id": "SCHOOL_QUALIFICATION_PROOF",
+ "apply_material_information": [
+ "0P3ng6KTIW4-Q_l2FjKLZuhHjBWoMAjmVtCz7ScmhEIThCaV-4BBgVwtNkCHO_XXqK5dE5YdOmFJBZR9FwczhJehHhAZN6BKXQPcs-VvdSo",
+ "0P3ng6KTIW4-Q_l2FjKLZuhHjBWoMAjmVtCz7ScmhEIThCaV-4BBgVwtNkCHO_XXqK5dE5YdOmFJBZR9FwczhJehHhAZN6BKXQPcs-VvdSo"
+ ]
+ },
+ {
+ "apply_material_id": "CANTEEN_FRONT_PHOTO",
+ "apply_material_information": [
+ "0P3ng6KTIW4-Q_l2FjKLZuhHjBWoMAjmVtCz7ScmhEIThCaV-4BBgVwtNkCHO_XXqK5dE5YdOmFJBZR9FwczhJehHhAZN6BKXQPcs-VvdSo",
+ "0P3ng6KTIW4-Q_l2FjKLZuhHjBWoMAjmVtCz7ScmhEIThCaV-4BBgVwtNkCHO_XXqK5dE5YdOmFJBZR9FwczhJehHhAZN6BKXQPcs-VvdSo"
+ ]
+ }
+ ]
+ },
+ "sub_mchid": "1346578",
+ "channel_id": "20001111"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/RateActivity/CreateRateActivityApplicationResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/RateActivity/CreateRateActivityApplicationResponse.json
new file mode 100644
index 00000000..bf924a58
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/RateActivity/CreateRateActivityApplicationResponse.json
@@ -0,0 +1,3 @@
+{
+ "application_id": "20000000011111"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/RateActivity/GetRateActivityApplicationByApplicationIdResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/RateActivity/GetRateActivityApplicationByApplicationIdResponse.json
new file mode 100644
index 00000000..0393e9f9
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/RateActivity/GetRateActivityApplicationByApplicationIdResponse.json
@@ -0,0 +1,7 @@
+{
+ "application_state": "APPLICATION_STATE_PASSED",
+ "sub_mchid": "1346578",
+ "reject_parameter": "merchant_name",
+ "reject_reason": "公司名称与工商局登记不一致",
+ "pass_time": "2015-05-20T13:29:35+08:00"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/RateActivity/UpdateRateActivityApplicationRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/RateActivity/UpdateRateActivityApplicationRequest.json
new file mode 100644
index 00000000..9a8e39a8
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/RateActivity/UpdateRateActivityApplicationRequest.json
@@ -0,0 +1,28 @@
+{
+ "additional_information": {
+ "additional_message": "特殊情况,说明原因",
+ "additional_material": [
+ "0P3ng6KTIW4-Q_l2FjKLZuhHjBWoMAjmVtCz7ScmhEIThCaV-4BBgVwtNkCHO_XXqK5dE5YdOmFJBZR9FwczhJehHhAZN6BKXQPcs-VvdSo",
+ "0P3ng6KTIW4-Q_l2FjKLZuhHjBWoMAjmVtCz7ScmhEIThCaV-4BBgVwtNkCHO_XXqK5dE5YdOmFJBZR9FwczhJehHhAZN6BKXQPcs-VvdSo"
+ ]
+ },
+ "activity_detail_modification": {
+ "activity_rate": "0.6",
+ "activity_apply_information": [
+ {
+ "apply_material_id": "SCHOOL_QUALIFICATION_PROOF",
+ "apply_material_information": [
+ "0P3ng6KTIW4-Q_l2FjKLZuhHjBWoMAjmVtCz7ScmhEIThCaV-4BBgVwtNkCHO_XXqK5dE5YdOmFJBZR9FwczhJehHhAZN6BKXQPcs-VvdSo",
+ "0P3ng6KTIW4-Q_l2FjKLZuhHjBWoMAjmVtCz7ScmhEIThCaV-4BBgVwtNkCHO_XXqK5dE5YdOmFJBZR9FwczhJehHhAZN6BKXQPcs-VvdSo"
+ ]
+ },
+ {
+ "apply_material_id": "CANTEEN_FRONT_PHOTO",
+ "apply_material_information": [
+ "0P3ng6KTIW4-Q_l2FjKLZuhHjBWoMAjmVtCz7ScmhEIThCaV-4BBgVwtNkCHO_XXqK5dE5YdOmFJBZR9FwczhJehHhAZN6BKXQPcs-VvdSo",
+ "0P3ng6KTIW4-Q_l2FjKLZuhHjBWoMAjmVtCz7ScmhEIThCaV-4BBgVwtNkCHO_XXqK5dE5YdOmFJBZR9FwczhJehHhAZN6BKXQPcs-VvdSo"
+ ]
+ }
+ ]
+ }
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/RateActivity/UpdateRateActivityApplicationResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/RateActivity/UpdateRateActivityApplicationResponse.json
new file mode 100644
index 00000000..bf924a58
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/RateActivity/UpdateRateActivityApplicationResponse.json
@@ -0,0 +1,3 @@
+{
+ "application_id": "20000000011111"
+}