diff --git a/docs/WechatTenpayV3/Basic_ModelDefinition.md b/docs/WechatTenpayV3/Basic_ModelDefinition.md index 770ed0cf..8e189b16 100644 --- a/docs/WechatTenpayV3/Basic_ModelDefinition.md +++ b/docs/WechatTenpayV3/Basic_ModelDefinition.md @@ -994,6 +994,14 @@ - 微信支付预约单号查询预约商家转账记录:`GetPlatformSolutionMerchantTransferReservationByReservationId` + - 平台收付通(商家充值) + + - 申请充值:`ApplyPlatformSolutionEcommerceRecharge` + + - 查询充值结果:`GetPlatformSolutionEcommerceRechargeByOutRechargeNumber` + + - 关闭充值:`ClosePlatformSolutionEcommerceRecharge` + - 代金券 - 创建代金券批次:`CreateMarketingFavorStock` diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Events/_Partner/PlatformSolution/PlatformSolutionRechargeResource.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Events/_Partner/PlatformSolution/PlatformSolutionRechargeResource.cs new file mode 100644 index 00000000..3b8bb304 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Events/_Partner/PlatformSolution/PlatformSolutionRechargeResource.cs @@ -0,0 +1,148 @@ +using System; + +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Events +{ + /// + /// 表示 RECHARGE.SUCCESS (仅限服务商)通知的数据。 + /// 表示 RECHARGE.CLOSED (仅限服务商)通知的数据。 + /// + /// REF:
+ /// + ///
+ ///
+ public class PlatformSolutionRechargeResource : WechatTenpayEvent.Types.IDecryptedResource + { + public static class Types + { + public class RechargeAmount : Models.GetPlatformSolutionEcommerceRechargeByOutRechargeNumberResponse.Types.RechargeAmount + { + } + + public class BankTransferInfo : Models.GetPlatformSolutionEcommerceRechargeByOutRechargeNumberResponse.Types.BankTransferInfo + { + } + + public class QrRechargeInfo : Models.GetPlatformSolutionEcommerceRechargeByOutRechargeNumberResponse.Types.QrRechargeInfo + { + } + } + + /// + /// 获取或设置微信商户号。 + /// + [Newtonsoft.Json.JsonProperty("sp_mchid")] + [System.Text.Json.Serialization.JsonPropertyName("sp_mchid")] + public string MerchantId { get; set; } = default!; + + /// + /// 获取或设置二级商户号。 + /// + [Newtonsoft.Json.JsonProperty("sub_mchid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_mchid")] + public string SubMerchantId { 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_channel")] + [System.Text.Json.Serialization.JsonPropertyName("recharge_channel")] + public string? RechargeChannel { get; set; } + + /// + /// 获取或设置充值场景。 + /// + [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("qr_recharge_info")] + [System.Text.Json.Serialization.JsonPropertyName("qr_recharge_info")] + public Types.QrRechargeInfo? QrRechargeInfo { 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; } + + /// + /// 获取或设置备注。 + /// + [Newtonsoft.Json.JsonProperty("remark")] + [System.Text.Json.Serialization.JsonPropertyName("remark")] + public string? Remark { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePlatformSolutionExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePlatformSolutionExtensions.cs index 202d5ee9..4630f018 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePlatformSolutionExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePlatformSolutionExtensions.cs @@ -8,6 +8,76 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 { public static class WechatTenpayClientExecutePlatformSolutionExtensions { + #region EcommerceRecharges + /// + /// 异步调用 [POST] /platsolution/ecommerce/recharges/apply 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteApplyPlatformSolutionEcommerceRechargeAsync(this WechatTenpayClient client, Models.ApplyPlatformSolutionEcommerceRechargeRequest 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, "platsolution", "ecommerce", "recharges", "apply"); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [GET] /platsolution/ecommerce/recharges/out-recharge-no/{out_recharge_no} 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteGetPlatformSolutionEcommerceRechargeByOutRechargeNumberAsync(this WechatTenpayClient client, Models.GetPlatformSolutionEcommerceRechargeByOutRechargeNumberRequest 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, "platsolution", "ecommerce", "recharges", "out-recharge-no", request.OutRechargeNumber) + .SetQueryParam("sub_mchid", request.SubMerchantId); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [POST] /platsolution/ecommerce/recharges/out-recharge-no/{out_recharge_no}/close 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteClosePlatformSolutionEcommerceRechargeAsync(this WechatTenpayClient client, Models.ClosePlatformSolutionEcommerceRechargeRequest 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, "platsolution", "ecommerce", "recharges", "out-recharge-no", request.OutRechargeNumber, "close") + .SetQueryParam("sub_mchid", request.SubMerchantId); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + #endregion + #region MerchantTransfer /// /// 异步调用 [POST] /platsolution/mch-transfer/batches/apply 接口。 diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/EcommerceRecharges/ApplyPlatformSolutionEcommerceRechargeRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/EcommerceRecharges/ApplyPlatformSolutionEcommerceRechargeRequest.cs new file mode 100644 index 00000000..d21b3cd8 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/EcommerceRecharges/ApplyPlatformSolutionEcommerceRechargeRequest.cs @@ -0,0 +1,70 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /platsolution/ecommerce/recharges/apply 接口的请求。 + /// + public class ApplyPlatformSolutionEcommerceRechargeRequest : 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("sub_mchid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_mchid")] + public string SubMerchantId { get; set; } = string.Empty; + + /// + /// 获取或设置商户充值单号。 + /// + [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(); + + /// + /// 获取或设置回调通知地址。 + /// + [Newtonsoft.Json.JsonProperty("notify_url")] + [System.Text.Json.Serialization.JsonPropertyName("notify_url")] + public string? NotifyUrl { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/EcommerceRecharges/ApplyPlatformSolutionEcommerceRechargeResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/EcommerceRecharges/ApplyPlatformSolutionEcommerceRechargeResponse.cs new file mode 100644 index 00000000..dc3ff8c0 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/EcommerceRecharges/ApplyPlatformSolutionEcommerceRechargeResponse.cs @@ -0,0 +1,31 @@ +using System; + +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /platsolution/ecommerce/recharges/apply 接口的响应。 + /// + public class ApplyPlatformSolutionEcommerceRechargeResponse : WechatTenpayResponse + { + /// + /// 获取或设置商户充值单号。 + /// + [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_url")] + [System.Text.Json.Serialization.JsonPropertyName("recharge_url")] + public string RechargeUrl { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/EcommerceRecharges/ClosePlatformSolutionEcommerceRechargeRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/EcommerceRecharges/ClosePlatformSolutionEcommerceRechargeRequest.cs new file mode 100644 index 00000000..b00a8494 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/EcommerceRecharges/ClosePlatformSolutionEcommerceRechargeRequest.cs @@ -0,0 +1,22 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /platsolution/ecommerce/recharges/out-recharge-no/{out_recharge_no}/close 接口的请求。 + /// + public class ClosePlatformSolutionEcommerceRechargeRequest : 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 OutRechargeNumber { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/EcommerceRecharges/ClosePlatformSolutionEcommerceRechargeResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/EcommerceRecharges/ClosePlatformSolutionEcommerceRechargeResponse.cs new file mode 100644 index 00000000..9ce68c08 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/EcommerceRecharges/ClosePlatformSolutionEcommerceRechargeResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /platsolution/ecommerce/recharges/out-recharge-no/{out_recharge_no}/close 接口的响应。 + /// + public class ClosePlatformSolutionEcommerceRechargeResponse : GetPlatformSolutionEcommerceRechargeByOutRechargeNumberResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/EcommerceRecharges/GetPlatformSolutionEcommerceRechargeByOutRechargeNumberRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/EcommerceRecharges/GetPlatformSolutionEcommerceRechargeByOutRechargeNumberRequest.cs new file mode 100644 index 00000000..0e1d4a22 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/EcommerceRecharges/GetPlatformSolutionEcommerceRechargeByOutRechargeNumberRequest.cs @@ -0,0 +1,22 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /platsolution/ecommerce/recharges/out-recharge-no/{out_recharge_no} 接口的请求。 + /// + public class GetPlatformSolutionEcommerceRechargeByOutRechargeNumberRequest : 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 OutRechargeNumber { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/EcommerceRecharges/GetPlatformSolutionEcommerceRechargeByOutRechargeNumberResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/EcommerceRecharges/GetPlatformSolutionEcommerceRechargeByOutRechargeNumberResponse.cs new file mode 100644 index 00000000..dde2b203 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PlatformSolution/EcommerceRecharges/GetPlatformSolutionEcommerceRechargeByOutRechargeNumberResponse.cs @@ -0,0 +1,198 @@ +using System; + +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /platsolution/ecommerce/recharges/out-recharge-no/{out_recharge_no} 接口的响应。 + /// + public class GetPlatformSolutionEcommerceRechargeByOutRechargeNumberResponse : 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; } + } + + public class QrRechargeInfo + { + /// + /// 获取或设置用户的 OpenId。 + /// + [Newtonsoft.Json.JsonProperty("openid")] + [System.Text.Json.Serialization.JsonPropertyName("openid")] + public string? OpenId { get; set; } + } + } + + /// + /// 获取或设置微信商户号。 + /// + [Newtonsoft.Json.JsonProperty("sp_mchid")] + [System.Text.Json.Serialization.JsonPropertyName("sp_mchid")] + public string MerchantId { get; set; } = default!; + + /// + /// 获取或设置二级商户号。 + /// + [Newtonsoft.Json.JsonProperty("sub_mchid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_mchid")] + public string SubMerchantId { 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_channel")] + [System.Text.Json.Serialization.JsonPropertyName("recharge_channel")] + public string? RechargeChannel { get; set; } + + /// + /// 获取或设置充值场景。 + /// + [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("qr_recharge_info")] + [System.Text.Json.Serialization.JsonPropertyName("qr_recharge_info")] + public Types.QrRechargeInfo? QrRechargeInfo { 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/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/EventSamples/_/_Partner/PlatformSolution/PlatformSolutionRechargeResource.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/EventSamples/_/_Partner/PlatformSolution/PlatformSolutionRechargeResource.json new file mode 100644 index 00000000..aa9563cb --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/EventSamples/_/_Partner/PlatformSolution/PlatformSolutionRechargeResource.json @@ -0,0 +1,28 @@ +{ + "sp_mchid": "1900001109", + "sub_mchid": "1900001121", + "out_recharge_no": "cz202407181234", + "recharge_id": "100000202405180012345678", + "recharge_scene": "ECOMMERCE_DEPOSIT", + "account_type": "DEPOSIT", + "recharge_channel": "QR_RECHARGE", + "recharge_amount": { + "amount": 500000, + "currency": "CNY" + }, + "recharge_state": "SUCCESS", + "recharge_state_desc": "充值成功", + "accept_time": "2015-05-19T13:29:35+08:00", + "success_time": "2015-05-20T14:29:35+08:00", + "close_time": "2015-05-20T14:29:35+08:00", + "remark": "备注", + "qr_recharge_info": { + "openid": "owYiu0WOJdGCYxoHrPabGhI39uT4" + }, + "bank_transfer_info": { + "bill_no": "111111", + "memo": "转账充值附言", + "bank_name": "中国银行", + "bank_card_tail": "0722" + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/PlatformSolution/EcommerceRecharges/ApplyPlatformSolutionEcommerceRechargeRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/PlatformSolution/EcommerceRecharges/ApplyPlatformSolutionEcommerceRechargeRequest.json new file mode 100644 index 00000000..93aaeece --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/PlatformSolution/EcommerceRecharges/ApplyPlatformSolutionEcommerceRechargeRequest.json @@ -0,0 +1,11 @@ +{ + "sub_mchid": "1900001109", + "out_recharge_no": "cz202407181234", + "recharge_scene": "ECOMMERCE_DEPOSIT", + "account_type": "DEPOSIT", + "recharge_amount": { + "amount": 500000, + "currency": "CNY" + }, + "notify_url": "https://www.weixin.qq.com/wxpay/pay.php" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/PlatformSolution/EcommerceRecharges/ApplyPlatformSolutionEcommerceRechargeResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/PlatformSolution/EcommerceRecharges/ApplyPlatformSolutionEcommerceRechargeResponse.json new file mode 100644 index 00000000..3295b064 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/PlatformSolution/EcommerceRecharges/ApplyPlatformSolutionEcommerceRechargeResponse.json @@ -0,0 +1,5 @@ +{ + "recharge_id": "172207846292553701", + "out_recharge_no": "cz202407181234", + "recharge_url": "https://www.payapp.qq.com/plat/recharge.html" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/PlatformSolution/EcommerceRecharges/ClosePlatformSolutionEcommerceRechargeResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/PlatformSolution/EcommerceRecharges/ClosePlatformSolutionEcommerceRechargeResponse.json new file mode 100644 index 00000000..2b271d85 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/PlatformSolution/EcommerceRecharges/ClosePlatformSolutionEcommerceRechargeResponse.json @@ -0,0 +1,29 @@ +{ + "sp_mchid": "1900001109", + "sub_mchid": "1900001121", + "recharge_id": "172234484162395401", + "out_recharge_no": "cz2020042013", + "recharge_channel": "BANK_TRANSFER", + "account_type": "DEPOSIT", + "recharge_state": "SUCCESS", + "recharge_scene": "ECOMMERCE_DEPOSIT", + "recharge_state_desc": "超过时间限制,系统自动关闭充值单", + "recharge_amount": { + "amount": 500000, + "currency": "CNY" + }, + "bank_transfer_info": { + "bill_no": "110240620400046628001252733345", + "memo": "转账充值附言", + "return_time": "2015-05-20T13:29:35+08:00", + "return_reason": "银行转账充值金额与申请充值金额不一致", + "bank_name": "中国银行", + "bank_card_tail": "0722" + }, + "qr_recharge_info": { + "openid": "owYiu0WOJdGCYxoHrPabGhI39uT4" + }, + "accept_time": "2015-05-20T13:29:35+08:00", + "success_time": "2015-05-20T13:29:35+08:00", + "close_time": "2015-05-20T13:29:35+08:00" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/PlatformSolution/EcommerceRecharges/GetPlatformSolutionEcommerceRechargeByOutRechargeNumberResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/PlatformSolution/EcommerceRecharges/GetPlatformSolutionEcommerceRechargeByOutRechargeNumberResponse.json new file mode 100644 index 00000000..2b271d85 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/PlatformSolution/EcommerceRecharges/GetPlatformSolutionEcommerceRechargeByOutRechargeNumberResponse.json @@ -0,0 +1,29 @@ +{ + "sp_mchid": "1900001109", + "sub_mchid": "1900001121", + "recharge_id": "172234484162395401", + "out_recharge_no": "cz2020042013", + "recharge_channel": "BANK_TRANSFER", + "account_type": "DEPOSIT", + "recharge_state": "SUCCESS", + "recharge_scene": "ECOMMERCE_DEPOSIT", + "recharge_state_desc": "超过时间限制,系统自动关闭充值单", + "recharge_amount": { + "amount": 500000, + "currency": "CNY" + }, + "bank_transfer_info": { + "bill_no": "110240620400046628001252733345", + "memo": "转账充值附言", + "return_time": "2015-05-20T13:29:35+08:00", + "return_reason": "银行转账充值金额与申请充值金额不一致", + "bank_name": "中国银行", + "bank_card_tail": "0722" + }, + "qr_recharge_info": { + "openid": "owYiu0WOJdGCYxoHrPabGhI39uT4" + }, + "accept_time": "2015-05-20T13:29:35+08:00", + "success_time": "2015-05-20T13:29:35+08:00", + "close_time": "2015-05-20T13:29:35+08:00" +}