From 549f5447b9065b8b3c5fabcbcd9219cf2c171d63 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Wed, 24 Sep 2025 16:34:40 +0800 Subject: [PATCH] =?UTF-8?q?feat(tenpayv3):=20=E6=96=B0=E5=A2=9E=E5=95=86?= =?UTF-8?q?=E6=88=B7=E5=B0=BD=E8=81=8C=E8=B0=83=E6=9F=A5=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...xecuteMerchantOperationManageExtensions.cs | 81 ++++++++++++++++ ...ManageEnhancedDueDiligenceSubmitRequest.cs | 29 ++++++ ...anageEnhancedDueDiligenceSubmitResponse.cs | 40 ++++++++ ...ncedDueDiligenceByDueDiligenceIdRequest.cs | 22 +++++ ...cedDueDiligenceByDueDiligenceIdResponse.cs | 97 +++++++++++++++++++ ...onManageEnhancedDueDiligenceFileRequest.cs | 59 +++++++++++ ...nManageEnhancedDueDiligenceFileResponse.cs | 15 +++ ...nageEnhancedDueDiligenceSubmitRequest.json | 4 + ...ageEnhancedDueDiligenceSubmitResponse.json | 6 ++ ...dDueDiligenceByDueDiligenceIdResponse.json | 13 +++ ...ManageEnhancedDueDiligenceFileRequest.json | 6 ++ ...anageEnhancedDueDiligenceFileResponse.json | 3 + 12 files changed, 375 insertions(+) create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantOperationManage/EnhancedDueDiligence/CreateMerchantOperationManageEnhancedDueDiligenceSubmitRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantOperationManage/EnhancedDueDiligence/CreateMerchantOperationManageEnhancedDueDiligenceSubmitResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantOperationManage/EnhancedDueDiligence/GetMerchantOperationManageEnhancedDueDiligenceByDueDiligenceIdRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantOperationManage/EnhancedDueDiligence/GetMerchantOperationManageEnhancedDueDiligenceByDueDiligenceIdResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantOperationManage/EnhancedDueDiligence/UploadMerchantOperationManageEnhancedDueDiligenceFileRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantOperationManage/EnhancedDueDiligence/UploadMerchantOperationManageEnhancedDueDiligenceFileResponse.cs create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantOperationManage/EnhancedDueDiligence/CreateMerchantOperationManageEnhancedDueDiligenceSubmitRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantOperationManage/EnhancedDueDiligence/CreateMerchantOperationManageEnhancedDueDiligenceSubmitResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantOperationManage/EnhancedDueDiligence/GetMerchantOperationManageEnhancedDueDiligenceByDueDiligenceIdResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantOperationManage/EnhancedDueDiligence/UploadMerchantOperationManageEnhancedDueDiligenceFileRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantOperationManage/EnhancedDueDiligence/UploadMerchantOperationManageEnhancedDueDiligenceFileResponse.json diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMerchantOperationManageExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMerchantOperationManageExtensions.cs index 2d7bbaff..c8a7d5b7 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMerchantOperationManageExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMerchantOperationManageExtensions.cs @@ -6,6 +6,8 @@ using Flurl.Http; namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 { + using SKIT.FlurlHttpClient.Primitives; + public static class WechatTenpayClientExecuteMerchantOperationManageExtensions { /// @@ -29,5 +31,84 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } + + #region EnhancedDueDiligence + /// + /// 异步调用 [POST] /mch-operation-manage/enhanced-due-diligence/{due_diligence_id}/submit 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteCreateMerchantOperationManageEnhancedDueDiligenceSubmitAsync(this WechatTenpayClient client, Models.CreateMerchantOperationManageEnhancedDueDiligenceSubmitRequest 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-operation-manage", "enhanced-due-diligence", request.DueDiligenceId, "submit"); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [POST] /mch-operation-manage/enhanced-due-diligence/{due_diligence_id}/upload 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteUploadMerchantOperationManageEnhancedDueDiligenceFileAsync(this WechatTenpayClient client, Models.UploadMerchantOperationManageEnhancedDueDiligenceFileRequest 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() + ".png"; + + if (request.FileDigest is null) + request.FileDigest = EncodedString.ToHexString(Utilities.SHA256Utility.Hash(request.FileBytes)).Value!.ToUpper(); + + if (request.FileContentType is null) + request.FileContentType = MimeTypes.GetMimeMapping(request.FileName!); + + IFlurlRequest flurlReq = client + .CreateFlurlRequest(request, HttpMethod.Post, "mch-operation-manage", "enhanced-due-diligence", request.DueDiligenceId, "upload"); + + using var httpContent = Utilities.HttpContentBuilder.BuildWithFile(fileName: request.FileName, fileBytes: request.FileBytes, fileContentType: request.FileContentType, fileMetaJson: client.JsonSerializer.Serialize(request), formDataName: "due_diligence_file"); + return await client.SendFlurlRequestAsync(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [GET] /mch-operation-manage/enhanced-due-diligence/{due_diligence_id} 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteGetMerchantOperationManageEnhancedDueDiligenceByDueDiligenceIdAsync(this WechatTenpayClient client, Models.GetMerchantOperationManageEnhancedDueDiligenceByDueDiligenceIdRequest 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-operation-manage", "enhanced-due-diligence", request.DueDiligenceId); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + #endregion } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantOperationManage/EnhancedDueDiligence/CreateMerchantOperationManageEnhancedDueDiligenceSubmitRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantOperationManage/EnhancedDueDiligence/CreateMerchantOperationManageEnhancedDueDiligenceSubmitRequest.cs new file mode 100644 index 00000000..98137b82 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantOperationManage/EnhancedDueDiligence/CreateMerchantOperationManageEnhancedDueDiligenceSubmitRequest.cs @@ -0,0 +1,29 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /mch-operation-manage/enhanced-due-diligence/{due_diligence_id}/submit 接口的请求。 + /// + public class CreateMerchantOperationManageEnhancedDueDiligenceSubmitRequest : WechatTenpayRequest + { + /// + /// 获取或设置尽调单号。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string DueDiligenceId { get; set; } = string.Empty; + + /// + /// 获取或设置子商户号。 + /// + [Newtonsoft.Json.JsonProperty("sub_mchid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_mchid")] + public string SubMerchantId { get; set; } = string.Empty; + + /// + /// 获取或设置提交资料 JSON 内容。 + /// + [Newtonsoft.Json.JsonProperty("submit_data")] + [System.Text.Json.Serialization.JsonPropertyName("submit_data")] + public string SubmitDataJson { get; set; } = "{}"; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantOperationManage/EnhancedDueDiligence/CreateMerchantOperationManageEnhancedDueDiligenceSubmitResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantOperationManage/EnhancedDueDiligence/CreateMerchantOperationManageEnhancedDueDiligenceSubmitResponse.cs new file mode 100644 index 00000000..3aa5c8ee --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantOperationManage/EnhancedDueDiligence/CreateMerchantOperationManageEnhancedDueDiligenceSubmitResponse.cs @@ -0,0 +1,40 @@ +using System; + +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /mch-operation-manage/enhanced-due-diligence/{due_diligence_id}/submit 接口的响应。 + /// + public class CreateMerchantOperationManageEnhancedDueDiligenceSubmitResponse : WechatTenpayResponse + { + /// + /// 获取或设置尽调单状态。 + /// + [Newtonsoft.Json.JsonProperty("due_diligence_state")] + [System.Text.Json.Serialization.JsonPropertyName("due_diligence_state")] + public string DueDiligenceState { 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("submission_template")] + [System.Text.Json.Serialization.JsonPropertyName("submission_template")] + public string SubmissionTemplateJson { get; set; } = default!; + + /// + /// 获取或设置已提交的资料 JSON 内容。 + /// + [Newtonsoft.Json.JsonProperty("submission_data")] + [System.Text.Json.Serialization.JsonPropertyName("submission_data")] + public string? SubmissionDataJson { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantOperationManage/EnhancedDueDiligence/GetMerchantOperationManageEnhancedDueDiligenceByDueDiligenceIdRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantOperationManage/EnhancedDueDiligence/GetMerchantOperationManageEnhancedDueDiligenceByDueDiligenceIdRequest.cs new file mode 100644 index 00000000..a8dbbb48 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantOperationManage/EnhancedDueDiligence/GetMerchantOperationManageEnhancedDueDiligenceByDueDiligenceIdRequest.cs @@ -0,0 +1,22 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /mch-operation-manage/enhanced-due-diligence/{due_diligence_id} 接口的请求。 + /// + public class GetMerchantOperationManageEnhancedDueDiligenceByDueDiligenceIdRequest : WechatTenpayRequest + { + /// + /// 获取或设置尽调单号。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string DueDiligenceId { get; set; } = string.Empty; + + /// + /// 获取或设置子商户号。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string SubMerchantId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantOperationManage/EnhancedDueDiligence/GetMerchantOperationManageEnhancedDueDiligenceByDueDiligenceIdResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantOperationManage/EnhancedDueDiligence/GetMerchantOperationManageEnhancedDueDiligenceByDueDiligenceIdResponse.cs new file mode 100644 index 00000000..8c39aec7 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantOperationManage/EnhancedDueDiligence/GetMerchantOperationManageEnhancedDueDiligenceByDueDiligenceIdResponse.cs @@ -0,0 +1,97 @@ +using System; + +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /mch-operation-manage/enhanced-due-diligence/{due_diligence_id} 接口的响应。 + /// + public class GetMerchantOperationManageEnhancedDueDiligenceByDueDiligenceIdResponse : WechatTenpayResponse + { + /// + /// 获取或设置子商户号。 + /// + [Newtonsoft.Json.JsonProperty("sub_mchid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_mchid")] + public string SubMerchantId { get; set; } = default!; + + /// + /// 获取或设置尽调单号。 + /// + [Newtonsoft.Json.JsonProperty("due_diligence_id")] + [System.Text.Json.Serialization.JsonPropertyName("due_diligence_id")] + public string DueDiligenceId { get; set; } = default!; + + /// + /// 获取或设置尽调单状态。 + /// + [Newtonsoft.Json.JsonProperty("due_diligence_state")] + [System.Text.Json.Serialization.JsonPropertyName("due_diligence_state")] + public string DueDiligenceState { get; set; } = default!; + + /// + /// 获取或设置截止时间。 + /// + [Newtonsoft.Json.JsonProperty("deadline_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("deadline_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))] + public DateTimeOffset DeadlineTime { get; set; } + + /// + /// 获取或设置提交时间。 + /// + [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("terminal_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("terminal_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))] + public DateTimeOffset? TerminalTime { get; set; } + + /// + /// 获取或设置驳回时间。 + /// + [Newtonsoft.Json.JsonProperty("reject_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("reject_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))] + public DateTimeOffset? RejectTime { get; set; } + + /// + /// 获取或设置驳回原因。 + /// + [Newtonsoft.Json.JsonProperty("reject_reason")] + [System.Text.Json.Serialization.JsonPropertyName("reject_reason")] + public string? RejectReason { get; set; } + + /// + /// 获取或设置完成时间。 + /// + [Newtonsoft.Json.JsonProperty("complete_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("complete_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))] + public DateTimeOffset? CompleteTime { get; set; } + + /// + /// 获取或设置要求提交的资料。 + /// + [Newtonsoft.Json.JsonProperty("submission_template")] + [System.Text.Json.Serialization.JsonPropertyName("submission_template")] + public string SubmissionTemplateJson { get; set; } = default!; + + /// + /// 获取或设置已提交的资料 JSON 内容。 + /// + [Newtonsoft.Json.JsonProperty("submission_data")] + [System.Text.Json.Serialization.JsonPropertyName("submission_data")] + public string? SubmissionDataJson { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantOperationManage/EnhancedDueDiligence/UploadMerchantOperationManageEnhancedDueDiligenceFileRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantOperationManage/EnhancedDueDiligence/UploadMerchantOperationManageEnhancedDueDiligenceFileRequest.cs new file mode 100644 index 00000000..fb9308c8 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantOperationManage/EnhancedDueDiligence/UploadMerchantOperationManageEnhancedDueDiligenceFileRequest.cs @@ -0,0 +1,59 @@ +using System; + +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /mch-operation-manage/enhanced-due-diligence/{due_diligence_id}/upload 接口的请求。 + /// + public class UploadMerchantOperationManageEnhancedDueDiligenceFileRequest : WechatTenpayRequest + { + /// + /// 获取或设置尽调单号。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string DueDiligenceId { 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? FileDigest { get; set; } + + /// + /// 获取或设置文件 Conent-Type。如果不指定将由系统自动生成。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string? FileContentType { get; set; } + + /// + /// 获取或设置子商户号。 + /// + [Newtonsoft.Json.JsonProperty("sub_mchid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_mchid")] + public string SubMerchantId { get; set; } = string.Empty; + + /// + /// 获取或设置资料项 ID。 + /// + [Newtonsoft.Json.JsonProperty("item_id")] + [System.Text.Json.Serialization.JsonPropertyName("item_id")] + public int ItemId { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantOperationManage/EnhancedDueDiligence/UploadMerchantOperationManageEnhancedDueDiligenceFileResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantOperationManage/EnhancedDueDiligence/UploadMerchantOperationManageEnhancedDueDiligenceFileResponse.cs new file mode 100644 index 00000000..40c7c403 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/MerchantOperationManage/EnhancedDueDiligence/UploadMerchantOperationManageEnhancedDueDiligenceFileResponse.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /mch-operation-manage/enhanced-due-diligence/{due_diligence_id}/upload 接口的响应。 + /// + public class UploadMerchantOperationManageEnhancedDueDiligenceFileResponse : WechatTenpayResponse + { + /// + /// 获取或设置文件标识 ID。 + /// + [Newtonsoft.Json.JsonProperty("file_id")] + [System.Text.Json.Serialization.JsonPropertyName("file_id")] + public string FileId { get; set; } = default!; + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantOperationManage/EnhancedDueDiligence/CreateMerchantOperationManageEnhancedDueDiligenceSubmitRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantOperationManage/EnhancedDueDiligence/CreateMerchantOperationManageEnhancedDueDiligenceSubmitRequest.json new file mode 100644 index 00000000..fe4c7ca9 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantOperationManage/EnhancedDueDiligence/CreateMerchantOperationManageEnhancedDueDiligenceSubmitRequest.json @@ -0,0 +1,4 @@ +{ + "sub_mchid": "123000110", + "submit_data": "{ \"record_fields\": [ { \"item_id\": 130020, \"field_name\": \"ubo1_certificate_type\", \"name\": \"UBO1证件类型\", \"type\": 11, \"field_data\": \"68\" }, { \"item_id\": 130021, \"field_name\": \"ubo1_front_photo\", \"name\": \"UBO1证件正面照片\", \"type\": 2, \"field_data\": \"V1_ld15ofRa7wJl6tkue-mCkB5HW7lfD2HZebch3ZVVmHUbqXDOhEwxDCXmgwkXkOkDDGg2B1ManZ6jJSk8ryk4JSjhCQxEdQhnuK8twPnhL1w_Re8UAwiV4IWWozXCykTqo6Q\" }, { \"item_id\": 130022, \"field_name\": \"ubo1_back_photo\", \"name\": \"UBO1证件反面照片\", \"type\": 2, \"field_data\": \"V1_ld15ofRa7wJl6tkue-mCkB5HW7lfD2HZebch3ZVVmHUbqXDOhEwxDCXmgwkXkOkDDGg2B1ManZ6jJSk8ryk4JSjhCQxEdQhnuK8twPnhL1w_Re8UAwiV4IWWozXCykTqo6Q\" }, { \"item_id\": 130023, \"field_name\": \"ubo1_name\", \"name\": \"UBO1证件姓名\", \"type\": 1, \"field_data\": \"eZ4c21W/T269LTw6LegGPVw4lIJJ3nt7Z7vHBfsybs3q01JsbVNhl2o29xks/Gzszj3TtI3mbUMWD7E2xvV7E1JcGWbpTVAxLCrBn95CYhmhfnuON/aG9GpiWPTQBdbbYU6ehFmI8yOoupn6xIIJlTDjAsEAu+rS51nGWycMzu/Ule4RvLD2nIEHdACg8YMsecEExjxlxXx6Eucx20kC9n/P34uUOHmqRTAxtf32HwkXVvU2bUneNUreUJnE6j+1jmjX/XQBwptI9E6UGmeNH+om8rQS9OwFFFJ+BsDzRfTUbBxiW+vKo216cKa90qciKYeWEucFu1Mm1+8bDlfQQA==\" }, { \"item_id\": 130068, \"field_name\": \"account_opening_purpose\", \"name\": \"开户目的\", \"type\": 11, \"repeated_field_data\": [ \"1\", \"2\" ] } ] }" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantOperationManage/EnhancedDueDiligence/CreateMerchantOperationManageEnhancedDueDiligenceSubmitResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantOperationManage/EnhancedDueDiligence/CreateMerchantOperationManageEnhancedDueDiligenceSubmitResponse.json new file mode 100644 index 00000000..4f5867b4 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantOperationManage/EnhancedDueDiligence/CreateMerchantOperationManageEnhancedDueDiligenceSubmitResponse.json @@ -0,0 +1,6 @@ +{ + "due_diligence_state": "DUE_DILIGENCE_STATE_COLLECTING", + "submit_time": "2015-05-20T13:29:35.120-08:00", + "submission_template": "{ \"item_id\": \"130001\", \"field_name\": \"credential_type\", \"name\": \"证书类型\", \"type\": 11, \"tips\": \"\", \"placeholder\": \"\", \"tooltip\": \"\", \"required\": 1, \"check_rule\": { \"min_length\": 1, \"max_length\": 1, \"enum_keys\": [1, 2388, 2389], \"enum_values\": [\"营业执照\", \"事业单位法人证书\", \"统一社会信用代码证书\"] }, \"need_encrypt\":false }", + "submission_data": "// 四类资料项类型均给出示例 { \t\"record_fields\": [ { // 字符串类型 \"item_id\": 130004, \"field_name\": \"credential_registration_address\", \"name\": \"证书注册地址\", \"type\": 1, \"field_data\": \"ri8U5FUSmHh1peGNBUvG+VwGHl31ymiLms5V1yhTbBWUApJDInme1b+ndtrlAielJYpQE41sSxj46ePMto2mySBIJjgCIyChLCTQ580M5pNKglAkjTnXwzJXyPhpyzkpdeFfUDjWc+qd6G4UwrL70br/EEqfQbGNaUKX6jAGjB8wd8wndImMB3iB2vUuAOL+6giLWCBBaC50QRfCTDlGi0c41Gt92tCrRSI7pWzU1cxxJwng7M53/J5PhI+eikLqbhUYlRPHYl6j0ouRItWHCRORYKuz6enluXyFwUCaaR3IeINSM8CwjHp6spnTIo70UaRJWAcZ0jQp/lwX2JVxaw==\"// 加密后的地址 }, { // 日期类型 \"item_id\": 130005, \"field_name\": \"credential_start_date\", \"name\": \"经营证照有效期开始日期\", \"type\": 15, \"field_data\": \"2020-01-03\" }, { // 日期类型——长期 \"item_id\": 130006, \"field_name\": \"credential_end_date\", \"name\": \"经营证照有效期结束日期\", \"type\": 15, \"field_data\": \"长期\" }, { // 选择器类型——多选 \"item_id\": 130068, \"field_name\": \"account_opening_purpose\", \"name\": \"开户目的\", \"type\": 11, \"repeated_field_data\": [ \"1\", \"2\" ] }, { // 选择器类型——单选 \"item_id\": 100077, \"field_name\": \"certificate_type\", \"name\": \"证件类型\", \"type\": 11, \"field_data\": \"68\" }, { // 图片类型 \"item_id\": 130013, \"field_name\": \"certificate_front_photo\", \"name\": \"证件正面照片\", \"type\": 2, \"field_data\": \"V1_B1JjMhCA3714g4Gbs_hDBh4PbttbD2HZt3pLGMZ_mVUn-szjdkQSiyXMnEIUr-kDDHYM5lMVFuQ1D1sCPOC-pcbhCQxYfQ9hsKcnyfisSnBL\" }, { // 图片类型 \"item_id\": 130014, \"field_name\": \"certificate_back_photo\", \"name\": \"证件反面照片\", \"type\": 2, \"field_data\": \"V1_aF69-5OeYw4LBJnCeed10x4PbttbD2HZc57Kb6fhhi7dHYuwpHDzASWilEIUr-kDDBKiBx2w_0268DLMgNQb1lbhCQxYfQ9hsKcnyfisSnBL\" } \t] }" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantOperationManage/EnhancedDueDiligence/GetMerchantOperationManageEnhancedDueDiligenceByDueDiligenceIdResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantOperationManage/EnhancedDueDiligence/GetMerchantOperationManageEnhancedDueDiligenceByDueDiligenceIdResponse.json new file mode 100644 index 00000000..7e8ffebf --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantOperationManage/EnhancedDueDiligence/GetMerchantOperationManageEnhancedDueDiligenceByDueDiligenceIdResponse.json @@ -0,0 +1,13 @@ +{ + "due_diligence_id": "1230dasda0011022190381dakdajois1283i12jo", + "sub_mchid": "123000110", + "due_diligence_state": "DUE_DILIGENCE_STATE_COLLECTING", + "reject_reason": "{ \"audit_detail_by_item\": [ { \"item_id\": 130002, \"audit_result\": 2, \"reject_reason_to_merchant\": \"请将《营业执照》上传至营业执照影印件处,并根据上传证件填写相关信息\" }, { \"item_id\": 130005, \"audit_result\": 2, \"reject_reason_to_merchant\": \"1.请填写营业执照有效期开始时间;2.有效期开始日期填写有误,请填写与营业执照上一致的日期,如影印件上无开始日期请填写成立日期/注册日期\" }, { \"item_id\": 130006, \"audit_result\": 2, \"reject_reason_to_merchant\": \"1.请填写营业执照有效期结束时间;2.有效期结束日期填写有误,请填写与营业执照上一致的日期,如影印件上无结束日期请填写“长期”\" } ] }", + "deadline_time": "2024-11-28T13:08:04+08:00", + "terminal_time": "2024-11-28T13:08:04+08:00", + "submit_time": "2024-11-28T13:08:04+08:00", + "reject_time": "2024-11-28T13:08:04+08:00", + "complete_time": "2024-11-28T13:08:04+08:00", + "submission_template": "{ \"record_fields\": [ { \"item_id\": 130020, \"field_name\": \"ubo1_certificate_type\", \"name\": \"UBO1证件类型\", \"type\": 11, \"field_data\": \"\", \"tips\": \"\", \"required\": 1, \"use_permanently_date\": 0, \"check_rule\": { \"min_length\": 0, \"max_length\": 0, \"enum_keys\": [ \"68\", \"2416\", \"2417\", \"2418\", \"69\", \"2530\", \"2531\", \"2532\" ], \"enum_values\": [ \"身份证(中国大陆居民)\", \"来往内地通行证(中国香港居民)\", \"来往内地通行证(中国澳门居民)\", \"来往大陆通行证(中国台湾居民)\", \"护照(其他国家或地区居民)\", \"外国人居留证\", \"港澳居住证\", \"台湾居住证\" ] }, \"disabled\": 0, \"hidden\": 0, \"placeholder\": \"\", \"tooltip\": \"\", \"need_encrypt\": false }, { \"item_id\": 130023, \"field_name\": \"ubo1_name\", \"name\": \"UBO1证件姓名\", \"type\": 1, \"field_data\": \"\", \"tips\": \"\", \"required\": 1, \"use_permanently_date\": 0, \"check_rule\": { \"min_length\": 2, \"max_length\": 100, \"max_file_size\": 0 }, \"disabled\": 0, \"hidden\": 0, \"placeholder\": \"请填写\", \"tooltip\": \"\", \"need_encrypt\": true }, { \"item_id\": 130068, \"field_name\": \"account_opening_purpose\", \"name\": \"开户目的\", \"type\": 11, \"field_data\": \"\", \"tips\": \"\", \"required\": 1, \"use_permanently_date\": 0, \"check_rule\": { \"min_length\": 1, \"max_length\": 5, \"enum_keys\": [ \"1\", \"3\", \"4\", \"5\", \"6\" ], \"enum_values\": [ \"使用收款功能,收取日常营业款项\", \"使用企业付款功能,付款给用户、雇员或合作伙伴\", \"使用分账功能,分账给服务商、合作伙伴\", \"使用分账功能,收取佣金、服务费、交易款等\", \"其他\" ], \"max_file_size\": 0 }, \"disabled\": 0, \"hidden\": 0, \"placeholder\": \"\", \"tooltip\": \"\", \"need_encrypt\": false } ] }", + "submission_data": "[ { \"item_id\": 130020, \"field_name\": \"ubo1_certificate_type\", \"name\": \"UBO1证件类型\", \"type\": 11, \"field_data\": \"68\", \"tips\": \"\", \"required\": 0, \"use_permanently_date\": 0, \"disabled\": 0, \"hidden\": 0, \"placeholder\": \"\", \"tooltip\": \"\" }, { \"item_id\": 130021, \"field_name\": \"ubo1_front_photo\", \"name\": \"UBO1证件正面照片\", \"type\": 2, \"field_data\": \"V1_ld15ofRa7wJl6tkue-mCkB5HW7lfD2HZebch3ZVVmHUbqXDOhEw\", \"tips\": \"\", \"required\": 0, \"use_permanently_date\": 0, \"disabled\": 0, \"hidden\": 0, \"placeholder\": \"\", \"tooltip\": \"\" }, { \"item_id\": 130022, \"field_name\": \"ubo1_back_photo\", \"name\": \"UBO1证件反面照片\", \"type\": 2, \"field_data\": \"V1_ld15ofRa7wJl6tkue-mCkB5HW7lfD2HZebch3ZVVmHUbqXDOhEwxD\", \"tips\": \"\", \"required\": 0, \"use_permanently_date\": 0, \"disabled\": 0, \"hidden\": 0, \"placeholder\": \"\", \"tooltip\": \"\" }, { \"item_id\": 130023, \"field_name\": \"ubo1_name\", \"name\": \"UBO1证件姓名\", \"type\": 1, \"field_data\": \"123\", \"tips\": \"\", \"required\": 0, \"use_permanently_date\": 0, \"disabled\": 0, \"hidden\": 0, \"placeholder\": \"\", \"tooltip\": \"\" }, { \"item_id\": 130024, \"field_name\": \"ubo1_certificate_number\", \"name\": \"UBO1证件号码\", \"type\": 1, \"field_data\": \"1222222222\", \"tips\": \"\", \"required\": 0, \"use_permanently_date\": 0, \"disabled\": 0, \"hidden\": 0, \"placeholder\": \"\", \"tooltip\": \"\" } ]" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantOperationManage/EnhancedDueDiligence/UploadMerchantOperationManageEnhancedDueDiligenceFileRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantOperationManage/EnhancedDueDiligence/UploadMerchantOperationManageEnhancedDueDiligenceFileRequest.json new file mode 100644 index 00000000..88114692 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantOperationManage/EnhancedDueDiligence/UploadMerchantOperationManageEnhancedDueDiligenceFileRequest.json @@ -0,0 +1,6 @@ +{ + "file_name": "demo.jpg", + "file_digest": "B94D27B9934D3E08A52E52D7DA7DABFAC484EFE37A5380EE9088F7ACE2EFCDE9", + "sub_mchid": "1230001104", + "item_id": 130013 +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantOperationManage/EnhancedDueDiligence/UploadMerchantOperationManageEnhancedDueDiligenceFileResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantOperationManage/EnhancedDueDiligence/UploadMerchantOperationManageEnhancedDueDiligenceFileResponse.json new file mode 100644 index 00000000..c84647a3 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/MerchantOperationManage/EnhancedDueDiligence/UploadMerchantOperationManageEnhancedDueDiligenceFileResponse.json @@ -0,0 +1,3 @@ +{ + "file_id": "V1_E1W7MchDBewmOMGmKSMCgh5-XLlfD2HZIRNLvkqSpFXrLTwX6AGfwSXi8ShOkekDDKMEYGZWOIlF_dSwIirdxArhCQxEdQhnuK8twPnhL1w_Re8UAwiV4IWWozX" +}