From 8adcc9fdcfe393844ce4e02a5f3ca4222ea58c4d Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Sun, 29 Sep 2024 14:27:39 +0800 Subject: [PATCH] =?UTF-8?q?feat(tenpayv3):=20=E6=96=B0=E5=A2=9E=E9=93=B6?= =?UTF-8?q?=E8=A1=8C=E8=BD=AC=E8=B4=A6=E5=85=85=E5=80=BC=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 --- docs/WechatTenpayV3/Basic_ModelDefinition.md | 7 + ...atTenpayClientExecuteRechargeExtensions.cs | 56 ++++++ .../ApplyBankTransferRechargeRequest.cs | 56 ++++++ .../ApplyBankTransferRechargeResponse.cs | 70 ++++++++ ...nsferRechargeByOutRechargeNumberRequest.cs | 15 ++ ...sferRechargeByOutRechargeNumberResponse.cs | 167 ++++++++++++++++++ ...ionEcommerceBankTransferRechargeRequest.cs | 2 +- ...onEcommerceBankTransferRechargeResponse.cs | 36 +--- ...latformSolutionEcommerceRechargeRequest.cs | 15 +- ...sferRechargeByOutRechargeNumberResponse.cs | 4 +- ...erceRechargeByOutRechargeNumberResponse.cs | 60 +------ .../ApplyBankTransferRechargeRequest.json | 9 + .../ApplyBankTransferRechargeResponse.json | 11 ++ ...erRechargeByOutRechargeNumberResponse.json | 21 +++ 14 files changed, 419 insertions(+), 110 deletions(-) create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteRechargeExtensions.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/Recharge/ApplyBankTransferRechargeRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/Recharge/ApplyBankTransferRechargeResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/Recharge/GetBankTransferRechargeByOutRechargeNumberRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/Recharge/GetBankTransferRechargeByOutRechargeNumberResponse.cs create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/Recharge/ApplyBankTransferRechargeRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/Recharge/ApplyBankTransferRechargeResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/Recharge/GetBankTransferRechargeByOutRechargeNumberResponse.json diff --git a/docs/WechatTenpayV3/Basic_ModelDefinition.md b/docs/WechatTenpayV3/Basic_ModelDefinition.md index b63d6381..fd76fc43 100644 --- a/docs/WechatTenpayV3/Basic_ModelDefinition.md +++ b/docs/WechatTenpayV3/Basic_ModelDefinition.md @@ -456,6 +456,13 @@ - 将电子发票插入微信用户卡包:`CreateNewTaxControlFapiaoApplicationCard` + + - 商家充值 + + - 申请银行转账充值:`ApplyBankTransferRecharge` + + - 查询银行转账充值结果:`GetBankTransferRechargeByOutRechargeNumber` + - 扩展工具 - 分账 diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteRechargeExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteRechargeExtensions.cs new file mode 100644 index 00000000..8af6b102 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteRechargeExtensions.cs @@ -0,0 +1,56 @@ +using System; +using System.Net.Http; +using System.Threading; +using System.Threading.Tasks; +using Flurl; +using Flurl.Http; + +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 +{ + public static class WechatTenpayClientExecuteRechargeExtensions + { + /// + /// 异步调用 [POST] /recharge/bank-transfer-recharges/apply 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteApplyBankTransferRechargeAsync(this WechatTenpayClient client, Models.ApplyBankTransferRechargeRequest 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, "recharge", "bank-transfer-recharges", "apply"); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [GET] /recharge/bank-transfer-recharges/out-recharge-no/{out_recharge_no} 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteGetBankTransferRechargeByOutRechargeNumberAsync(this WechatTenpayClient client, Models.GetBankTransferRechargeByOutRechargeNumberRequest 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, "recharge", "bank-transfer-recharges", "out-recharge-no", request.OutRechargeNumber); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/Recharge/ApplyBankTransferRechargeRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/Recharge/ApplyBankTransferRechargeRequest.cs new file mode 100644 index 00000000..52f9b764 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/Recharge/ApplyBankTransferRechargeRequest.cs @@ -0,0 +1,56 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /recharge/bank-transfer-recharges/apply 接口的请求。 + /// + public class ApplyBankTransferRechargeRequest : WechatTenpayRequest + { + public static class Types + { + public class RechargeAmount + { + /// + /// 获取或设置金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("amount")] + [System.Text.Json.Serialization.JsonPropertyName("amount")] + public int? Amount { get; set; } + + /// + /// 获取或设置币种。 + /// + [Newtonsoft.Json.JsonProperty("currency")] + [System.Text.Json.Serialization.JsonPropertyName("currency")] + public string? Currency { get; set; } + } + } + + /// + /// 获取或设置商户充值单号。 + /// + [Newtonsoft.Json.JsonProperty("out_recharge_no")] + [System.Text.Json.Serialization.JsonPropertyName("out_recharge_no")] + public string OutRechargeNumber { get; set; } = string.Empty; + + /// + /// 获取或设置充值场景。 + /// + [Newtonsoft.Json.JsonProperty("recharge_scene")] + [System.Text.Json.Serialization.JsonPropertyName("recharge_scene")] + public string RechargeScene { get; set; } = string.Empty; + + /// + /// 获取或设置充值入账账户。 + /// + [Newtonsoft.Json.JsonProperty("account_type")] + [System.Text.Json.Serialization.JsonPropertyName("account_type")] + public string AccountType { get; set; } = string.Empty; + + /// + /// 获取或设置充值金额信息。 + /// + [Newtonsoft.Json.JsonProperty("recharge_amount")] + [System.Text.Json.Serialization.JsonPropertyName("recharge_amount")] + public Types.RechargeAmount RechargeAmount { get; set; } = new Types.RechargeAmount(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/Recharge/ApplyBankTransferRechargeResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/Recharge/ApplyBankTransferRechargeResponse.cs new file mode 100644 index 00000000..8d227311 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/Recharge/ApplyBankTransferRechargeResponse.cs @@ -0,0 +1,70 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /recharge/bank-transfer-recharges/apply 接口的响应。 + /// + public class ApplyBankTransferRechargeResponse : WechatTenpayResponse + { + public static class Types + { + public class TransferInAccount + { + /// + /// 获取或设置开户银行名称。 + /// + [Newtonsoft.Json.JsonProperty("bank_name")] + [System.Text.Json.Serialization.JsonPropertyName("bank_name")] + public string? BankName { get; set; } + + /// + /// 获取或设置开户银行省市编码。 + /// + [Newtonsoft.Json.JsonProperty("bank_address_code")] + [System.Text.Json.Serialization.JsonPropertyName("bank_address_code")] + public string? BankAddressCode { get; set; } + + /// + /// 获取或设置开户银行行号。 + /// + [Newtonsoft.Json.JsonProperty("bank_code")] + [System.Text.Json.Serialization.JsonPropertyName("bank_code")] + public string? BankCode { get; set; } + + /// + /// 获取或设置银行账户名称。 + /// + [Newtonsoft.Json.JsonProperty("bank_account_name")] + [System.Text.Json.Serialization.JsonPropertyName("bank_account_name")] + public string? BankAccountName { get; set; } + + /// + /// 获取或设置银行账号。 + /// + [Newtonsoft.Json.JsonProperty("bank_account_no")] + [System.Text.Json.Serialization.JsonPropertyName("bank_account_no")] + public string? BankAccountNumber { get; set; } + } + } + + /// + /// 获取或设置商户充值单号。 + /// + [Newtonsoft.Json.JsonProperty("out_recharge_no")] + [System.Text.Json.Serialization.JsonPropertyName("out_recharge_no")] + public string OutRechargeNumber { get; set; } = default!; + + /// + /// 获取或设置微信充值单号。 + /// + [Newtonsoft.Json.JsonProperty("recharge_id")] + [System.Text.Json.Serialization.JsonPropertyName("recharge_id")] + public string RechargeId { get; set; } = default!; + + /// + /// 获取或设置充值目标账户。 + /// + [Newtonsoft.Json.JsonProperty("transfer_in_account")] + [System.Text.Json.Serialization.JsonPropertyName("transfer_in_account")] + public Types.TransferInAccount TransferInAccount { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/Recharge/GetBankTransferRechargeByOutRechargeNumberRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/Recharge/GetBankTransferRechargeByOutRechargeNumberRequest.cs new file mode 100644 index 00000000..8ce00a63 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/Recharge/GetBankTransferRechargeByOutRechargeNumberRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /recharge/bank-transfer-recharges/out-recharge-no/{out_recharge_no} 接口的请求。 + /// + public class GetBankTransferRechargeByOutRechargeNumberRequest : WechatTenpayRequest + { + /// + /// 获取或设置商户充值单号。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string OutRechargeNumber { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/Recharge/GetBankTransferRechargeByOutRechargeNumberResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/Recharge/GetBankTransferRechargeByOutRechargeNumberResponse.cs new file mode 100644 index 00000000..3919787b --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/Recharge/GetBankTransferRechargeByOutRechargeNumberResponse.cs @@ -0,0 +1,167 @@ +using System; + +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /recharge/bank-transfer-recharges/out-recharge-no/{out_recharge_no} 接口的响应。 + /// + public class GetBankTransferRechargeByOutRechargeNumberResponse : WechatTenpayResponse + { + public static class Types + { + public class RechargeAmount + { + /// + /// 获取或设置金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("amount")] + [System.Text.Json.Serialization.JsonPropertyName("amount")] + public int? Amount { get; set; } + + /// + /// 获取或设置币种。 + /// + [Newtonsoft.Json.JsonProperty("currency")] + [System.Text.Json.Serialization.JsonPropertyName("currency")] + public string? Currency { get; set; } + } + + public class BankTransferInfo + { + /// + /// 获取或设置转入的银行流水单号。 + /// + [Newtonsoft.Json.JsonProperty("bill_no")] + [System.Text.Json.Serialization.JsonPropertyName("bill_no")] + public string? BillNumber { get; set; } + + /// + /// 获取或设置转账充值附言。 + /// + [Newtonsoft.Json.JsonProperty("memo")] + [System.Text.Json.Serialization.JsonPropertyName("memo")] + public string? Memo { get; set; } + + /// + /// 获取或设置银行转账退回时间。 + /// + [Newtonsoft.Json.JsonProperty("return_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("return_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))] + public DateTimeOffset? ReturnTime { get; set; } + + /// + /// 获取或设置银行转账退回原因。 + /// + [Newtonsoft.Json.JsonProperty("return_reason")] + [System.Text.Json.Serialization.JsonPropertyName("return_reason")] + public string? ReturnReason { get; set; } + + /// + /// 获取或设置开户银行名称。 + /// + [Newtonsoft.Json.JsonProperty("bank_name")] + [System.Text.Json.Serialization.JsonPropertyName("bank_name")] + public string? BankName { get; set; } + + /// + /// 获取或设置银行卡号后四位。 + /// + [Newtonsoft.Json.JsonProperty("bank_card_tail")] + [System.Text.Json.Serialization.JsonPropertyName("bank_card_tail")] + public string? BankCardNumberTail { get; set; } + } + } + + /// + /// 获取或设置微信商户号。 + /// + [Newtonsoft.Json.JsonProperty("mchid")] + [System.Text.Json.Serialization.JsonPropertyName("mchid")] + public string MerchantId { get; set; } = default!; + + /// + /// 获取或设置商户充值单号。 + /// + [Newtonsoft.Json.JsonProperty("out_recharge_no")] + [System.Text.Json.Serialization.JsonPropertyName("out_recharge_no")] + public string OutRechargeNumber { get; set; } = default!; + + /// + /// 获取或设置微信充值单号。 + /// + [Newtonsoft.Json.JsonProperty("recharge_id")] + [System.Text.Json.Serialization.JsonPropertyName("recharge_id")] + public string RechargeId { get; set; } = default!; + + /// + /// 获取或设置充值场景。 + /// + [Newtonsoft.Json.JsonProperty("recharge_scene")] + [System.Text.Json.Serialization.JsonPropertyName("recharge_scene")] + public string RechargeScene { get; set; } = default!; + + /// + /// 获取或设置充值状态。 + /// + [Newtonsoft.Json.JsonProperty("recharge_state")] + [System.Text.Json.Serialization.JsonPropertyName("recharge_state")] + public string RechargeState { get; set; } = default!; + + /// + /// 获取或设置充值状态描述。 + /// + [Newtonsoft.Json.JsonProperty("recharge_state_desc")] + [System.Text.Json.Serialization.JsonPropertyName("recharge_state_desc")] + public string? RechargeSceneDescription { get; set; } + + /// + /// 获取或设置充值入账账户。 + /// + [Newtonsoft.Json.JsonProperty("account_type")] + [System.Text.Json.Serialization.JsonPropertyName("account_type")] + public string AccountType { get; set; } = default!; + + /// + /// 获取或设置充值金额信息。 + /// + [Newtonsoft.Json.JsonProperty("recharge_amount")] + [System.Text.Json.Serialization.JsonPropertyName("recharge_amount")] + public Types.RechargeAmount RechargeAmount { get; set; } = default!; + + /// + /// 获取或设置转账充值的付款信息。 + /// + [Newtonsoft.Json.JsonProperty("bank_transfer_info")] + [System.Text.Json.Serialization.JsonPropertyName("bank_transfer_info")] + public Types.BankTransferInfo? BankTransferInfo { get; set; } + + /// + /// 获取或设置充值受理时间。 + /// + [Newtonsoft.Json.JsonProperty("accept_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("accept_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))] + public DateTimeOffset? AcceptTime { get; set; } + + /// + /// 获取或设置充值成功时间。 + /// + [Newtonsoft.Json.JsonProperty("success_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("success_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))] + public DateTimeOffset? SuccessTime { get; set; } + + /// + /// 获取或设置充值关闭时间。 + /// + [Newtonsoft.Json.JsonProperty("close_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("close_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))] + public DateTimeOffset? CloseTime { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/Ecommerce/Recharge/ApplyPlatformSolutionEcommerceBankTransferRechargeRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/Ecommerce/Recharge/ApplyPlatformSolutionEcommerceBankTransferRechargeRequest.cs index 3e0ef2ca..76980f58 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/Ecommerce/Recharge/ApplyPlatformSolutionEcommerceBankTransferRechargeRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/Ecommerce/Recharge/ApplyPlatformSolutionEcommerceBankTransferRechargeRequest.cs @@ -7,7 +7,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models { public static class Types { - public class RechargeAmount : ApplyPlatformSolutionEcommerceRechargeRequest.Types.RechargeAmount + public class RechargeAmount : ApplyBankTransferRechargeRequest.Types.RechargeAmount { } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/Ecommerce/Recharge/ApplyPlatformSolutionEcommerceBankTransferRechargeResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/Ecommerce/Recharge/ApplyPlatformSolutionEcommerceBankTransferRechargeResponse.cs index ed19ff26..5afe4c7f 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/Ecommerce/Recharge/ApplyPlatformSolutionEcommerceBankTransferRechargeResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/Ecommerce/Recharge/ApplyPlatformSolutionEcommerceBankTransferRechargeResponse.cs @@ -7,42 +7,8 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models { public static class Types { - public class TransferInAccount + public class TransferInAccount : ApplyBankTransferRechargeResponse.Types.TransferInAccount { - /// - /// 获取或设置开户银行名称。 - /// - [Newtonsoft.Json.JsonProperty("bank_name")] - [System.Text.Json.Serialization.JsonPropertyName("bank_name")] - public string? BankName { get; set; } - - /// - /// 获取或设置开户银行省市编码。 - /// - [Newtonsoft.Json.JsonProperty("bank_address_code")] - [System.Text.Json.Serialization.JsonPropertyName("bank_address_code")] - public string? BankAddressCode { get; set; } - - /// - /// 获取或设置开户银行行号。 - /// - [Newtonsoft.Json.JsonProperty("bank_code")] - [System.Text.Json.Serialization.JsonPropertyName("bank_code")] - public string? BankCode { get; set; } - - /// - /// 获取或设置银行账户名称。 - /// - [Newtonsoft.Json.JsonProperty("bank_account_name")] - [System.Text.Json.Serialization.JsonPropertyName("bank_account_name")] - public string? BankAccountName { get; set; } - - /// - /// 获取或设置银行账号。 - /// - [Newtonsoft.Json.JsonProperty("bank_account_no")] - [System.Text.Json.Serialization.JsonPropertyName("bank_account_no")] - public string? BankAccountNumber { get; set; } } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/Ecommerce/Recharge/ApplyPlatformSolutionEcommerceRechargeRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/Ecommerce/Recharge/ApplyPlatformSolutionEcommerceRechargeRequest.cs index d21b3cd8..23287a8e 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/Ecommerce/Recharge/ApplyPlatformSolutionEcommerceRechargeRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/Ecommerce/Recharge/ApplyPlatformSolutionEcommerceRechargeRequest.cs @@ -7,21 +7,8 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models { public static class Types { - public class RechargeAmount + public class RechargeAmount : ApplyBankTransferRechargeRequest.Types.RechargeAmount { - /// - /// 获取或设置金额(单位:分)。 - /// - [Newtonsoft.Json.JsonProperty("amount")] - [System.Text.Json.Serialization.JsonPropertyName("amount")] - public int? Amount { get; set; } - - /// - /// 获取或设置币种。 - /// - [Newtonsoft.Json.JsonProperty("currency")] - [System.Text.Json.Serialization.JsonPropertyName("currency")] - public string? Currency { get; set; } } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/Ecommerce/Recharge/GetPlatformSolutionEcommerceBankTransferRechargeByOutRechargeNumberResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/Ecommerce/Recharge/GetPlatformSolutionEcommerceBankTransferRechargeByOutRechargeNumberResponse.cs index a683fb38..49c00edb 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/Ecommerce/Recharge/GetPlatformSolutionEcommerceBankTransferRechargeByOutRechargeNumberResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/Ecommerce/Recharge/GetPlatformSolutionEcommerceBankTransferRechargeByOutRechargeNumberResponse.cs @@ -9,11 +9,11 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models { public static class Types { - public class RechargeAmount : GetPlatformSolutionEcommerceRechargeByOutRechargeNumberResponse.Types.RechargeAmount + public class RechargeAmount : GetBankTransferRechargeByOutRechargeNumberResponse.Types.RechargeAmount { } - public class BankTransferInfo : GetPlatformSolutionEcommerceRechargeByOutRechargeNumberResponse.Types.BankTransferInfo + public class BankTransferInfo : GetBankTransferRechargeByOutRechargeNumberResponse.Types.BankTransferInfo { } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/Ecommerce/Recharge/GetPlatformSolutionEcommerceRechargeByOutRechargeNumberResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/Ecommerce/Recharge/GetPlatformSolutionEcommerceRechargeByOutRechargeNumberResponse.cs index dde2b203..2fdf140c 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/Ecommerce/Recharge/GetPlatformSolutionEcommerceRechargeByOutRechargeNumberResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/Ecommerce/Recharge/GetPlatformSolutionEcommerceRechargeByOutRechargeNumberResponse.cs @@ -9,68 +9,12 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models { public static class Types { - public class RechargeAmount + public class RechargeAmount : GetBankTransferRechargeByOutRechargeNumberResponse.Types.RechargeAmount { - /// - /// 获取或设置金额(单位:分)。 - /// - [Newtonsoft.Json.JsonProperty("amount")] - [System.Text.Json.Serialization.JsonPropertyName("amount")] - public int? Amount { get; set; } - - /// - /// 获取或设置币种。 - /// - [Newtonsoft.Json.JsonProperty("currency")] - [System.Text.Json.Serialization.JsonPropertyName("currency")] - public string? Currency { get; set; } } - public class BankTransferInfo + public class BankTransferInfo : GetBankTransferRechargeByOutRechargeNumberResponse.Types.BankTransferInfo { - /// - /// 获取或设置转入的银行流水单号。 - /// - [Newtonsoft.Json.JsonProperty("bill_no")] - [System.Text.Json.Serialization.JsonPropertyName("bill_no")] - public string? BillNumber { get; set; } - - /// - /// 获取或设置转账充值附言。 - /// - [Newtonsoft.Json.JsonProperty("memo")] - [System.Text.Json.Serialization.JsonPropertyName("memo")] - public string? Memo { get; set; } - - /// - /// 获取或设置银行转账退回时间。 - /// - [Newtonsoft.Json.JsonProperty("return_time")] - [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))] - [System.Text.Json.Serialization.JsonPropertyName("return_time")] - [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))] - public DateTimeOffset? ReturnTime { get; set; } - - /// - /// 获取或设置银行转账退回原因。 - /// - [Newtonsoft.Json.JsonProperty("return_reason")] - [System.Text.Json.Serialization.JsonPropertyName("return_reason")] - public string? ReturnReason { get; set; } - - /// - /// 获取或设置开户银行名称。 - /// - [Newtonsoft.Json.JsonProperty("bank_name")] - [System.Text.Json.Serialization.JsonPropertyName("bank_name")] - public string? BankName { get; set; } - - /// - /// 获取或设置银行卡号后四位。 - /// - [Newtonsoft.Json.JsonProperty("bank_card_tail")] - [System.Text.Json.Serialization.JsonPropertyName("bank_card_tail")] - public string? BankCardNumberTail { get; set; } } public class QrRechargeInfo diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/Recharge/ApplyBankTransferRechargeRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/Recharge/ApplyBankTransferRechargeRequest.json new file mode 100644 index 00000000..c71cbfeb --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/Recharge/ApplyBankTransferRechargeRequest.json @@ -0,0 +1,9 @@ +{ + "account_type": "BASIC", + "out_recharge_no": "cz202407181234", + "recharge_amount": { + "amount": 500000, + "currency": "CNY" + }, + "recharge_scene": "NORMAL_BANK_TRANSFER" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/Recharge/ApplyBankTransferRechargeResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/Recharge/ApplyBankTransferRechargeResponse.json new file mode 100644 index 00000000..97bce6b8 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/Recharge/ApplyBankTransferRechargeResponse.json @@ -0,0 +1,11 @@ +{ + "out_recharge_no": "cz202407181234", + "recharge_id": "172207846292553701", + "transfer_in_account": { + "bank_account_name": "某某某有限公司", + "bank_account_no": "686000172489957748585801", + "bank_address_code": "440300", + "bank_code": "991584000049", + "bank_name": "财付通-备付金账户" + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/Recharge/GetBankTransferRechargeByOutRechargeNumberResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/Recharge/GetBankTransferRechargeByOutRechargeNumberResponse.json new file mode 100644 index 00000000..5151468e --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/Recharge/GetBankTransferRechargeByOutRechargeNumberResponse.json @@ -0,0 +1,21 @@ +{ + "accept_time": "2024-09-18T16:52:44+08:00", + "account_type": "BASIC", + "bank_transfer_info": { + "bank_card_tail": "7310", + "bank_name": "招商银行", + "bill_no": "bank_bill_no_8923918116", + "memo": "测试附言" + }, + "mchid": "2600017184", + "out_recharge_no": "test260001718403", + "recharge_amount": { + "amount": 800000000, + "currency": "CNY" + }, + "recharge_id": "172664956467128801", + "recharge_scene": "NORMAL_BANK_TRANSFER", + "recharge_state": "SUCCESS", + "recharge_state_desc": "充值成功", + "success_time": "2024-09-18T16:53:06+08:00" +}