diff --git a/docs/WechatTenpayV3/Basic_ModelDefinition.md b/docs/WechatTenpayV3/Basic_ModelDefinition.md index 80473643..986be92e 100644 --- a/docs/WechatTenpayV3/Basic_ModelDefinition.md +++ b/docs/WechatTenpayV3/Basic_ModelDefinition.md @@ -70,6 +70,7 @@ | √ | 商户管理:商户开户意愿确认 | 合作伙伴 | | | √ | 商户管理:商户平台处置通知 | 合作伙伴 | | | √ | 商户管理:不活跃商户身份核实 | 合作伙伴 | | +| √ | 商户管理:商户管理记录 | 合作伙伴 | | | √ | 其他:消费卡 | 直连商户 & 合作伙伴 | | | √ | 其他:代扣服务切卡组件 | 直连商户 & 合作伙伴 | | | √ | 其他:图片上传(营销专用) | 直连商户 & 合作伙伴 | | @@ -1524,6 +1525,24 @@ - 查询不活跃商户身份核实结果:`GetComplianceInactiveMerchantIdentityVerificationByVerificationId` + - 商户管理记录 + + - 分页查询子商户名下的商户管理记录:`QueryMerchantManageRecords` + + - 查询子商户下指定商户管理记录:`GetMerchantManageRecord` + + - 对指定商户管理记录提交资料:`CreateMerchantManageRecordSubmission` + + - 上传商户提交资料文件:`UploadMerchantManageSubmissionFile` + + - 分页查询子商户名下的交易拦截记录:`QueryTransactionBlockRecords` + + - 查询子商户交易拦截记录详情:`GetTransactionBlockRecord` + + - 发起交易拦截申诉:`CreateTransactionBlockSubmission` + + - 查询交易拦截申诉详情:`GetTransactionBlockSubmission` + - 扩展工具 - 电商订单实名校验 diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMerchantManageExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMerchantManageExtensions.cs new file mode 100644 index 00000000..7d19e2c3 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMerchantManageExtensions.cs @@ -0,0 +1,117 @@ +using System; +using System.Net.Http; +using System.Threading; +using System.Threading.Tasks; +using Flurl.Http; + +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 +{ + using SKIT.FlurlHttpClient.Primitives; + + public static class WechatTenpayClientExecuteMerchantManageExtensions + { + /// + /// 异步调用 [GET] /mch-manage/mch-manage-records/sub-mchid/{sub_mchid} 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteQueryMerchantManageRecordsAsync(this WechatTenpayClient client, Models.QueryMerchantManageRecordsRequest 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.Get, "mch-manage", "mch-manage-records", "sub-mchid", request.SubMerchantId) + .SetQueryParam("manage_record_type", request.ManageRecordType) + .SetQueryParam("manage_record_state", request.ManageRecordState) + .SetQueryParam("limit", request.Limit) + .SetQueryParam("offset", request.Offset); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [GET] /mch-manage/mch-manage-records/{manage_record_id} 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteGetMerchantManageRecordAsync(this WechatTenpayClient client, Models.GetMerchantManageRecordRequest 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.Get, "mch-manage", "mch-manage-records", request.ManageRecordId) + .SetQueryParam("sub_mchid", request.SubMerchantId); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [POST] /mch-manage/mch-manage-records/{manage_record_id}/mch-manage-submissions 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteCreateMerchantManageRecordSubmissionAsync(this WechatTenpayClient client, Models.CreateMerchantManageRecordSubmissionRequest 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, "mch-manage", "mch-manage-records", request.ManageRecordId, "mch-manage-submissions"); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [POST] /mch-manage/submission-files/sub-mchid/{sub_mchid}/upload 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteUploadMerchantManageSubmissionFileAsync(this WechatTenpayClient client, Models.UploadMerchantManageSubmissionFileRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + if (request.FileName is null) + request.FileName = Guid.NewGuid().ToString("N").ToLower(); + + if (request.FileHash is null) + request.FileHash = EncodedString.ToHexString(Utilities.SHA256Utility.Hash(request.FileBytes)).Value!.ToLower(); + + if (request.FileContentType is null) + request.FileContentType = MimeTypes.GetMimeMapping(request.FileName!); + + IFlurlRequest flurlReq = client + .CreateFlurlRequest(request, HttpMethod.Post, "mch-manage", "submission-files", "sub-mchid", request.SubMerchantId, "upload"); + + using var httpContent = Utilities.HttpContentBuilder.BuildWithFile(fileName: request.FileName, fileBytes: request.FileBytes, fileContentType: request.FileContentType, fileMetaJson: client.JsonSerializer.Serialize(request), formDataName: "submission_file"); + httpContent.Add(new StringContent(request.ItemId), "item_id"); + return await client.SendFlurlRequestAsync(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken).ConfigureAwait(false); + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteTransactionBlockExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteTransactionBlockExtensions.cs new file mode 100644 index 00000000..ea9d382f --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteTransactionBlockExtensions.cs @@ -0,0 +1,104 @@ +using System; +using System.Net.Http; +using System.Threading; +using System.Threading.Tasks; +using Flurl.Http; + +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 +{ + using SKIT.FlurlHttpClient.Primitives; + + public static class WechatTenpayClientExecuteTransactionBlockExtensions + { + /// + /// 异步调用 [GET] /transaction-block/transaction-block-records/sub-mchid/{sub_mchid} 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteQueryTransactionBlockRecordsAsync(this WechatTenpayClient client, Models.QueryTransactionBlockRecordsRequest 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.Get, "transaction-block", "transaction-block-records", "sub-mchid", request.SubMerchantId) + .SetQueryParam("limit", request.Limit) + .SetQueryParam("offset", request.Offset); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [GET] /transaction-block/transaction-block-records/{block_record_id} 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteGetTransactionBlockRecordAsync(this WechatTenpayClient client, Models.GetTransactionBlockRecordRequest 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.Get, "transaction-block", "transaction-block-records", request.BlockRecordId) + .SetQueryParam("sub_mchid", request.SubMerchantId); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [POST] /transaction-block/transaction-block-submissions/sub-mchid/{sub_mchid} 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteCreateTransactionBlockSubmissionAsync(this WechatTenpayClient client, Models.CreateTransactionBlockSubmissionRequest 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, "transaction-block", "transaction-block-submissions", "sub-mchid", request.SubMerchantId); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [GET] /transaction-block/transaction-block-submissions/{block_submission_id} 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteGetTransactionBlockSubmissionAsync(this WechatTenpayClient client, Models.GetTransactionBlockSubmissionRequest 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.Get, "transaction-block", "transaction-block-submissions", request.BlockSubmissionId); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantManage/CreateMerchantManageRecordSubmissionRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantManage/CreateMerchantManageRecordSubmissionRequest.cs new file mode 100644 index 00000000..4157c1be --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantManage/CreateMerchantManageRecordSubmissionRequest.cs @@ -0,0 +1,29 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /mch-manage/mch-manage-records/{manage_record_id}/mch-manage-submissions 接口的请求。 + /// + public class CreateMerchantManageRecordSubmissionRequest : WechatTenpayRequest + { + /// + /// 获取或设置子商户号。 + /// + [Newtonsoft.Json.JsonProperty("sub_mchid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_mchid")] + public string SubMerchantId { get; set; } = string.Empty; + + /// + /// 获取或设置商户管理记录 ID。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string ManageRecordId { get; set; } = string.Empty; + + /// + /// 获取或设置提交数据(JSON 格式)。 + /// + [Newtonsoft.Json.JsonProperty("submit_data")] + [System.Text.Json.Serialization.JsonPropertyName("submit_data")] + public string SubmitData { get; set; } = "{}"; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantManage/CreateMerchantManageRecordSubmissionResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantManage/CreateMerchantManageRecordSubmissionResponse.cs new file mode 100644 index 00000000..9eea396a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantManage/CreateMerchantManageRecordSubmissionResponse.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /mch-manage/mch-manage-records/{manage_record_id}/mch-manage-submissions 接口的响应。 + /// + public class CreateMerchantManageRecordSubmissionResponse : WechatTenpayResponse + { + /// + /// 获取或设置商户管理提交资料记录 ID。 + /// + [Newtonsoft.Json.JsonProperty("manage_submission_id")] + [System.Text.Json.Serialization.JsonPropertyName("manage_submission_id")] + public string ManageSubmissionId { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantManage/GetMerchantManageRecordRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantManage/GetMerchantManageRecordRequest.cs new file mode 100644 index 00000000..40e2e549 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantManage/GetMerchantManageRecordRequest.cs @@ -0,0 +1,22 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /mch-manage/mch-manage-records/{manage_record_id} 接口的请求。 + /// + public class GetMerchantManageRecordRequest : WechatTenpayRequest + { + /// + /// 获取或设置子商户号。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string SubMerchantId { get; set; } = string.Empty; + + /// + /// 获取或设置商户管理记录 ID。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string ManageRecordId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantManage/GetMerchantManageRecordResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantManage/GetMerchantManageRecordResponse.cs new file mode 100644 index 00000000..b2d5990c --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantManage/GetMerchantManageRecordResponse.cs @@ -0,0 +1,139 @@ +using System; + +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /mch-manage/mch-manage-records/{manage_record_id} 接口的响应。 + /// + public class GetMerchantManageRecordResponse : WechatTenpayResponse + { + /// + /// 获取或设置子商户号。 + /// + [Newtonsoft.Json.JsonProperty("sub_mchid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_mchid")] + public string SubMerchantId { get; set; } = default!; + + /// + /// 获取或设置商户管理记录 ID。 + /// + [Newtonsoft.Json.JsonProperty("manage_record_id")] + [System.Text.Json.Serialization.JsonPropertyName("manage_record_id")] + public string ManageRecordId { get; set; } = default!; + + /// + /// 获取或设置商户管理记录类型。 + /// + [Newtonsoft.Json.JsonProperty("manage_record_type")] + [System.Text.Json.Serialization.JsonPropertyName("manage_record_type")] + public string ManageRecordType { get; set; } = default!; + + /// + /// 获取或设置商户管理记录状态。 + /// + [Newtonsoft.Json.JsonProperty("manage_record_state")] + [System.Text.Json.Serialization.JsonPropertyName("manage_record_state")] + public string ManageRecordState { get; set; } = default!; + + /// + /// 获取或设置管控时间。 + /// + [Newtonsoft.Json.JsonProperty("manage_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("manage_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))] + public DateTimeOffset ManageTime { get; set; } + + /// + /// 获取或设置管控原因。 + /// + [Newtonsoft.Json.JsonProperty("manage_reason")] + [System.Text.Json.Serialization.JsonPropertyName("manage_reason")] + public string ManageReason { get; set; } = default!; + + /// + /// 获取或设置限制功能。 + /// + [Newtonsoft.Json.JsonProperty("limit_ability")] + [System.Text.Json.Serialization.JsonPropertyName("limit_ability")] + public string? LimitAbility { get; set; } + + /// + /// 获取或设置解除管控方式。 + /// + [Newtonsoft.Json.JsonProperty("recover_way")] + [System.Text.Json.Serialization.JsonPropertyName("recover_way")] + public string? RecoverWay { get; set; } + + /// + /// 获取或设置是否允许提交资料。 + /// + [Newtonsoft.Json.JsonProperty("allow_submit")] + [System.Text.Json.Serialization.JsonPropertyName("allow_submit")] + public bool IsAllowSubmit { get; set; } + + /// + /// 获取或设置禁止提交资料原因。 + /// + [Newtonsoft.Json.JsonProperty("forbid_submit_reason")] + [System.Text.Json.Serialization.JsonPropertyName("forbid_submit_reason")] + public string? ForbidSubmitReason { get; set; } + + /// + /// 获取或设置可提交资料开始时间。 + /// + [Newtonsoft.Json.JsonProperty("submit_start_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("submit_start_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))] + public DateTimeOffset? SubmitStartTime { get; set; } + + /// + /// 获取或设置可提交资料结束时间。 + /// + [Newtonsoft.Json.JsonProperty("submit_end_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("submit_end_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))] + public DateTimeOffset? SubmitEndTime { get; set; } + + /// + /// 获取或设置要求提交的资料(JSON 格式)。 + /// + [Newtonsoft.Json.JsonProperty("requested_item_info")] + [System.Text.Json.Serialization.JsonPropertyName("requested_item_info")] + public string? RequestedData { get; set; } + + /// + /// 获取或设置解除管控原因。 + /// + [Newtonsoft.Json.JsonProperty("recover_reason")] + [System.Text.Json.Serialization.JsonPropertyName("recover_reason")] + public string? RecoverReason { get; set; } + + /// + /// 获取或设置解除管控时间。 + /// + [Newtonsoft.Json.JsonProperty("recover_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("recover_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))] + public DateTimeOffset? RecoverTime { get; set; } + + /// + /// 获取或设置申诉驳回原因。 + /// + [Newtonsoft.Json.JsonProperty("reject_reason")] + [System.Text.Json.Serialization.JsonPropertyName("reject_reason")] + public string? RejectReason { get; set; } + + /// + /// 获取或设置审核时间。 + /// + [Newtonsoft.Json.JsonProperty("approve_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("approve_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))] + public DateTimeOffset? ApproveTime { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantManage/QueryMerchantManageRecordsRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantManage/QueryMerchantManageRecordsRequest.cs new file mode 100644 index 00000000..4cc1f12c --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantManage/QueryMerchantManageRecordsRequest.cs @@ -0,0 +1,44 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /mch-manage/mch-manage-records/sub-mchid/{sub_mchid} 接口的请求。 + /// + public class QueryMerchantManageRecordsRequest : WechatTenpayRequest + { + /// + /// 获取或设置子商户号。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string SubMerchantId { get; set; } = string.Empty; + + /// + /// 获取或设置商户管理记录类型。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string? ManageRecordType { get; set; } + + /// + /// 获取或设置商户管理记录状态。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string? ManageRecordState { get; set; } + + /// + /// 获取或设置分页大小。 + /// 默认值:10 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public int Limit { get; set; } + + /// + /// 获取或设置分页开始位置。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public int? Offset { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantManage/QueryMerchantManageRecordsResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantManage/QueryMerchantManageRecordsResponse.cs new file mode 100644 index 00000000..51bd5819 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantManage/QueryMerchantManageRecordsResponse.cs @@ -0,0 +1,173 @@ +using System; + +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /mch-manage/mch-manage-records/sub-mchid/{sub_mchid} 接口的响应。 + /// + public class QueryMerchantManageRecordsResponse : WechatTenpayResponse + { + public static class Types + { + public class Record + { + /// + /// 获取或设置子商户号。 + /// + [Newtonsoft.Json.JsonProperty("sub_mchid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_mchid")] + public string SubMerchantId { get; set; } = default!; + + /// + /// 获取或设置商户管理记录 ID。 + /// + [Newtonsoft.Json.JsonProperty("manage_record_id")] + [System.Text.Json.Serialization.JsonPropertyName("manage_record_id")] + public string ManageRecordId { get; set; } = default!; + + /// + /// 获取或设置商户管理记录类型。 + /// + [Newtonsoft.Json.JsonProperty("manage_record_type")] + [System.Text.Json.Serialization.JsonPropertyName("manage_record_type")] + public string ManageRecordType { get; set; } = default!; + + /// + /// 获取或设置商户管理记录状态。 + /// + [Newtonsoft.Json.JsonProperty("manage_record_state")] + [System.Text.Json.Serialization.JsonPropertyName("manage_record_state")] + public string ManageRecordState { get; set; } = default!; + + /// + /// 获取或设置管控时间。 + /// + [Newtonsoft.Json.JsonProperty("manage_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("manage_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))] + public DateTimeOffset ManageTime { get; set; } + + /// + /// 获取或设置管控原因。 + /// + [Newtonsoft.Json.JsonProperty("manage_reason")] + [System.Text.Json.Serialization.JsonPropertyName("manage_reason")] + public string ManageReason { get; set; } = default!; + + /// + /// 获取或设置限制功能。 + /// + [Newtonsoft.Json.JsonProperty("limit_ability")] + [System.Text.Json.Serialization.JsonPropertyName("limit_ability")] + public string? LimitAbility { get; set; } + + /// + /// 获取或设置解除管控方式。 + /// + [Newtonsoft.Json.JsonProperty("recover_way")] + [System.Text.Json.Serialization.JsonPropertyName("recover_way")] + public string? RecoverWay { get; set; } + + /// + /// 获取或设置是否允许提交资料。 + /// + [Newtonsoft.Json.JsonProperty("allow_submit")] + [System.Text.Json.Serialization.JsonPropertyName("allow_submit")] + public bool IsAllowSubmit { get; set; } + + /// + /// 获取或设置禁止提交资料原因。 + /// + [Newtonsoft.Json.JsonProperty("forbid_submit_reason")] + [System.Text.Json.Serialization.JsonPropertyName("forbid_submit_reason")] + public string? ForbidSubmitReason { get; set; } + + /// + /// 获取或设置可提交资料开始时间。 + /// + [Newtonsoft.Json.JsonProperty("submit_start_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("submit_start_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))] + public DateTimeOffset? SubmitStartTime { get; set; } + + /// + /// 获取或设置可提交资料结束时间。 + /// + [Newtonsoft.Json.JsonProperty("submit_end_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("submit_end_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))] + public DateTimeOffset? SubmitEndTime { get; set; } + + /// + /// 获取或设置要求提交的资料(JSON 格式)。 + /// + [Newtonsoft.Json.JsonProperty("requested_item_info")] + [System.Text.Json.Serialization.JsonPropertyName("requested_item_info")] + public string? RequestedData { get; set; } + + /// + /// 获取或设置解除管控原因。 + /// + [Newtonsoft.Json.JsonProperty("recover_reason")] + [System.Text.Json.Serialization.JsonPropertyName("recover_reason")] + public string? RecoverReason { get; set; } + + /// + /// 获取或设置解除管控时间。 + /// + [Newtonsoft.Json.JsonProperty("recover_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("recover_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))] + public DateTimeOffset? RecoverTime { get; set; } + + /// + /// 获取或设置申诉驳回原因。 + /// + [Newtonsoft.Json.JsonProperty("reject_reason")] + [System.Text.Json.Serialization.JsonPropertyName("reject_reason")] + public string? RejectReason { get; set; } + + /// + /// 获取或设置审核时间。 + /// + [Newtonsoft.Json.JsonProperty("approve_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("approve_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))] + public DateTimeOffset? ApproveTime { get; set; } + } + } + + /// + /// 获取或设置商户管理记录列表。 + /// + [Newtonsoft.Json.JsonProperty("data")] + [System.Text.Json.Serialization.JsonPropertyName("data")] + public Types.Record[] RecordList { get; set; } = default!; + + /// + /// 获取或设置分页大小。 + /// + [Newtonsoft.Json.JsonProperty("limit")] + [System.Text.Json.Serialization.JsonPropertyName("limit")] + public int Limit { get; set; } + + /// + /// 获取或设置分页开始位置。 + /// + [Newtonsoft.Json.JsonProperty("offset")] + [System.Text.Json.Serialization.JsonPropertyName("offset")] + public int Offset { get; set; } + + /// + /// 获取或设置券总数量。 + /// + [Newtonsoft.Json.JsonProperty("total_count")] + [System.Text.Json.Serialization.JsonPropertyName("total_count")] + public int TotalCount { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantManage/UploadMerchantManageSubmissionFileRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantManage/UploadMerchantManageSubmissionFileRequest.cs new file mode 100644 index 00000000..d1257c14 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantManage/UploadMerchantManageSubmissionFileRequest.cs @@ -0,0 +1,52 @@ +using System; + +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /mch-manage/submission-files/sub-mchid/{sub_mchid}/upload 接口的请求。 + /// + public class UploadMerchantManageSubmissionFileRequest : WechatTenpayRequest + { + /// + /// 获取或设置子商户号。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string SubMerchantId { get; set; } = string.Empty; + + /// + /// 获取或设置资料项 ID。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string ItemId { get; set; } = string.Empty; + + /// + /// 获取或设置文件字节数组。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public byte[] FileBytes { get; set; } = Array.Empty(); + + /// + /// 获取或设置文件名。如果不指定将由系统自动生成。 + /// + [Newtonsoft.Json.JsonProperty("file_name")] + [System.Text.Json.Serialization.JsonPropertyName("file_name")] + public string? FileName { get; set; } + + /// + /// 获取或设置文件摘要。如果不指定将由系统自动生成。 + /// + [Newtonsoft.Json.JsonProperty("file_digest")] + [System.Text.Json.Serialization.JsonPropertyName("file_digest")] + public string? FileHash { get; set; } + + /// + /// 获取或设置文件 Conent-Type。如果不指定将由系统自动生成。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string? FileContentType { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantManage/UploadMerchantManageSubmissionFileResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantManage/UploadMerchantManageSubmissionFileResponse.cs new file mode 100644 index 00000000..5d8c709a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantManage/UploadMerchantManageSubmissionFileResponse.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /mch-manage/submission-files/sub-mchid/{sub_mchid}/upload 接口的响应。 + /// + public class UploadMerchantManageSubmissionFileResponse : WechatTenpayResponse + { + /// + /// 获取或设置文件 ID。 + /// + [Newtonsoft.Json.JsonProperty("file_id")] + [System.Text.Json.Serialization.JsonPropertyName("file_id")] + public string FileId { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/TransactionBlock/CreateTransactionBlockSubmissionRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/TransactionBlock/CreateTransactionBlockSubmissionRequest.cs new file mode 100644 index 00000000..90633d0b --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/TransactionBlock/CreateTransactionBlockSubmissionRequest.cs @@ -0,0 +1,29 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /transaction-block/transaction-block-submissions/sub-mchid/{sub_mchid} 接口的请求。 + /// + public class CreateTransactionBlockSubmissionRequest : WechatTenpayRequest + { + /// + /// 获取或设置子商户号。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string SubMerchantId { get; set; } = string.Empty; + + /// + /// 获取或设置商户申诉单号。 + /// + [Newtonsoft.Json.JsonProperty("merchant_submit_id")] + [System.Text.Json.Serialization.JsonPropertyName("merchant_submit_id")] + public string MerchantSubmitId { get; set; } = string.Empty; + + /// + /// 获取或设置提交数据(JSON 格式)。 + /// + [Newtonsoft.Json.JsonProperty("submit_data")] + [System.Text.Json.Serialization.JsonPropertyName("submit_data")] + public string SubmitData { get; set; } = "{}"; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/TransactionBlock/CreateTransactionBlockSubmissionResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/TransactionBlock/CreateTransactionBlockSubmissionResponse.cs new file mode 100644 index 00000000..94125685 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/TransactionBlock/CreateTransactionBlockSubmissionResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /transaction-block/transaction-block-submissions/sub-mchid/{sub_mchid} 接口的响应。 + /// + public class CreateTransactionBlockSubmissionResponse : GetTransactionBlockSubmissionResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/TransactionBlock/GetTransactionBlockRecordRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/TransactionBlock/GetTransactionBlockRecordRequest.cs new file mode 100644 index 00000000..e6682b9c --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/TransactionBlock/GetTransactionBlockRecordRequest.cs @@ -0,0 +1,22 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /transaction-block/transaction-block-records/{block_record_id} 接口的请求。 + /// + public class GetTransactionBlockRecordRequest : WechatTenpayRequest + { + /// + /// 获取或设置子商户号。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string SubMerchantId { get; set; } = string.Empty; + + /// + /// 获取或设置交易拦截记录 ID。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string BlockRecordId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/TransactionBlock/GetTransactionBlockRecordResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/TransactionBlock/GetTransactionBlockRecordResponse.cs new file mode 100644 index 00000000..bc16c556 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/TransactionBlock/GetTransactionBlockRecordResponse.cs @@ -0,0 +1,54 @@ +using System; + +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /transaction-block/transaction-block-records/{block_record_id} 接口的响应。 + /// + public class GetTransactionBlockRecordResponse : WechatTenpayResponse + { + /// + /// 获取或设置交易拦截记录 ID。 + /// + [Newtonsoft.Json.JsonProperty("block_record_id")] + [System.Text.Json.Serialization.JsonPropertyName("block_record_id")] + public string BlockRecordId { get; set; } = default!; + + /// + /// 获取或设置拦截时间。 + /// + [Newtonsoft.Json.JsonProperty("block_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("block_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))] + public DateTimeOffset BlockTime { get; set; } + + /// + /// 获取或设置拦截原因。 + /// + [Newtonsoft.Json.JsonProperty("block_reason")] + [System.Text.Json.Serialization.JsonPropertyName("block_reason")] + public string BlockReason { get; set; } = default!; + + /// + /// 获取或设置拦截笔数。 + /// + [Newtonsoft.Json.JsonProperty("number_of_block")] + [System.Text.Json.Serialization.JsonPropertyName("number_of_block")] + public string? NumberOfBlock { get; set; } + + /// + /// 获取或设置解除管控方式。 + /// + [Newtonsoft.Json.JsonProperty("recover_way")] + [System.Text.Json.Serialization.JsonPropertyName("recover_way")] + public string? RecoverWay { get; set; } + + /// + /// 获取或设置要求提交的资料(JSON 格式)。 + /// + [Newtonsoft.Json.JsonProperty("requested_item_info")] + [System.Text.Json.Serialization.JsonPropertyName("requested_item_info")] + public string? RequestedData { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/TransactionBlock/GetTransactionBlockSubmissionRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/TransactionBlock/GetTransactionBlockSubmissionRequest.cs new file mode 100644 index 00000000..fc01b6b6 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/TransactionBlock/GetTransactionBlockSubmissionRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /transaction-block/transaction-block-submissions/{block_submission_id} 接口的请求。 + /// + public class GetTransactionBlockSubmissionRequest : WechatTenpayRequest + { + /// + /// 获取或设置交易拦截申诉 ID。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string BlockSubmissionId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/TransactionBlock/GetTransactionBlockSubmissionResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/TransactionBlock/GetTransactionBlockSubmissionResponse.cs new file mode 100644 index 00000000..1e5826ff --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/TransactionBlock/GetTransactionBlockSubmissionResponse.cs @@ -0,0 +1,49 @@ +using System; + +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /transaction-block/transaction-block-submissions/{block_submission_id} 接口的响应。 + /// + public class GetTransactionBlockSubmissionResponse : WechatTenpayResponse + { + /// + /// 获取或设置交易拦截申诉 ID。 + /// + [Newtonsoft.Json.JsonProperty("block_submission_id")] + [System.Text.Json.Serialization.JsonPropertyName("block_submission_id")] + public string BlockSubmissionId { get; set; } = default!; + + /// + /// 获取或设置提交时间。 + /// + [Newtonsoft.Json.JsonProperty("submit_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("submit_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))] + public DateTimeOffset SubmitTime { get; set; } + + /// + /// 获取或设置审核结果。 + /// + [Newtonsoft.Json.JsonProperty("review_result")] + [System.Text.Json.Serialization.JsonPropertyName("review_result")] + public string? ReviewResult { get; set; } + + /// + /// 获取或设置审核时间。 + /// + [Newtonsoft.Json.JsonProperty("review_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("review_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))] + public DateTimeOffset? ReviewTime { get; set; } + + /// + /// 获取或设置审核驳回原因。 + /// + [Newtonsoft.Json.JsonProperty("review_reject_reason")] + [System.Text.Json.Serialization.JsonPropertyName("review_reject_reason")] + public string? ReviewRejectReason { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/TransactionBlock/QueryTransactionBlockRecordsRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/TransactionBlock/QueryTransactionBlockRecordsRequest.cs new file mode 100644 index 00000000..5e32a4b9 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/TransactionBlock/QueryTransactionBlockRecordsRequest.cs @@ -0,0 +1,30 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /transaction-block/transaction-block-records/sub-mchid/{sub_mchid} 接口的请求。 + /// + public class QueryTransactionBlockRecordsRequest : WechatTenpayRequest + { + /// + /// 获取或设置子商户号。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string SubMerchantId { get; set; } = string.Empty; + + /// + /// 获取或设置分页大小。 + /// 默认值:10 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public int Limit { get; set; } + + /// + /// 获取或设置分页开始位置。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public int? Offset { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/TransactionBlock/QueryTransactionBlockRecordsResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/TransactionBlock/QueryTransactionBlockRecordsResponse.cs new file mode 100644 index 00000000..7fbc54bc --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/TransactionBlock/QueryTransactionBlockRecordsResponse.cs @@ -0,0 +1,88 @@ +using System; + +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /transaction-block/transaction-block-records/sub-mchid/{sub_mchid} 接口的响应。 + /// + public class QueryTransactionBlockRecordsResponse : WechatTenpayResponse + { + public static class Types + { + public class Record + { + /// + /// 获取或设置交易拦截记录 ID。 + /// + [Newtonsoft.Json.JsonProperty("block_record_id")] + [System.Text.Json.Serialization.JsonPropertyName("block_record_id")] + public string BlockRecordId { get; set; } = default!; + + /// + /// 获取或设置拦截时间。 + /// + [Newtonsoft.Json.JsonProperty("block_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("block_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))] + public DateTimeOffset BlockTime { get; set; } + + /// + /// 获取或设置拦截原因。 + /// + [Newtonsoft.Json.JsonProperty("block_reason")] + [System.Text.Json.Serialization.JsonPropertyName("block_reason")] + public string BlockReason { get; set; } = default!; + + /// + /// 获取或设置拦截笔数。 + /// + [Newtonsoft.Json.JsonProperty("number_of_block")] + [System.Text.Json.Serialization.JsonPropertyName("number_of_block")] + public string? NumberOfBlock { get; set; } + + /// + /// 获取或设置解除管控方式。 + /// + [Newtonsoft.Json.JsonProperty("recover_way")] + [System.Text.Json.Serialization.JsonPropertyName("recover_way")] + public string? RecoverWay { get; set; } + + /// + /// 获取或设置要求提交的资料(JSON 格式)。 + /// + [Newtonsoft.Json.JsonProperty("requested_item_info")] + [System.Text.Json.Serialization.JsonPropertyName("requested_item_info")] + public string? RequestedData { get; set; } + } + } + + /// + /// 获取或设置交易拦截记录列表。 + /// + [Newtonsoft.Json.JsonProperty("data")] + [System.Text.Json.Serialization.JsonPropertyName("data")] + public Types.Record[] RecordList { get; set; } = default!; + + /// + /// 获取或设置分页大小。 + /// + [Newtonsoft.Json.JsonProperty("limit")] + [System.Text.Json.Serialization.JsonPropertyName("limit")] + public int Limit { get; set; } + + /// + /// 获取或设置分页开始位置。 + /// + [Newtonsoft.Json.JsonProperty("offset")] + [System.Text.Json.Serialization.JsonPropertyName("offset")] + public int Offset { get; set; } + + /// + /// 获取或设置券总数量。 + /// + [Newtonsoft.Json.JsonProperty("total_count")] + [System.Text.Json.Serialization.JsonPropertyName("total_count")] + public int TotalCount { get; set; } + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantManage/CreateMerchantManageRecordSubmissionRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantManage/CreateMerchantManageRecordSubmissionRequest.json new file mode 100644 index 00000000..7c424200 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantManage/CreateMerchantManageRecordSubmissionRequest.json @@ -0,0 +1,4 @@ +{ + "submit_data": "{ \t\"record_fields\": [{ \t\t\"item_id\": 100001, \t\t\"name\": \"身份证号\", \t\t\"type\": 1, \t\t\"field_name\": \"FCertCardId\", \t\t\"repeated_field_data\": [\"ri8U5FUSmHh1peGNBUvG+VwGHl31ymiLms5V1yhTbBWUApJDInme1b+ndtrlAielJYpQE41sSxj46ePMto2mySBIJjgCIyChLCTQ580M5pNKglAkjTnXwzJXyPhpyzkpdeFfUDjWc+qd6G4UwrL70br/EEqfQbGNaUKX6jAGjB8wd8wndImMB3iB2vUuAOL+6giLWCBBaC50QRfCTDlGi0c41Gt92tCrRSI7pWzU1cxxJwng7M53/J5PhI+eikLqbhUYlRPHYl6j0ouRItWHCRORYKuz6enluXyFwUCaaR3IeINSM8CwjHp6spnTIo70UaRJWAcZ0jQp/lwX2JVxaw==\"] \t}, { \t\t\"item_id\": 100002, \t\t\"name\": \"门店照片\", \t\t\"type\": 2, \t\t\"field_name\": \"FImages\", \t\t\"repeated_field_data\": [\"xxx1.jpg\"] \t}, { \t\t\"item_id\": 100003, \t\t\"name\": \"身份证照片\", \t\t\"type\": 2, \t\t\"field_name\": \"FImages\", \t\t\"repeated_field_data\": [\"xxx1.jpg\", \"xxx2.jpg\"] \t}, { \t\t\"item_id\": 100004, \t\t\"name\": \"店铺地址\", \t\t\"type\": 3, \t\t\"field_name\": \"FAddRess\", \t\t\"repeated_field_data\": [\"{\\\"longitude\\\":\\\"37.5\\\",\\\"latitude\\\":\\\"123.5\\\",\\\"province\\\":\\\"广东省\\\",\\\"city\\\":\\\"深圳市\\\",\\\"area\\\":\\\"南山区\\\",\\\"street\\\":\\\"XX街道\\\",\\\"address\\\":\\\"XX路XX号\\\",\\\"name\\\":\\\"XXXX公司\\\"}\"] \t}, { \t\t\"item_id\": 100005, \t\t\"name\": \"经营场景\", \t\t\"type\": 4, \t\t\"field_name\": \"FBusinessScenarios\", \t\t\"repeated_field_data\": [\"线上经营\", \"线上线下经营\"] \t}, { \t\t\"item_id\": 100006, \t\t\"name\": \"营业时间\", \t\t\"type\": 4, \t\t\"field_name\": \"FOpeningHours\", \t\t\"repeated_field_data\": [\"09:00:00\", \"20:00:00\"] \t}] }", + "sub_mchid": "123000110" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantManage/CreateMerchantManageRecordSubmissionResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantManage/CreateMerchantManageRecordSubmissionResponse.json new file mode 100644 index 00000000..441a9acc --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantManage/CreateMerchantManageRecordSubmissionResponse.json @@ -0,0 +1,3 @@ +{ + "manage_submission_id": "S0120190217140201012345672111223" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantManage/GetMerchantManageRecordResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantManage/GetMerchantManageRecordResponse.json new file mode 100644 index 00000000..ac3085ac --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantManage/GetMerchantManageRecordResponse.json @@ -0,0 +1,19 @@ +{ + "sub_mchid": "123000110", + "manage_record_id": "M1210999900435123451697535102441", + "manage_record_type": "FUNCTIONAL_LIMIT_RECORD", + "manage_time": "2018-06-08T10:34:56+08:00", + "manage_reason": "涉嫌信用卡套现", + "limit_ability": "关闭支付权限,关闭体现权限", + "recover_way": "SUBMIT_INFORMATION", + "allow_submit": true, + "forbid_submit_reason": "应平台管理要求,此单据不支持申诉", + "submit_start_time": "2018-06-08T10:34:56+08:00", + "submit_end_time": "2018-06-08T10:34:56+08:00", + "requested_item_info": "{ \t\"record_fields\": [{ \t\t\t\"item_id\": \"100004\", \t\t\t\"field_name\": \"legal_person_card_id\", \t\t\t\"name\": \"企业法人身份证号\", \t\t\t\"type\": 1, \t\t\t\"tips\": \"\", \t\t\t\"placeholder\": \"请输入企业法人身份证号\", \t\t\t\"tooltip\": \"需要填写完整身份证号\", \t\t\t\"required\": 1, \t\t\t\"string_check_rule\": { \t\t\t\t\"min_string_length\": 1, \t\t\t\t\"max_string_length\": 50, \t\t\t\t\"validator\": \"idcard\" \t\t\t}, \t\t\t\"need_encrypt\": true \t\t}, \t\t{ \t\t\t\"item_id\": \"100005\", \t\t\t\"field_name\": \"legal_person_cert_type\", \t\t\t\"name\": \"企业法人证件类型\", \t\t\t\"type\": 4, \t\t\t\"tips\": \"\", \t\t\t\"placeholder\": \"请选择证件类型\", \t\t\t\"tooltip\": \"\", \t\t\t\"required\": 0, \t\t\t\"enum_check_rule\": { \t\t\t\t\"min_list_length\": 1, \t\t\t\t\"max_list_length\": 1, \t\t\t\t\"enum_values\": [\"大陆居民身份证\", \"港澳台通行证\"] \t\t\t}, \t\t\t\"need_encrypt\": false \t\t}, \t\t{ \t\t\t\"item_id\": \"100006\", \t\t\t\"field_name\": \"inland_cert_card_image\", \t\t\t\"name\": \"大陆居民身份证照片\", \t\t\t\"type\": 2, \t\t\t\"tips\": \"请上传图片\", \t\t\t\"placeholder\": \"\", \t\t\t\"tooltip\": \"需要正面和反面两张照片\", \t\t\t\"required\": 1, \t\t\t\"need_encrypt\": false, \t\t\t\"file_check_rule\": { \t\t\t\t\"min_list_length\": 2, \t\t\t\t\"max_list_length\": 2, \t\t\t\t\"enum_file_exts\": [\"png\", \"jpg\", \"jpeg\"], \t\t\t\t\"max_file_size\": 5 \t\t\t}, \t\t\t\"relations\": [{ \t\t\t\t\"source_key\": 100005, \t\t\t\t\"source_value\": \"大陆居民身份证\" \t\t\t}] \t\t} \t] }", + "manage_record_state": "PENDING", + "recover_time": "2018-06-08T10:34:56+08:00", + "recover_reason": "MERCHANT_SUBMIT_RECOVER", + "reject_reason": "身份证信息遮挡,请上传清晰的身份证图片", + "approve_time": "2018-06-08T10:34:56+08:00" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantManage/QueryMerchantManageRecordsResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantManage/QueryMerchantManageRecordsResponse.json new file mode 100644 index 00000000..7224383b --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantManage/QueryMerchantManageRecordsResponse.json @@ -0,0 +1,26 @@ +{ + "data": [ + { + "sub_mchid": "123000110", + "manage_record_id": "M1210999900435123451697535102441", + "manage_record_type": "FUNCTIONAL_LIMIT_RECORD", + "manage_time": "2018-06-08T10:34:56+08:00", + "manage_reason": "涉嫌信用卡套现", + "limit_ability": "关闭支付权限,关闭体现权限", + "recover_way": "SUBMIT_INFORMATION", + "allow_submit": true, + "forbid_submit_reason": "应平台管理要求,此单据不支持申诉", + "submit_start_time": "2018-06-08T10:34:56+08:00", + "submit_end_time": "2018-06-08T10:34:56+08:00", + "requested_item_info": "{ \t\"record_fields\": [{ \t\t\t\"item_id\": \"100004\", \t\t\t\"field_name\": \"legal_person_card_id\", \t\t\t\"name\": \"企业法人身份证号\", \t\t\t\"type\": 1, \t\t\t\"tips\": \"\", \t\t\t\"placeholder\": \"请输入企业法人身份证号\", \t\t\t\"tooltip\": \"需要填写完整身份证号\", \t\t\t\"required\": 1, \t\t\t\"string_check_rule\": { \t\t\t\t\"min_string_length\": 1, \t\t\t\t\"max_string_length\": 50, \t\t\t\t\"validator\": \"idcard\" \t\t\t}, \t\t\t\"need_encrypt\": true \t\t}, \t\t{ \t\t\t\"item_id\": \"100005\", \t\t\t\"field_name\": \"legal_person_cert_type\", \t\t\t\"name\": \"企业法人证件类型\", \t\t\t\"type\": 4, \t\t\t\"tips\": \"\", \t\t\t\"placeholder\": \"请选择证件类型\", \t\t\t\"tooltip\": \"\", \t\t\t\"required\": 0, \t\t\t\"enum_check_rule\": { \t\t\t\t\"min_list_length\": 1, \t\t\t\t\"max_list_length\": 1, \t\t\t\t\"enum_values\": [\"大陆居民身份证\", \"港澳台通行证\"] \t\t\t}, \t\t\t\"need_encrypt\": false \t\t}, \t\t{ \t\t\t\"item_id\": \"100006\", \t\t\t\"field_name\": \"inland_cert_card_image\", \t\t\t\"name\": \"大陆居民身份证照片\", \t\t\t\"type\": 2, \t\t\t\"tips\": \"请上传图片\", \t\t\t\"placeholder\": \"\", \t\t\t\"tooltip\": \"需要正面和反面两张照片\", \t\t\t\"required\": 1, \t\t\t\"need_encrypt\": false, \t\t\t\"file_check_rule\": { \t\t\t\t\"min_list_length\": 2, \t\t\t\t\"max_list_length\": 2, \t\t\t\t\"enum_file_exts\": [\"png\", \"jpg\", \"jpeg\"], \t\t\t\t\"max_file_size\": 5 \t\t\t}, \t\t\t\"relations\": [{ \t\t\t\t\"source_key\": 100005, \t\t\t\t\"source_value\": \"大陆居民身份证\" \t\t\t}] \t\t} \t] }", + "manage_record_state": "PENDING", + "recover_time": "2018-06-08T10:34:56+08:00", + "recover_reason": "MERCHANT_SUBMIT_RECOVER", + "reject_reason": "身份证信息遮挡,请上传清晰的身份证图片", + "approve_time": "2018-06-08T10:34:56+08:00" + } + ], + "offset": 10, + "limit": 5, + "total_count": 1234 +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantManage/UploadMerchantManageSubmissionFileRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantManage/UploadMerchantManageSubmissionFileRequest.json new file mode 100644 index 00000000..7b097835 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantManage/UploadMerchantManageSubmissionFileRequest.json @@ -0,0 +1,4 @@ +{ + "file_name": "filea.jpg", + "file_digest": "B94D27B9934D3E08A52E52D7DA7DABFAC484EFE37A5380EE9088F7ACE2EFCDE9" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantManage/UploadMerchantManageSubmissionFileResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantManage/UploadMerchantManageSubmissionFileResponse.json new file mode 100644 index 00000000..c812d0e4 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantManage/UploadMerchantManageSubmissionFileResponse.json @@ -0,0 +1,3 @@ +{ + "file_id": "dklfjaljdflakjfkljasdf.jpg" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/TransactionBlock/CreateTransactionBlockSubmissionRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/TransactionBlock/CreateTransactionBlockSubmissionRequest.json new file mode 100644 index 00000000..77e23b70 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/TransactionBlock/CreateTransactionBlockSubmissionRequest.json @@ -0,0 +1,4 @@ +{ + "submit_data": "{ \t\"record_fields\": [{ \t\t\"item_id\": 100001, \t\t\"name\": \"身份证号\", \t\t\"type\": 1, \t\t\"field_name\": \"FCertCardId\", \t\t\"repeated_field_data\": [\"ri8U5FUSmHh1peGNBUvG+VwGHl31ymiLms5V1yhTbBWUApJDInme1b+ndtrlAielJYpQE41sSxj46ePMto2mySBIJjgCIyChLCTQ580M5pNKglAkjTnXwzJXyPhpyzkpdeFfUDjWc+qd6G4UwrL70br/EEqfQbGNaUKX6jAGjB8wd8wndImMB3iB2vUuAOL+6giLWCBBaC50QRfCTDlGi0c41Gt92tCrRSI7pWzU1cxxJwng7M53/J5PhI+eikLqbhUYlRPHYl6j0ouRItWHCRORYKuz6enluXyFwUCaaR3IeINSM8CwjHp6spnTIo70UaRJWAcZ0jQp/lwX2JVxaw==\"] \t}, { \t\t\"item_id\": 100002, \t\t\"name\": \"门店照片\", \t\t\"type\": 2, \t\t\"field_name\": \"FImages\", \t\t\"repeated_field_data\": [\"xxx1.jpg\"] \t}, { \t\t\"item_id\": 100003, \t\t\"name\": \"身份证照片\", \t\t\"type\": 2, \t\t\"field_name\": \"FImages\", \t\t\"repeated_field_data\": [\"xxx1.jpg\", \"xxx2.jpg\"] \t}, { \t\t\"item_id\": 100004, \t\t\"name\": \"店铺地址\", \t\t\"type\": 3, \t\t\"field_name\": \"FAddRess\", \t\t\"repeated_field_data\": [\"{\\\"longitude\\\":\\\"37.5\\\",\\\"latitude\\\":\\\"123.5\\\",\\\"province\\\":\\\"广东省\\\",\\\"city\\\":\\\"深圳市\\\",\\\"area\\\":\\\"南山区\\\",\\\"street\\\":\\\"XX街道\\\",\\\"address\\\":\\\"XX路XX号\\\",\\\"name\\\":\\\"XXXX公司\\\"}\"] \t}, { \t\t\"item_id\": 100005, \t\t\"name\": \"经营场景\", \t\t\"type\": 4, \t\t\"field_name\": \"FBusinessScenarios\", \t\t\"repeated_field_data\": [\"线上经营\", \"线上线下经营\"] \t}, { \t\t\"item_id\": 100006, \t\t\"name\": \"营业时间\", \t\t\"type\": 4, \t\t\"field_name\": \"FOpeningHours\", \t\t\"repeated_field_data\": [\"09:00:00\", \"20:00:00\"] \t}] }", + "merchant_submit_id": "ABC123456789" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/TransactionBlock/CreateTransactionBlockSubmissionResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/TransactionBlock/CreateTransactionBlockSubmissionResponse.json new file mode 100644 index 00000000..a18ad3c5 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/TransactionBlock/CreateTransactionBlockSubmissionResponse.json @@ -0,0 +1,7 @@ +{ + "block_submission_id": "B021234566799876aacsecd", + "submit_time": "2018-06-08T10:34:56+08:00", + "review_result": "EMPTY", + "review_time": "2018-06-08T10:34:56+08:00", + "review_reject_reason": "身份证图片有遮挡,请上传清晰的身份证图片" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/TransactionBlock/GetTransactionBlockRecordResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/TransactionBlock/GetTransactionBlockRecordResponse.json new file mode 100644 index 00000000..c104feca --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/TransactionBlock/GetTransactionBlockRecordResponse.json @@ -0,0 +1,8 @@ +{ + "block_record_id": "23400", + "block_time": "2018-06-08T10:34:56+08:00", + "block_reason": "涉嫌信用卡套现", + "number_of_block": "LESS_THAN_TWENTY", + "recover_way": "SUBMIT_INFORMATION", + "requested_item_info": "{ \t\"record_fields\": [{ \t\t\t\"item_id\": \"100004\", \t\t\t\"field_name\": \"legal_person_card_id\", \t\t\t\"name\": \"企业法人身份证号\", \t\t\t\"type\": 1, \t\t\t\"tips\": \"\", \t\t\t\"placeholder\": \"请输入企业法人身份证号\", \t\t\t\"tooltip\": \"需要填写完整身份证号\", \t\t\t\"required\": 1, \t\t\t\"string_check_rule\": { \t\t\t\t\"min_string_length\": 1, \t\t\t\t\"max_string_length\": 50, \t\t\t\t\"validator\": \"idcard\" \t\t\t}, \t\t\t\"need_encrypt\": true \t\t}, \t\t{ \t\t\t\"item_id\": \"100005\", \t\t\t\"field_name\": \"legal_person_cert_type\", \t\t\t\"name\": \"企业法人证件类型\", \t\t\t\"type\": 4, \t\t\t\"tips\": \"\", \t\t\t\"placeholder\": \"请选择证件类型\", \t\t\t\"tooltip\": \"\", \t\t\t\"required\": 0, \t\t\t\"enum_check_rule\": { \t\t\t\t\"min_list_length\": 1, \t\t\t\t\"max_list_length\": 1, \t\t\t\t\"enum_values\": [\"大陆居民身份证\", \"港澳台通行证\"] \t\t\t}, \t\t\t\"need_encrypt\": false \t\t}, \t\t{ \t\t\t\"item_id\": \"100006\", \t\t\t\"field_name\": \"inland_cert_card_image\", \t\t\t\"name\": \"大陆居民身份证照片\", \t\t\t\"type\": 2, \t\t\t\"tips\": \"请上传图片\", \t\t\t\"placeholder\": \"\", \t\t\t\"tooltip\": \"需要正面和反面两张照片\", \t\t\t\"required\": 1, \t\t\t\"need_encrypt\": false, \t\t\t\"file_check_rule\": { \t\t\t\t\"min_list_length\": 2, \t\t\t\t\"max_list_length\": 2, \t\t\t\t\"enum_file_exts\": [\"png\", \"jpg\", \"jpeg\"], \t\t\t\t\"max_file_size\": 5 \t\t\t}, \t\t\t\"relations\": [{ \t\t\t\t\"source_key\": 100005, \t\t\t\t\"source_value\": \"大陆居民身份证\" \t\t\t}] \t\t} \t] }" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/TransactionBlock/GetTransactionBlockSubmissionResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/TransactionBlock/GetTransactionBlockSubmissionResponse.json new file mode 100644 index 00000000..a18ad3c5 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/TransactionBlock/GetTransactionBlockSubmissionResponse.json @@ -0,0 +1,7 @@ +{ + "block_submission_id": "B021234566799876aacsecd", + "submit_time": "2018-06-08T10:34:56+08:00", + "review_result": "EMPTY", + "review_time": "2018-06-08T10:34:56+08:00", + "review_reject_reason": "身份证图片有遮挡,请上传清晰的身份证图片" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/TransactionBlock/QueryTransactionBlockRecordsResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/TransactionBlock/QueryTransactionBlockRecordsResponse.json new file mode 100644 index 00000000..96921931 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/TransactionBlock/QueryTransactionBlockRecordsResponse.json @@ -0,0 +1,15 @@ +{ + "data": [ + { + "block_record_id": "23400", + "block_time": "2018-06-08T10:34:56+08:00", + "block_reason": "涉嫌信用卡套现", + "number_of_block": "LESS_THAN_TWENTY", + "recover_way": "SUBMIT_INFORMATION", + "requested_item_info": "{ \t\"record_fields\": [{ \t\t\t\"item_id\": \"100004\", \t\t\t\"field_name\": \"legal_person_card_id\", \t\t\t\"name\": \"企业法人身份证号\", \t\t\t\"type\": 1, \t\t\t\"tips\": \"\", \t\t\t\"placeholder\": \"请输入企业法人身份证号\", \t\t\t\"tooltip\": \"需要填写完整身份证号\", \t\t\t\"required\": 1, \t\t\t\"string_check_rule\": { \t\t\t\t\"min_string_length\": 1, \t\t\t\t\"max_string_length\": 50, \t\t\t\t\"validator\": \"idcard\" \t\t\t}, \t\t\t\"need_encrypt\": true \t\t}, \t\t{ \t\t\t\"item_id\": \"100005\", \t\t\t\"field_name\": \"legal_person_cert_type\", \t\t\t\"name\": \"企业法人证件类型\", \t\t\t\"type\": 4, \t\t\t\"tips\": \"\", \t\t\t\"placeholder\": \"请选择证件类型\", \t\t\t\"tooltip\": \"\", \t\t\t\"required\": 0, \t\t\t\"enum_check_rule\": { \t\t\t\t\"min_list_length\": 1, \t\t\t\t\"max_list_length\": 1, \t\t\t\t\"enum_values\": [\"大陆居民身份证\", \"港澳台通行证\"] \t\t\t}, \t\t\t\"need_encrypt\": false \t\t}, \t\t{ \t\t\t\"item_id\": \"100006\", \t\t\t\"field_name\": \"inland_cert_card_image\", \t\t\t\"name\": \"大陆居民身份证照片\", \t\t\t\"type\": 2, \t\t\t\"tips\": \"请上传图片\", \t\t\t\"placeholder\": \"\", \t\t\t\"tooltip\": \"需要正面和反面两张照片\", \t\t\t\"required\": 1, \t\t\t\"need_encrypt\": false, \t\t\t\"file_check_rule\": { \t\t\t\t\"min_list_length\": 2, \t\t\t\t\"max_list_length\": 2, \t\t\t\t\"enum_file_exts\": [\"png\", \"jpg\", \"jpeg\"], \t\t\t\t\"max_file_size\": 5 \t\t\t}, \t\t\t\"relations\": [{ \t\t\t\t\"source_key\": 100005, \t\t\t\t\"source_value\": \"大陆居民身份证\" \t\t\t}] \t\t} \t] }" + } + ], + "offset": 10, + "limit": 5, + "total_count": 1234 +}