diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMerchantRiskManageExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMerchantRiskManageExtensions.cs
index 5e5c3109..7b9ac006 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMerchantRiskManageExtensions.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMerchantRiskManageExtensions.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
@@ -8,6 +8,82 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
{
public static class WechatTenpayClientExecuteMerchantRiskManageExtensions
{
+ #region TradeRisk
+ ///
+ /// 异步调用 [POST] /merchant-risk-manage/report-trade-union-information 接口。
+ /// REF: https://pay.weixin.qq.com/docs/partner/apis/risk-manage/trade-risk/report-trade-risk-information.html
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCreateMerchantRiskManageTradeUnionInformationReportAsync(this WechatTenpayClient client, Models.CreateMerchantRiskManageTradeUnionInformationReportRequest 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-risk-manage", "report-trade-union-information");
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [GET] /merchant-risk-manage/trade-risk-information 接口。
+ /// REF: https://pay.weixin.qq.com/docs/partner/apis/risk-manage/trade-risk/query-trade-risk-information.html
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteGetMerchantRiskManageTradeRiskInformationAsync(this WechatTenpayClient client, Models.GetMerchantRiskManageTradeRiskInformationRequest 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-risk-manage", "trade-risk-information")
+ .SetQueryParam("out_trade_no", request.OutTradeNumber);
+
+ if (request.MerchantId != null)
+ flurlReq.SetQueryParam("sp_mchid", request.MerchantId);
+
+ if (request.AcquiringBankId != null)
+ flurlReq.SetQueryParam("acquiring_bank_id", request.AcquiringBankId);
+
+ if (request.ChannelId != null)
+ flurlReq.SetQueryParam("channel_id", request.ChannelId);
+
+ if (request.SubMerchantId != null)
+ flurlReq.SetQueryParam("sub_mchid", request.SubMerchantId);
+
+ if (request.ComplaintsInformation != null)
+ flurlReq.SetQueryParam("complaints_information", request.ComplaintsInformation);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [POST] /merchant-risk-manage/trade-risk-result 接口。
+ /// REF: https://pay.weixin.qq.com/docs/partner/apis/risk-manage/trade-risk/report-trade-risk-information.html
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCreateMerchantRiskManageTradeRiskResultAsync(this WechatTenpayClient client, Models.CreateMerchantRiskManageTradeRiskResultRequest 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-risk-manage", "trade-risk-result");
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+ #endregion
+
+ #region ViolationNotification
///
/// 异步调用 [POST] /merchant-risk-manage/violation-notifications 接口。
/// REF: https://pay.weixin.qq.com/wiki/doc/apiv3_partner/apis/chapter10_3_1.shtml
@@ -83,5 +159,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
+ #endregion
}
}
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 e4f30a52..ce80801c 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MerchantService/ComplaintsV2/GetMerchantServiceComplaintByComplaintIdResponse.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MerchantService/ComplaintsV2/GetMerchantServiceComplaintByComplaintIdResponse.cs
@@ -48,7 +48,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
///
[Newtonsoft.Json.JsonProperty("media_url")]
[System.Text.Json.Serialization.JsonPropertyName("media_url")]
- public string[] MediaUrl { get; set; } = default!;
+ public string[] MediaUrlList { get; set; } = default!;
}
public class ServiceOrder
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantRiskManage/TradeRisk/CreateMerchantRiskManageTradeRiskResultRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantRiskManage/TradeRisk/CreateMerchantRiskManageTradeRiskResultRequest.cs
new file mode 100644
index 00000000..66172ffa
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantRiskManage/TradeRisk/CreateMerchantRiskManageTradeRiskResultRequest.cs
@@ -0,0 +1,71 @@
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
+{
+ ///
+ /// 表示 [POST] /merchant-risk-manage/trade-risk-result 接口的请求。
+ ///
+ public class CreateMerchantRiskManageTradeRiskResultRequest : WechatTenpayRequest
+ {
+ ///
+ /// 获取或设置服务商商户号。
+ ///
+ [Newtonsoft.Json.JsonProperty("sp_mchid")]
+ [System.Text.Json.Serialization.JsonPropertyName("sp_mchid")]
+ public string? MerchantId { 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; }
+
+ ///
+ /// 获取或设置商户订单号。
+ ///
+ [Newtonsoft.Json.JsonProperty("out_trade_no")]
+ [System.Text.Json.Serialization.JsonPropertyName("out_trade_no")]
+ public string? OutTradeNumber { get; set; }
+
+ ///
+ /// 获取或设置投诉信息。
+ ///
+ [Newtonsoft.Json.JsonProperty("complaints_information")]
+ [System.Text.Json.Serialization.JsonPropertyName("complaints_information")]
+ public string? ComplaintsInformation { get; set; }
+
+ ///
+ /// 获取或设置风险类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("risk_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("risk_type")]
+ public string? RiskType { get; set; }
+
+ ///
+ /// 获取或设置处置手段。
+ ///
+ [Newtonsoft.Json.JsonProperty("punish_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("punish_type")]
+ public string? PunishType { get; set; }
+
+ ///
+ /// 获取或设置处置手段补充。
+ ///
+ [Newtonsoft.Json.JsonProperty("additional_punish_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("additional_punish_type")]
+ public string? AdditionalPunishType { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantRiskManage/TradeRisk/CreateMerchantRiskManageTradeRiskResultResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantRiskManage/TradeRisk/CreateMerchantRiskManageTradeRiskResultResponse.cs
new file mode 100644
index 00000000..87199101
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantRiskManage/TradeRisk/CreateMerchantRiskManageTradeRiskResultResponse.cs
@@ -0,0 +1,71 @@
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
+{
+ ///
+ /// 表示 [POST] /merchant-risk-manage/trade-risk-result 接口的响应。
+ ///
+ public class CreateMerchantRiskManageTradeRiskResultResponse : WechatTenpayResponse
+ {
+ ///
+ /// 获取或设置服务商商户号。
+ ///
+ [Newtonsoft.Json.JsonProperty("sp_mchid")]
+ [System.Text.Json.Serialization.JsonPropertyName("sp_mchid")]
+ public string? MerchantId { 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; }
+
+ ///
+ /// 获取或设置商户订单号。
+ ///
+ [Newtonsoft.Json.JsonProperty("out_trade_no")]
+ [System.Text.Json.Serialization.JsonPropertyName("out_trade_no")]
+ public string? OutTradeNumber { get; set; }
+
+ ///
+ /// 获取或设置风险类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("risk_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("risk_type")]
+ public string? RiskType { get; set; }
+
+ ///
+ /// 获取或设置处置手段。
+ ///
+ [Newtonsoft.Json.JsonProperty("punish_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("punish_type")]
+ public string? PunishType { get; set; }
+
+ ///
+ /// 获取或设置处置手段描述。
+ ///
+ [Newtonsoft.Json.JsonProperty("punish_description")]
+ [System.Text.Json.Serialization.JsonPropertyName("punish_description")]
+ public string? PunishDescription { get; set; }
+
+ ///
+ /// 获取或设置处置手段补充。
+ ///
+ [Newtonsoft.Json.JsonProperty("additional_punish_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("additional_punish_type")]
+ public string? AdditionalPunishType { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantRiskManage/TradeRisk/CreateMerchantRiskManageTradeUnionInformationReportRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantRiskManage/TradeRisk/CreateMerchantRiskManageTradeUnionInformationReportRequest.cs
new file mode 100644
index 00000000..9c6e1d43
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantRiskManage/TradeRisk/CreateMerchantRiskManageTradeUnionInformationReportRequest.cs
@@ -0,0 +1,253 @@
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
+{
+ ///
+ /// 表示 [POST] /merchant-risk-manage/report-trade-union-information 接口的请求。
+ ///
+ [WechatTenpaySensitive]
+ public class CreateMerchantRiskManageTradeUnionInformationReportRequest : WechatTenpayRequest
+ {
+ public static class Types
+ {
+ public class RechargeField
+ {
+ ///
+ /// 获取或设置充值账号类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("account_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("account_type")]
+ public int? AccountType { get; set; }
+
+ ///
+ /// 获取或设置充值账号。
+ ///
+ [Newtonsoft.Json.JsonProperty("account")]
+ [System.Text.Json.Serialization.JsonPropertyName("account")]
+ public string? Account { get; set; }
+ }
+
+ public class LivingExpensesField
+ {
+ ///
+ /// 获取或设置户号。
+ ///
+ [Newtonsoft.Json.JsonProperty("acc_no")]
+ [System.Text.Json.Serialization.JsonPropertyName("acc_no")]
+ public string? AccountNumber { get; set; }
+
+ ///
+ /// 获取或设置户名。
+ ///
+ [Newtonsoft.Json.JsonProperty("acc_name")]
+ [System.Text.Json.Serialization.JsonPropertyName("acc_name")]
+ public string? AccountName { get; set; }
+
+ ///
+ /// 获取或设置费种。
+ ///
+ [Newtonsoft.Json.JsonProperty("type")]
+ [System.Text.Json.Serialization.JsonPropertyName("type")]
+ public int? Type { get; set; }
+
+ ///
+ /// 获取或设置城市。
+ ///
+ [Newtonsoft.Json.JsonProperty("city")]
+ [System.Text.Json.Serialization.JsonPropertyName("city")]
+ public string? City { get; set; }
+
+ ///
+ /// 获取或设置地址。
+ ///
+ [Newtonsoft.Json.JsonProperty("address")]
+ [System.Text.Json.Serialization.JsonPropertyName("address")]
+ public string? Address { get; set; }
+
+ ///
+ /// 获取或设置机构名称。
+ ///
+ [Newtonsoft.Json.JsonProperty("company_name")]
+ [System.Text.Json.Serialization.JsonPropertyName("company_name")]
+ public string? CompanyName { get; set; }
+
+ ///
+ /// 获取或设置缴费金额(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("amount")]
+ [System.Text.Json.Serialization.JsonPropertyName("amount")]
+ public int? Amount { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置服务商商户号。
+ ///
+ [Newtonsoft.Json.JsonProperty("sp_mchid")]
+ [System.Text.Json.Serialization.JsonPropertyName("sp_mchid")]
+ public string? MerchantId { 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; }
+
+ ///
+ /// 获取或设置商户订单号。
+ ///
+ [Newtonsoft.Json.JsonProperty("out_trade_no")]
+ [System.Text.Json.Serialization.JsonPropertyName("out_trade_no")]
+ public string? OutTradeNumber { get; set; }
+
+ ///
+ /// 获取或设置用户唯一标识。
+ ///
+ [Newtonsoft.Json.JsonProperty("openid")]
+ [System.Text.Json.Serialization.JsonPropertyName("openid")]
+ public string? OpenId { get; set; }
+
+ ///
+ /// 获取或设置用户手机号(需使用平台公钥/证书加密)。
+ ///
+ [Newtonsoft.Json.JsonProperty("phone")]
+ [System.Text.Json.Serialization.JsonPropertyName("phone")]
+ [WechatTenpaySensitiveProperty(scheme: Constants.SignSchemes.WECHATPAY2_RSA_2048_WITH_SHA256, algorithm: Constants.EncryptionAlgorithms.RSA_2048_ECB_PKCS8_OAEP_WITH_SHA1_AND_MGF1)]
+ [WechatTenpaySensitiveProperty(scheme: Constants.SignSchemes.WECHATPAY2_SM2_WITH_SM3, algorithm: Constants.EncryptionAlgorithms.SM2_C1C3C2_ASN1)]
+ public string? PhoneNumber { get; set; }
+
+ ///
+ /// 获取或设置用户实名证件号(需使用平台公钥/证书加密)。
+ ///
+ [Newtonsoft.Json.JsonProperty("certificates_number")]
+ [System.Text.Json.Serialization.JsonPropertyName("certificates_number")]
+ [WechatTenpaySensitiveProperty(scheme: Constants.SignSchemes.WECHATPAY2_RSA_2048_WITH_SHA256, algorithm: Constants.EncryptionAlgorithms.RSA_2048_ECB_PKCS8_OAEP_WITH_SHA1_AND_MGF1)]
+ [WechatTenpaySensitiveProperty(scheme: Constants.SignSchemes.WECHATPAY2_SM2_WITH_SM3, algorithm: Constants.EncryptionAlgorithms.SM2_C1C3C2_ASN1)]
+ public string? IdCardNumber { get; set; }
+
+ ///
+ /// 获取或设置终端 IP。
+ ///
+ [Newtonsoft.Json.JsonProperty("client_ip")]
+ [System.Text.Json.Serialization.JsonPropertyName("client_ip")]
+ public string? ClientIp { get; set; }
+
+ ///
+ /// 获取或设置商户判定交易的风险等级。
+ ///
+ [Newtonsoft.Json.JsonProperty("risk_level")]
+ [System.Text.Json.Serialization.JsonPropertyName("risk_level")]
+ public int? RiskLevel { get; set; }
+
+ ///
+ /// 获取或设置线上线下标识。
+ ///
+ [Newtonsoft.Json.JsonProperty("line_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("line_type")]
+ public int? LineType { get; set; }
+
+ ///
+ /// 获取或设置虚拟实物标识。
+ ///
+ [Newtonsoft.Json.JsonProperty("goods_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("goods_type")]
+ public int? GoodsType { get; set; }
+
+ ///
+ /// 获取或设置物品发布类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("seller_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("seller_type")]
+ public int? SellerType { get; set; }
+
+ ///
+ /// 获取或设置是否需要物流发货。
+ ///
+ [Newtonsoft.Json.JsonProperty("is_need_deliver")]
+ [System.Text.Json.Serialization.JsonPropertyName("is_need_deliver")]
+ public bool? IsNeedDeliver { get; set; }
+
+ ///
+ /// 获取或设置用户设备类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("device_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("device_type")]
+ public int? DeviceType { get; set; }
+
+ ///
+ /// 获取或设置付款方用户标识。
+ ///
+ [Newtonsoft.Json.JsonProperty("userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("userid")]
+ public string? UserId { get; set; }
+
+ ///
+ /// 获取或设置手机号来源。
+ ///
+ [Newtonsoft.Json.JsonProperty("phone_from")]
+ [System.Text.Json.Serialization.JsonPropertyName("phone_from")]
+ public int? PhoneFrom { get; set; }
+
+ ///
+ /// 获取或设置收款方用户标识。
+ ///
+ [Newtonsoft.Json.JsonProperty("seller_userid")]
+ [System.Text.Json.Serialization.JsonPropertyName("seller_userid")]
+ public string? SellerUserId { get; set; }
+
+ ///
+ /// 获取或设置业务场景。
+ ///
+ [Newtonsoft.Json.JsonProperty("scene")]
+ [System.Text.Json.Serialization.JsonPropertyName("scene")]
+ public int? Scene { get; set; }
+
+ ///
+ /// 获取或设置充值业务场景字段信息。
+ ///
+ [Newtonsoft.Json.JsonProperty("recharge_fields")]
+ [System.Text.Json.Serialization.JsonPropertyName("recharge_fields")]
+ public Types.RechargeField? RechargeField { get; set; }
+
+ ///
+ /// 获取或设置生活缴费业务场景字段信息。
+ ///
+ [Newtonsoft.Json.JsonProperty("living_expenses_fields")]
+ [System.Text.Json.Serialization.JsonPropertyName("living_expenses_fields")]
+ public Types.LivingExpensesField? LivingExpensesField { get; set; }
+
+ ///
+ /// 获取或设置扩展字段 1。
+ ///
+ [Newtonsoft.Json.JsonProperty("extra_fields1")]
+ [System.Text.Json.Serialization.JsonPropertyName("extra_fields1")]
+ public string? ExtraField1 { get; set; }
+
+ ///
+ /// 获取或设置扩展字段 2。
+ ///
+ [Newtonsoft.Json.JsonProperty("extra_fields2")]
+ [System.Text.Json.Serialization.JsonPropertyName("extra_fields2")]
+ public string? ExtraField2 { get; set; }
+
+ ///
+ /// 获取或设置扩展字段 3。
+ ///
+ [Newtonsoft.Json.JsonProperty("extra_fields3")]
+ [System.Text.Json.Serialization.JsonPropertyName("extra_fields3")]
+ public string? ExtraField3 { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantRiskManage/TradeRisk/CreateMerchantRiskManageTradeUnionInformationReportResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantRiskManage/TradeRisk/CreateMerchantRiskManageTradeUnionInformationReportResponse.cs
new file mode 100644
index 00000000..11e98bd9
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantRiskManage/TradeRisk/CreateMerchantRiskManageTradeUnionInformationReportResponse.cs
@@ -0,0 +1,43 @@
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
+{
+ ///
+ /// 表示 [POST] /merchant-risk-manage/report-trade-union-information 接口的响应。
+ ///
+ public class CreateMerchantRiskManageTradeUnionInformationReportResponse : WechatTenpayResponse
+ {
+ ///
+ /// 获取或设置服务商商户号。
+ ///
+ [Newtonsoft.Json.JsonProperty("sp_mchid")]
+ [System.Text.Json.Serialization.JsonPropertyName("sp_mchid")]
+ public string? MerchantId { 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; }
+
+ ///
+ /// 获取或设置商户订单号。
+ ///
+ [Newtonsoft.Json.JsonProperty("out_trade_no")]
+ [System.Text.Json.Serialization.JsonPropertyName("out_trade_no")]
+ public string? OutTradeNumber { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantRiskManage/TradeRisk/GetMerchantRiskManageTradeRiskInformationRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantRiskManage/TradeRisk/GetMerchantRiskManageTradeRiskInformationRequest.cs
new file mode 100644
index 00000000..8d129138
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantRiskManage/TradeRisk/GetMerchantRiskManageTradeRiskInformationRequest.cs
@@ -0,0 +1,50 @@
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
+{
+ ///
+ /// 表示 [GET] /merchant-risk-manage/trade-risk-information 接口的请求。
+ ///
+ public class GetMerchantRiskManageTradeRiskInformationRequest : WechatTenpayRequest
+ {
+ ///
+ /// 获取或设置服务商商户号。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public string? MerchantId { get; set; }
+
+ ///
+ /// 获取或设置从业机构号。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public string? AcquiringBankId { get; set; }
+
+ ///
+ /// 获取或设置渠道号。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public string? ChannelId { get; set; }
+
+ ///
+ /// 获取或设置子商户号。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public string? SubMerchantId { get; set; }
+
+ ///
+ /// 获取或设置商户订单号。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public string OutTradeNumber { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置投诉信息。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public string? ComplaintsInformation { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantRiskManage/TradeRisk/GetMerchantRiskManageTradeRiskInformationResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantRiskManage/TradeRisk/GetMerchantRiskManageTradeRiskInformationResponse.cs
new file mode 100644
index 00000000..6e8e5b35
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantRiskManage/TradeRisk/GetMerchantRiskManageTradeRiskInformationResponse.cs
@@ -0,0 +1,36 @@
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
+{
+ ///
+ /// 表示 [GET] /merchant-risk-manage/trade-risk-information 接口的响应。
+ ///
+ public class GetMerchantRiskManageTradeRiskInformationResponse : WechatTenpayResponse
+ {
+ ///
+ /// 获取或设置风险系数值。
+ ///
+ [Newtonsoft.Json.JsonProperty("risk_score")]
+ [System.Text.Json.Serialization.JsonPropertyName("risk_score")]
+ public int RiskScore { get; set; }
+
+ ///
+ /// 获取或设置风险类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("risk_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("risk_type")]
+ public string? RiskType { get; set; }
+
+ ///
+ /// 获取或设置处置手段。
+ ///
+ [Newtonsoft.Json.JsonProperty("punish_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("punish_type")]
+ public string? PunishType { get; set; }
+
+ ///
+ /// 获取或设置处置手段描述。
+ ///
+ [Newtonsoft.Json.JsonProperty("punish_description")]
+ [System.Text.Json.Serialization.JsonPropertyName("punish_description")]
+ public string? PunishDescription { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MerchantRiskManage/CreateMerchantRiskManageViolationNotificationRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantRiskManage/ViolationNotification/CreateMerchantRiskManageViolationNotificationRequest.cs
similarity index 100%
rename from src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MerchantRiskManage/CreateMerchantRiskManageViolationNotificationRequest.cs
rename to src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantRiskManage/ViolationNotification/CreateMerchantRiskManageViolationNotificationRequest.cs
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MerchantRiskManage/CreateMerchantRiskManageViolationNotificationResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantRiskManage/ViolationNotification/CreateMerchantRiskManageViolationNotificationResponse.cs
similarity index 100%
rename from src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MerchantRiskManage/CreateMerchantRiskManageViolationNotificationResponse.cs
rename to src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantRiskManage/ViolationNotification/CreateMerchantRiskManageViolationNotificationResponse.cs
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MerchantRiskManage/DeleteMerchantRiskManageViolationNotificationRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantRiskManage/ViolationNotification/DeleteMerchantRiskManageViolationNotificationRequest.cs
similarity index 100%
rename from src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MerchantRiskManage/DeleteMerchantRiskManageViolationNotificationRequest.cs
rename to src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantRiskManage/ViolationNotification/DeleteMerchantRiskManageViolationNotificationRequest.cs
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MerchantRiskManage/DeleteMerchantRiskManageViolationNotificationResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantRiskManage/ViolationNotification/DeleteMerchantRiskManageViolationNotificationResponse.cs
similarity index 100%
rename from src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MerchantRiskManage/DeleteMerchantRiskManageViolationNotificationResponse.cs
rename to src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantRiskManage/ViolationNotification/DeleteMerchantRiskManageViolationNotificationResponse.cs
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MerchantRiskManage/GetMerchantRiskManageViolationNotificationRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantRiskManage/ViolationNotification/GetMerchantRiskManageViolationNotificationRequest.cs
similarity index 100%
rename from src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MerchantRiskManage/GetMerchantRiskManageViolationNotificationRequest.cs
rename to src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantRiskManage/ViolationNotification/GetMerchantRiskManageViolationNotificationRequest.cs
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MerchantRiskManage/GetMerchantRiskManageViolationNotificationResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantRiskManage/ViolationNotification/GetMerchantRiskManageViolationNotificationResponse.cs
similarity index 100%
rename from src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MerchantRiskManage/GetMerchantRiskManageViolationNotificationResponse.cs
rename to src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantRiskManage/ViolationNotification/GetMerchantRiskManageViolationNotificationResponse.cs
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MerchantRiskManage/UpdateMerchantRiskManageViolationNotificationRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantRiskManage/ViolationNotification/UpdateMerchantRiskManageViolationNotificationRequest.cs
similarity index 100%
rename from src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MerchantRiskManage/UpdateMerchantRiskManageViolationNotificationRequest.cs
rename to src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantRiskManage/ViolationNotification/UpdateMerchantRiskManageViolationNotificationRequest.cs
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MerchantRiskManage/UpdateMerchantRiskManageViolationNotificationResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantRiskManage/ViolationNotification/UpdateMerchantRiskManageViolationNotificationResponse.cs
similarity index 100%
rename from src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MerchantRiskManage/UpdateMerchantRiskManageViolationNotificationResponse.cs
rename to src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantRiskManage/ViolationNotification/UpdateMerchantRiskManageViolationNotificationResponse.cs
diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_Partner/MerchantRiskManage/TradeRisk/CreateMerchantRiskManageTradeRiskResultRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_Partner/MerchantRiskManage/TradeRisk/CreateMerchantRiskManageTradeRiskResultRequest.json
new file mode 100644
index 00000000..fe458ba0
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_Partner/MerchantRiskManage/TradeRisk/CreateMerchantRiskManageTradeRiskResultRequest.json
@@ -0,0 +1,11 @@
+{
+ "sp_mchid": "1900000109",
+ "acquiring_bank_id": "1356485",
+ "channel_id": "1900000108\t",
+ "sub_mchid": "1900009231",
+ "out_trade_no": "1217752501201407033233368018",
+ "risk_type": "OTHER_RISK",
+ "punish_type": "OTHER_PUNISH",
+ "additional_punish_type": "SUSPEND_SETTLEMENT_NDAYS:10",
+ "complaints_information": "商家说高额返利,支付很大金额之后发现并没有返利,是骗子"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_Partner/MerchantRiskManage/TradeRisk/CreateMerchantRiskManageTradeRiskResultResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_Partner/MerchantRiskManage/TradeRisk/CreateMerchantRiskManageTradeRiskResultResponse.json
new file mode 100644
index 00000000..d4136fa5
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_Partner/MerchantRiskManage/TradeRisk/CreateMerchantRiskManageTradeRiskResultResponse.json
@@ -0,0 +1,11 @@
+{
+ "sp_mchid": "1900000109",
+ "acquiring_bank_id": "1356485",
+ "channel_id": "1900000108",
+ "sub_mchid": "1900009231",
+ "out_trade_no": "1217752501201407033233368018",
+ "risk_type": "OTHER_RISK",
+ "punish_type": "OTHER_PUNISH",
+ "additional_punish_type": "SUSPEND_SETTLEMENT_NDAYS:10",
+ "punish_description": "延长商户账期7天"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_Partner/MerchantRiskManage/TradeRisk/CreateMerchantRiskManageTradeUnionInformationReportRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_Partner/MerchantRiskManage/TradeRisk/CreateMerchantRiskManageTradeUnionInformationReportRequest.json
new file mode 100644
index 00000000..fb0f2027
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_Partner/MerchantRiskManage/TradeRisk/CreateMerchantRiskManageTradeUnionInformationReportRequest.json
@@ -0,0 +1,37 @@
+{
+ "sp_mchid": "1900000109",
+ "acquiring_bank_id": "1356485",
+ "channel_id": "1900000108",
+ "sub_mchid": "1900009231",
+ "out_trade_no": "1217752501201407033233368018",
+ "openid": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o",
+ "phone": "ca775af5f841bdf424b2e6eb86a6e21e",
+ "certificates_number": "ca775af5f841bdf424b2e6eb86a6e21e",
+ "client_ip": "123.12.12.123",
+ "risk_level": 1,
+ "line_type": 1,
+ "goods_type": 1,
+ "seller_type": 1,
+ "is_need_deliver": false,
+ "device_type": 1,
+ "userid": "华为的账号:260XXX",
+ "phone_from": 1,
+ "seller_userid": "抖音的账号:XXXXX",
+ "scene": 1,
+ "recharge_fields": {
+ "account_type": 1,
+ "account": "example_account"
+ },
+ "living_expenses_fields": {
+ "acc_no": "123456",
+ "type": 1,
+ "city": "湖南衡阳",
+ "address": "广东省深圳市南山区海天二路33号",
+ "acc_name": "詹讯",
+ "company_name": "深圳电力",
+ "amount": 500
+ },
+ "extra_fields1": "{\"key1\":\"value1\"}",
+ "extra_fields2": "{\"key1\":\"value1\"}",
+ "extra_fields3": "{\"key1\":\"value1\"}"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_Partner/MerchantRiskManage/TradeRisk/CreateMerchantRiskManageTradeUnionInformationReportResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_Partner/MerchantRiskManage/TradeRisk/CreateMerchantRiskManageTradeUnionInformationReportResponse.json
new file mode 100644
index 00000000..c8f55104
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_Partner/MerchantRiskManage/TradeRisk/CreateMerchantRiskManageTradeUnionInformationReportResponse.json
@@ -0,0 +1,7 @@
+{
+ "sp_mchid": "1900000109",
+ "acquiring_bank_id": "1356485",
+ "channel_id": "1900000108",
+ "sub_mchid": "1900009231",
+ "out_trade_no": "1217752501201407033233368018"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_Partner/MerchantRiskManage/TradeRisk/GetMerchantRiskManageTradeRiskInformationResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_Partner/MerchantRiskManage/TradeRisk/GetMerchantRiskManageTradeRiskInformationResponse.json
new file mode 100644
index 00000000..09697202
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_Partner/MerchantRiskManage/TradeRisk/GetMerchantRiskManageTradeRiskInformationResponse.json
@@ -0,0 +1,6 @@
+{
+ "risk_score": 1,
+ "risk_type": "OTHER_RISK",
+ "punish_type": "OTHER_PUNISH",
+ "punish_description": "延长商户账期7天"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MerchantRiskManage/CreateMerchantRiskManageViolationNotificationRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_Partner/MerchantRiskManage/ViolationNotification/CreateMerchantRiskManageViolationNotificationRequest.json
similarity index 100%
rename from test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MerchantRiskManage/CreateMerchantRiskManageViolationNotificationRequest.json
rename to test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_Partner/MerchantRiskManage/ViolationNotification/CreateMerchantRiskManageViolationNotificationRequest.json
diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MerchantRiskManage/CreateMerchantRiskManageViolationNotificationResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_Partner/MerchantRiskManage/ViolationNotification/CreateMerchantRiskManageViolationNotificationResponse.json
similarity index 100%
rename from test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MerchantRiskManage/CreateMerchantRiskManageViolationNotificationResponse.json
rename to test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_Partner/MerchantRiskManage/ViolationNotification/CreateMerchantRiskManageViolationNotificationResponse.json
diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MerchantRiskManage/GetMerchantRiskManageViolationNotificationResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_Partner/MerchantRiskManage/ViolationNotification/GetMerchantRiskManageViolationNotificationResponse.json
similarity index 100%
rename from test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MerchantRiskManage/GetMerchantRiskManageViolationNotificationResponse.json
rename to test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_Partner/MerchantRiskManage/ViolationNotification/GetMerchantRiskManageViolationNotificationResponse.json
diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MerchantRiskManage/UpdateMerchantRiskManageViolationNotificationRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_Partner/MerchantRiskManage/ViolationNotification/UpdateMerchantRiskManageViolationNotificationRequest.json
similarity index 100%
rename from test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MerchantRiskManage/UpdateMerchantRiskManageViolationNotificationRequest.json
rename to test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_Partner/MerchantRiskManage/ViolationNotification/UpdateMerchantRiskManageViolationNotificationRequest.json
diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MerchantRiskManage/UpdateMerchantRiskManageViolationNotificationResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_Partner/MerchantRiskManage/ViolationNotification/UpdateMerchantRiskManageViolationNotificationResponse.json
similarity index 100%
rename from test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/MerchantRiskManage/UpdateMerchantRiskManageViolationNotificationResponse.json
rename to test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_Partner/MerchantRiskManage/ViolationNotification/UpdateMerchantRiskManageViolationNotificationResponse.json
diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/TestCase_RequestEncryptionTests.cs b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/TestCase_RequestEncryptionTests.cs
index 50fef8d3..afbf1f26 100644
--- a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/TestCase_RequestEncryptionTests.cs
+++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/TestCase_RequestEncryptionTests.cs
@@ -653,6 +653,44 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
AssertMockRequestModel(reqB2, (cipher) => Utilities.SM2Utility.Decrypt(SM2_PEM_PRIVATE_KEY, cipher));
}
+ [Fact(DisplayName = "测试用例:加密请求中的敏感数据([POST] /merchant-risk-manage/report-trade-union-information)")]
+ public async Task TestEncryptRequestSensitiveProperty_CreateMerchantRiskManageTradeUnionInformationReportRequest()
+ {
+ static Models.CreateMerchantRiskManageTradeUnionInformationReportRequest GenerateMockRequestModel()
+ {
+ return new Models.CreateMerchantRiskManageTradeUnionInformationReportRequest()
+ {
+ PhoneNumber = MOCK_PLAIN_STR,
+ IdCardNumber = MOCK_PLAIN_STR
+ };
+ }
+
+ static void AssertMockRequestModel(Models.CreateMerchantRiskManageTradeUnionInformationReportRequest request, Func decryptor)
+ {
+ Assert.NotEqual(MOCK_PLAIN_STR, request.PhoneNumber!);
+ Assert.NotEqual(MOCK_PLAIN_STR, request.IdCardNumber!);
+ Assert.Equal(MOCK_PLAIN_STR, decryptor.Invoke(request.PhoneNumber!));
+ Assert.Equal(MOCK_PLAIN_STR, decryptor.Invoke(request.IdCardNumber!));
+ Assert.Equal(MOCK_CERT_SN, request.WechatpayCertificateSerialNumber!, ignoreCase: true);
+ }
+
+ var reqA1 = GenerateMockRequestModel();
+ CreateMockClientUseRSA(autoEncrypt: false).EncryptRequestSensitiveProperty(reqA1);
+ AssertMockRequestModel(reqA1, (cipher) => Utilities.RSAUtility.DecryptWithECB(RSA_PEM_PRIVATE_KEY, cipher));
+
+ var reqA2 = GenerateMockRequestModel();
+ CreateMockClientUseSM2(autoEncrypt: false).EncryptRequestSensitiveProperty(reqA2);
+ AssertMockRequestModel(reqA2, (cipher) => Utilities.SM2Utility.Decrypt(SM2_PEM_PRIVATE_KEY, cipher));
+
+ var reqB1 = GenerateMockRequestModel();
+ await CreateMockClientUseRSA(autoEncrypt: true).ExecuteCreateMerchantRiskManageTradeUnionInformationReportAsync(reqB1);
+ AssertMockRequestModel(reqB1, (cipher) => Utilities.RSAUtility.DecryptWithECB(RSA_PEM_PRIVATE_KEY, cipher));
+
+ var reqB2 = GenerateMockRequestModel();
+ await CreateMockClientUseSM2(autoEncrypt: true).ExecuteCreateMerchantRiskManageTradeUnionInformationReportAsync(reqB2);
+ AssertMockRequestModel(reqB2, (cipher) => Utilities.SM2Utility.Decrypt(SM2_PEM_PRIVATE_KEY, cipher));
+ }
+
[Fact(DisplayName = "测试用例:加密请求中的敏感数据([POST] /merchants)")]
public async Task TestEncryptRequestSensitiveProperty_AddHKSubMerchantRequest()
{