diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Extensions/WechatTenpayClientExecutePayExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Extensions/WechatTenpayClientExecutePayExtensions.cs index 76311df1..d44603c6 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Extensions/WechatTenpayClientExecutePayExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Extensions/WechatTenpayClientExecutePayExtensions.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Net.Http; using System.Threading; using System.Threading.Tasks; @@ -228,6 +228,44 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV2 return await client.SendRequestWithXmlAsync(flurlReq, data: request, cancellationToken: cancellationToken); } + /// + /// 异步调用 [POST] /secapi/pay/refundv2 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/api/danpin.php?chapter=9_103 + /// + /// + /// + /// + /// + public static async Task ExecuteCreatePayRefundV2Async(this WechatTenpayClient client, Models.CreatePayRefundV2Request request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Post, "secapi", "pay", "refundv2"); + + return await client.SendRequestWithXmlAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /pay/refundqueryv2 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/api/danpin.php?chapter=9_104 + /// + /// + /// + /// + /// + public static async Task ExecuteGetPayRefundV2Async(this WechatTenpayClient client, Models.GetPayRefundV2Request request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Post, "pay", "refundqueryv2"); + + return await client.SendRequestWithXmlAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #region Bill /// /// 异步调用 [POST] /pay/downloadbill 接口。 diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Deposit/ConsumeDepositRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Deposit/ConsumeDepositRequest.cs index 6d50e7ed..06222a81 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Deposit/ConsumeDepositRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Deposit/ConsumeDepositRequest.cs @@ -1,4 +1,4 @@ -namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models +namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models { /// /// 表示 [POST] /deposit/consume 接口的请求。 @@ -52,7 +52,6 @@ /// [Newtonsoft.Json.JsonProperty("total_fee")] [System.Text.Json.Serialization.JsonPropertyName("total_fee")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int TotalFee { get; set; } /// @@ -67,7 +66,6 @@ /// [Newtonsoft.Json.JsonProperty("consume_fee")] [System.Text.Json.Serialization.JsonPropertyName("consume_fee")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int ConsumeFee { get; set; } /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Deposit/CreateDepositFacePayRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Deposit/CreateDepositFacePayRequest.cs index 8c64ffa2..9b160bf2 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Deposit/CreateDepositFacePayRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Deposit/CreateDepositFacePayRequest.cs @@ -1,4 +1,4 @@ -using System; +using System; namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models { @@ -93,7 +93,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models /// [Newtonsoft.Json.JsonProperty("total_fee")] [System.Text.Json.Serialization.JsonPropertyName("total_fee")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int TotalFee { get; set; } /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Deposit/CreateDepositMicroPayRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Deposit/CreateDepositMicroPayRequest.cs index 2196ee72..bd421db1 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Deposit/CreateDepositMicroPayRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Deposit/CreateDepositMicroPayRequest.cs @@ -1,4 +1,4 @@ -using System; +using System; namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models { @@ -93,7 +93,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models /// [Newtonsoft.Json.JsonProperty("total_fee")] [System.Text.Json.Serialization.JsonPropertyName("total_fee")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int TotalFee { get; set; } /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Deposit/CreateDepositRefundRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Deposit/CreateDepositRefundRequest.cs index 64d0316b..ed5b48f3 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Deposit/CreateDepositRefundRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Deposit/CreateDepositRefundRequest.cs @@ -1,4 +1,4 @@ -namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models +namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models { /// /// 表示 [POST] /deposit/refund 接口的请求。 @@ -59,7 +59,6 @@ /// [Newtonsoft.Json.JsonProperty("total_fee")] [System.Text.Json.Serialization.JsonPropertyName("total_fee")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int TotalFee { get; set; } /// @@ -67,7 +66,6 @@ /// [Newtonsoft.Json.JsonProperty("refund_fee")] [System.Text.Json.Serialization.JsonPropertyName("refund_fee")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int RefundFee { get; set; } /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Deposit/CreateDepositUnifiedOrderRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Deposit/CreateDepositUnifiedOrderRequest.cs index 406ac864..85f3fe95 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Deposit/CreateDepositUnifiedOrderRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Deposit/CreateDepositUnifiedOrderRequest.cs @@ -1,4 +1,4 @@ -using System; +using System; namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models { @@ -84,7 +84,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models /// [Newtonsoft.Json.JsonProperty("total_fee")] [System.Text.Json.Serialization.JsonPropertyName("total_fee")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int TotalFee { get; set; } /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/MerchantCustoms/CreateMerchantCustomsCustomDeclarationRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/MerchantCustoms/CreateMerchantCustomsCustomDeclarationRequest.cs index 09b9280d..8dbc5691 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/MerchantCustoms/CreateMerchantCustomsCustomDeclarationRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/MerchantCustoms/CreateMerchantCustomsCustomDeclarationRequest.cs @@ -1,4 +1,4 @@ -namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models +namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models { /// /// 表示 [POST] /cgi-bin/mch/customs/customdeclareorder 接口的请求。 @@ -59,7 +59,6 @@ /// [Newtonsoft.Json.JsonProperty("duty")] [System.Text.Json.Serialization.JsonPropertyName("duty")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int? Duty { get; set; } /// @@ -81,7 +80,6 @@ /// [Newtonsoft.Json.JsonProperty("order_fee")] [System.Text.Json.Serialization.JsonPropertyName("order_fee")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int? OrderFee { get; set; } /// @@ -89,7 +87,6 @@ /// [Newtonsoft.Json.JsonProperty("transport_fee")] [System.Text.Json.Serialization.JsonPropertyName("transport_fee")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int? TransportFee { get; set; } /// @@ -97,7 +94,6 @@ /// [Newtonsoft.Json.JsonProperty("product_fee")] [System.Text.Json.Serialization.JsonPropertyName("product_fee")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int? ProductFee { get; set; } /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PAP/Contract/ApplyPAPPayRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PAP/Contract/ApplyPAPPayRequest.cs index 2525848b..98c6731b 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PAP/Contract/ApplyPAPPayRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PAP/Contract/ApplyPAPPayRequest.cs @@ -1,4 +1,4 @@ -namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models +namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models { /// /// 表示 [POST] /pay/pappayapply 接口的请求。 @@ -63,7 +63,6 @@ /// [Newtonsoft.Json.JsonProperty("total_fee")] [System.Text.Json.Serialization.JsonPropertyName("total_fee")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int TotalFee { get; set; } /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PAP/Contract/CreateContractOrderRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PAP/Contract/CreateContractOrderRequest.cs index 449fcdcf..a8c2ae82 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PAP/Contract/CreateContractOrderRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PAP/Contract/CreateContractOrderRequest.cs @@ -1,4 +1,4 @@ -using System; +using System; namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models { @@ -54,7 +54,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models /// [Newtonsoft.Json.JsonProperty("total_fee")] [System.Text.Json.Serialization.JsonPropertyName("total_fee")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int TotalFee { get; set; } /// @@ -157,7 +156,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models /// [Newtonsoft.Json.JsonProperty("plan_id")] [System.Text.Json.Serialization.JsonPropertyName("plan_id")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int PlanId { get; set; } /// @@ -172,7 +170,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models /// [Newtonsoft.Json.JsonProperty("request_serial")] [System.Text.Json.Serialization.JsonPropertyName("request_serial")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public long RequestSerialNumber { get; set; } /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PAP/CreatePAPPayH5EntrustWebRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PAP/CreatePAPPayH5EntrustWebRequest.cs index 05c3d688..b791a75a 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PAP/CreatePAPPayH5EntrustWebRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PAP/CreatePAPPayH5EntrustWebRequest.cs @@ -1,4 +1,4 @@ -namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models +namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models { /// /// 表示 [GET] /papay/h5entrustweb 接口的请求。 @@ -32,7 +32,6 @@ /// [Newtonsoft.Json.JsonProperty("plan_id")] [System.Text.Json.Serialization.JsonPropertyName("plan_id")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int PlanId { get; set; } /// @@ -47,7 +46,6 @@ /// [Newtonsoft.Json.JsonProperty("request_serial")] [System.Text.Json.Serialization.JsonPropertyName("request_serial")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public long RequestSerialNumber { get; set; } /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PAP/CreatePAPPayPreEntrustWebRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PAP/CreatePAPPayPreEntrustWebRequest.cs index 3b9d8034..d78fae95 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PAP/CreatePAPPayPreEntrustWebRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PAP/CreatePAPPayPreEntrustWebRequest.cs @@ -1,4 +1,4 @@ -namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models +namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models { /// /// 表示 [POST] /papay/preentrustweb 接口的请求。 @@ -32,7 +32,6 @@ /// [Newtonsoft.Json.JsonProperty("plan_id")] [System.Text.Json.Serialization.JsonPropertyName("plan_id")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int PlanId { get; set; } /// @@ -47,7 +46,6 @@ /// [Newtonsoft.Json.JsonProperty("request_serial")] [System.Text.Json.Serialization.JsonPropertyName("request_serial")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public long RequestSerialNumber { get; set; } /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/CreatePayMicroPayRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/CreatePayMicroPayRequest.cs index f92887aa..2c12e1a0 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/CreatePayMicroPayRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/CreatePayMicroPayRequest.cs @@ -1,4 +1,4 @@ -using System; +using System; namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models { @@ -91,7 +91,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models /// [Newtonsoft.Json.JsonProperty("total_fee")] [System.Text.Json.Serialization.JsonPropertyName("total_fee")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int TotalFee { get; set; } /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/CreatePayMicroPayResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/CreatePayMicroPayResponse.cs index 9f0f0a30..2a1e5054 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/CreatePayMicroPayResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/CreatePayMicroPayResponse.cs @@ -9,129 +9,25 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models { public static class Types { - public class PromotionDetail + public class PromotionDetail : GetPayOrderResponse.Types.PromotionDetail { - public static class Types + public static new class Types { - public class Promotion + public class Promotion : GetPayOrderResponse.Types.PromotionDetail.Types.Promotion { - public static class Types + public static new class Types { - public class GoodsDetail + public class GoodsDetail : GetPayOrderResponse.Types.PromotionDetail.Types.Promotion.Types.GoodsDetail { - /// - /// 获取或设置商品编码。 - /// - [Newtonsoft.Json.JsonProperty("goods_id")] - [System.Text.Json.Serialization.JsonPropertyName("goods_id")] - public string GoodsId { get; set; } = default!; - - /// - /// 获取或设置商品数量。 - /// - [Newtonsoft.Json.JsonProperty("quantity")] - [System.Text.Json.Serialization.JsonPropertyName("quantity")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] - public int Quantity { get; set; } - - /// - /// 获取或设置商品单价(单位:分)。 - /// - [Newtonsoft.Json.JsonProperty("price")] - [System.Text.Json.Serialization.JsonPropertyName("price")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] - public int Price { get; set; } - - /// - /// 获取或设置商品优惠金额(单位:分)。 - /// - [Newtonsoft.Json.JsonProperty("discount_amount")] - [System.Text.Json.Serialization.JsonPropertyName("discount_amount")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] - public int DiscountAmount { get; set; } - - /// - /// 获取或设置商品备注。 - /// - [Newtonsoft.Json.JsonProperty("goods_remark")] - [System.Text.Json.Serialization.JsonPropertyName("goods_remark")] - public string? GoodsRemark { get; set; } } } - /// - /// 获取或设置券或者立减优惠 ID。 - /// - [Newtonsoft.Json.JsonProperty("promotion_id")] - [System.Text.Json.Serialization.JsonPropertyName("promotion_id")] - public string PromotionId { get; set; } = default!; - - /// - /// 获取或设置优惠名称。 - /// - [Newtonsoft.Json.JsonProperty("name")] - [System.Text.Json.Serialization.JsonPropertyName("name")] - public string? Name { get; set; } - - /// - /// 获取或设置优惠范围。 - /// - [Newtonsoft.Json.JsonProperty("scope")] - [System.Text.Json.Serialization.JsonPropertyName("scope")] - public string? Scope { get; set; } - - /// - /// 获取或设置优惠类型。 - /// - [Newtonsoft.Json.JsonProperty("type")] - [System.Text.Json.Serialization.JsonPropertyName("type")] - public string? Type { get; set; } - - /// - /// 获取或设置优惠券面额(单位:分)。 - /// - [Newtonsoft.Json.JsonProperty("amount")] - [System.Text.Json.Serialization.JsonPropertyName("amount")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] - public int Amount { get; set; } - - /// - /// 获取或设置活动 ID。 - /// - [Newtonsoft.Json.JsonProperty("activity_id")] - [System.Text.Json.Serialization.JsonPropertyName("activity_id")] - public string? ActivityId { get; set; } - - /// - /// 获取或设置微信出资(单位:分)。 - /// - [Newtonsoft.Json.JsonProperty("wxpay_contribute")] - [System.Text.Json.Serialization.JsonPropertyName("wxpay_contribute")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] - public int? WechatpayContribute { get; set; } - - /// - /// 获取或设置商户出资(单位:分)。 - /// - [Newtonsoft.Json.JsonProperty("merchant_contribute")] - [System.Text.Json.Serialization.JsonPropertyName("merchant_contribute")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] - public int? MerchantContribute { get; set; } - - /// - /// 获取或设置其他出资(单位:分)。 - /// - [Newtonsoft.Json.JsonProperty("other_contribute")] - [System.Text.Json.Serialization.JsonPropertyName("other_contribute")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] - public int? OtherContribute { get; set; } - /// /// 获取或设置单品列表。 /// [Newtonsoft.Json.JsonProperty("goods_detail")] [System.Text.Json.Serialization.JsonPropertyName("goods_detail")] - public Types.GoodsDetail[]? GoodsList { get; set; } + public new Types.GoodsDetail[]? GoodsList { get; set; } } } @@ -140,7 +36,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models /// [Newtonsoft.Json.JsonProperty("promotion_detail")] [System.Text.Json.Serialization.JsonPropertyName("promotion_detail")] - public Types.Promotion[]? PromotionList { get; set; } + public new Types.Promotion[]? PromotionList { get; set; } } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/CreatePayRefundRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/CreatePayRefundRequest.cs index 247a004f..115ab858 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/CreatePayRefundRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/CreatePayRefundRequest.cs @@ -1,4 +1,4 @@ -namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models +namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models { /// /// 表示 [POST] /secapi/pay/refund 接口的请求。 @@ -59,7 +59,6 @@ /// [Newtonsoft.Json.JsonProperty("total_fee")] [System.Text.Json.Serialization.JsonPropertyName("total_fee")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int TotalFee { get; set; } /// @@ -67,9 +66,15 @@ /// [Newtonsoft.Json.JsonProperty("refund_fee")] [System.Text.Json.Serialization.JsonPropertyName("refund_fee")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int RefundFee { get; set; } + /// + /// 获取或设置现金退款金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("cash_refund_fee")] + [System.Text.Json.Serialization.JsonPropertyName("cash_refund_fee")] + public int? CashRefundFee { get; set; } + /// /// 获取或设置货币类型。 /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/CreatePayRefundResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/CreatePayRefundResponse.cs index 8eb694d3..b871cf09 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/CreatePayRefundResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/CreatePayRefundResponse.cs @@ -1,4 +1,4 @@ -namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models +namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models { /// /// 表示 [POST] /secapi/pay/refund 接口的响应。 diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/CreatePayRefundV2Request.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/CreatePayRefundV2Request.cs new file mode 100644 index 00000000..376c6a92 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/CreatePayRefundV2Request.cs @@ -0,0 +1,189 @@ +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models +{ + /// + /// 表示 [POST] /secapi/pay/refundv2 接口的请求。 + /// + public class CreatePayRefundV2Request : WechatTenpaySignableRequest + { + public static class Types + { + public class Detail + { + public static class Types + { + public class GoodsDetail + { + /// + /// 获取或设置商户侧商品编码。 + /// + [Newtonsoft.Json.JsonProperty("goods_id")] + [System.Text.Json.Serialization.JsonPropertyName("goods_id")] + public string MerchantGoodsId { get; set; } = string.Empty; + + /// + /// 获取或设置微信侧商品编码。 + /// + [Newtonsoft.Json.JsonProperty("wxpay_goods_id")] + [System.Text.Json.Serialization.JsonPropertyName("wxpay_goods_id")] + public string? WechatpayGoodsId { get; set; } + + /// + /// 获取或设置商品名称。 + /// + [Newtonsoft.Json.JsonProperty("goods_name")] + [System.Text.Json.Serialization.JsonPropertyName("goods_name")] + public string? GoodsName { get; set; } + + /// + /// 获取或设置商品单价(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("price")] + [System.Text.Json.Serialization.JsonPropertyName("price")] + public int Price { get; set; } + + /// + /// 获取或设置商品退款金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("refund_amount")] + [System.Text.Json.Serialization.JsonPropertyName("refund_amount")] + public int RefundAmount { get; set; } + + /// + /// 获取或设置商品退货数量。 + /// + [Newtonsoft.Json.JsonProperty("refund_quantity")] + [System.Text.Json.Serialization.JsonPropertyName("refund_quantity")] + public int RefundQuantity { get; set; } + } + } + + /// + /// 获取或设置单品列表。 + /// + [Newtonsoft.Json.JsonProperty("goods_detail")] + [System.Text.Json.Serialization.JsonPropertyName("goods_detail")] + public List? GoodsList { get; set; } + } + } + + internal static class Converters + { + internal class RequestPropertyDetailNewtonsoftJsonConverter : Newtonsoft.Json.Converters.TextualObjectInJsonFormatConverterBase + { + } + + internal class RequestPropertyDetailSystemTextJsonConverter : System.Text.Json.Converters.TextualObjectInJsonFormatConverterBase + { + } + } + + /// + /// + /// + [Newtonsoft.Json.JsonProperty("mch_id")] + [System.Text.Json.Serialization.JsonPropertyName("mch_id")] + public override string? MerchantId { get; set; } + + /// + /// + /// + [Newtonsoft.Json.JsonProperty("appid")] + [System.Text.Json.Serialization.JsonPropertyName("appid")] + public override string? AppId { get; set; } + + /// + /// 获取或设置子商户号。 + /// + [Newtonsoft.Json.JsonProperty("sub_mch_id")] + [System.Text.Json.Serialization.JsonPropertyName("sub_mch_id")] + public string? SubMerchantId { get; set; } + + /// + /// 获取或设置子商户 AppId。 + /// + [Newtonsoft.Json.JsonProperty("sub_appid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_appid")] + public string? SubAppId { get; set; } + + /// + /// 获取或设置商户订单号。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("out_trade_no")] + [System.Text.Json.Serialization.JsonPropertyName("out_trade_no")] + public string? OutTradeNumber { get; set; } + + /// + /// 获取或设置微信支付订单号。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("transaction_id")] + [System.Text.Json.Serialization.JsonPropertyName("transaction_id")] + public string? TransactionId { get; set; } + + /// + /// 获取或设置商户退款单号。 + /// + [Newtonsoft.Json.JsonProperty("out_refund_no")] + [System.Text.Json.Serialization.JsonPropertyName("out_refund_no")] + public string OutRefundNumber { get; set; } = string.Empty; + + /// + /// 获取或设置订单金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("total_fee")] + [System.Text.Json.Serialization.JsonPropertyName("total_fee")] + public int TotalFee { get; set; } + + /// + /// 获取或设置退款金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("refund_fee")] + [System.Text.Json.Serialization.JsonPropertyName("refund_fee")] + public int RefundFee { get; set; } + + /// + /// 获取或设置现金退款金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("cash_refund_fee")] + [System.Text.Json.Serialization.JsonPropertyName("cash_refund_fee")] + public int? CashRefundFee { get; set; } + + /// + /// 获取或设置货币类型。 + /// + [Newtonsoft.Json.JsonProperty("refund_fee_type")] + [System.Text.Json.Serialization.JsonPropertyName("refund_fee_type")] + public string? RefundFeeType { get; set; } + + /// + /// 获取或设置退款原因。 + /// + [Newtonsoft.Json.JsonProperty("refund_desc")] + [System.Text.Json.Serialization.JsonPropertyName("refund_desc")] + public string? Description { get; set; } + + /// + /// 获取或设置通知地址。 + /// + [Newtonsoft.Json.JsonProperty("notify_url")] + [System.Text.Json.Serialization.JsonPropertyName("notify_url")] + public string? NotifyUrl { get; set; } + + /// + /// 获取或设置退款资金来源。 + /// + [Newtonsoft.Json.JsonProperty("refund_account")] + [System.Text.Json.Serialization.JsonPropertyName("refund_account")] + public string? RefundAccount { get; set; } + + /// + /// 获取或设置商品信息。 + /// + [Newtonsoft.Json.JsonProperty("detail")] + [Newtonsoft.Json.JsonConverter(typeof(Converters.RequestPropertyDetailNewtonsoftJsonConverter))] + [System.Text.Json.Serialization.JsonPropertyName("detail")] + [System.Text.Json.Serialization.JsonConverter(typeof(Converters.RequestPropertyDetailSystemTextJsonConverter))] + public Types.Detail? Detail { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/CreatePayRefundV2Response.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/CreatePayRefundV2Response.cs new file mode 100644 index 00000000..b1c5e7fb --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/CreatePayRefundV2Response.cs @@ -0,0 +1,156 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models +{ + /// + /// 表示 [POST] /secapi/pay/refundv2 接口的响应。 + /// + public class CreatePayRefundV2Response : WechatTenpaySignableResponse + { + public static class Types + { + public class PromotionDetail : GetPayRefundV2Response.Types.PromotionDetail + { + public static new class Types + { + public class Promotion : GetPayRefundV2Response.Types.PromotionDetail.Types.Promotion + { + public static new class Types + { + public class GoodsDetail : GetPayRefundV2Response.Types.PromotionDetail.Types.Promotion.Types.GoodsDetail + { + } + } + + /// + /// 获取或设置单品列表。 + /// + [Newtonsoft.Json.JsonProperty("goods_detail")] + [System.Text.Json.Serialization.JsonPropertyName("goods_detail")] + public new Types.GoodsDetail[]? GoodsList { get; set; } + } + } + + /// + /// 获取或设置优惠信息列表。 + /// + [Newtonsoft.Json.JsonProperty("promotion_detail")] + [System.Text.Json.Serialization.JsonPropertyName("promotion_detail")] + public new Types.Promotion[]? PromotionList { get; set; } + } + } + + internal static class Converters + { + internal class ResponsePropertyPromotionDetailNewtonsoftJsonConverter : Newtonsoft.Json.Converters.TextualObjectInJsonFormatConverterBase + { + } + + internal class ResponsePropertyPromotionDetailSystemTextJsonConverter : System.Text.Json.Converters.TextualObjectInJsonFormatConverterBase + { + } + } + + /// + /// + /// + [Newtonsoft.Json.JsonProperty("mch_id")] + [System.Text.Json.Serialization.JsonPropertyName("mch_id")] + public override string? MerchantId { get; set; } + + /// + /// + /// + [Newtonsoft.Json.JsonProperty("appid")] + [System.Text.Json.Serialization.JsonPropertyName("appid")] + public override string? AppId { get; set; } + + /// + /// 获取或设置子商户号。 + /// + [Newtonsoft.Json.JsonProperty("sub_mch_id")] + [System.Text.Json.Serialization.JsonPropertyName("sub_mch_id")] + public string? SubMerchantId { get; set; } + + /// + /// 获取或设置子商户 AppId。 + /// + [Newtonsoft.Json.JsonProperty("sub_appid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_appid")] + public string? SubAppId { get; set; } + + /// + /// 获取或设置商户订单号。 + /// + [Newtonsoft.Json.JsonProperty("out_trade_no")] + [System.Text.Json.Serialization.JsonPropertyName("out_trade_no")] + public string OutTradeNumber { get; set; } = default!; + + /// + /// 获取或设置微信支付订单号。 + /// + [Newtonsoft.Json.JsonProperty("transaction_id")] + [System.Text.Json.Serialization.JsonPropertyName("transaction_id")] + public string TransactionId { get; set; } = default!; + + /// + /// 获取或设置商户退款单号。 + /// + [Newtonsoft.Json.JsonProperty("out_refund_no")] + [System.Text.Json.Serialization.JsonPropertyName("out_refund_no")] + public string OutRefundNumber { get; set; } = default!; + + /// + /// 获取或设置微信退款单号。 + /// + [Newtonsoft.Json.JsonProperty("refund_id")] + [System.Text.Json.Serialization.JsonPropertyName("refund_id")] + public string RefundId { get; set; } = default!; + + /// + /// 获取或设置订单金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("total_fee")] + [System.Text.Json.Serialization.JsonPropertyName("total_fee")] + [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] + public int TotalFee { get; set; } + + /// + /// 获取或设置货币类型。 + /// + [Newtonsoft.Json.JsonProperty("fee_type")] + [System.Text.Json.Serialization.JsonPropertyName("fee_type")] + public string? FeeType { get; set; } + + /// + /// 获取或设置退款金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("refund_fee")] + [System.Text.Json.Serialization.JsonPropertyName("refund_fee")] + [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] + public int RefundFee { get; set; } + + /// + /// 获取或设置现金支付金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("cash_fee")] + [System.Text.Json.Serialization.JsonPropertyName("cash_fee")] + [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] + public int? CashFee { get; set; } + + /// + /// 获取或设置现金退款金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("cash_refund_fee")] + [System.Text.Json.Serialization.JsonPropertyName("cash_refund_fee")] + [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] + public int? CashRefundFee { get; set; } + + /// + /// 获取或设置优惠信息。 + /// + [Newtonsoft.Json.JsonProperty("promotion_detail")] + [Newtonsoft.Json.JsonConverter(typeof(Converters.ResponsePropertyPromotionDetailNewtonsoftJsonConverter))] + [System.Text.Json.Serialization.JsonPropertyName("promotion_detail")] + [System.Text.Json.Serialization.JsonConverter(typeof(Converters.ResponsePropertyPromotionDetailSystemTextJsonConverter))] + public Types.PromotionDetail? PromotionDetail { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/CreatePayUnifiedOrderRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/CreatePayUnifiedOrderRequest.cs index 3c5fed13..c0aa5be7 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/CreatePayUnifiedOrderRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/CreatePayUnifiedOrderRequest.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models @@ -49,7 +49,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models /// [Newtonsoft.Json.JsonProperty("quantity")] [System.Text.Json.Serialization.JsonPropertyName("quantity")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int Quantity { get; set; } /// @@ -57,7 +56,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models /// [Newtonsoft.Json.JsonProperty("price")] [System.Text.Json.Serialization.JsonPropertyName("price")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int Price { get; set; } /// @@ -74,7 +72,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models /// [Newtonsoft.Json.JsonProperty("cost_price")] [System.Text.Json.Serialization.JsonPropertyName("cost_price")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int? CostPrice { get; set; } /// @@ -156,6 +153,13 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models } } + /// + /// 获取或设置接口版本号。 + /// + [Newtonsoft.Json.JsonProperty("version")] + [System.Text.Json.Serialization.JsonPropertyName("version")] + public string? Version { get; set; } + /// /// /// @@ -203,7 +207,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models /// [Newtonsoft.Json.JsonProperty("total_fee")] [System.Text.Json.Serialization.JsonPropertyName("total_fee")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int TotalFee { get; set; } /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/ExchangeRate/GetPayExchangeRateResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/ExchangeRate/GetPayExchangeRateResponse.cs index 370fda08..9a2d3989 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/ExchangeRate/GetPayExchangeRateResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/ExchangeRate/GetPayExchangeRateResponse.cs @@ -1,4 +1,4 @@ -namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models +namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models { /// /// 表示 [POST] /pay/queryexchagerate 接口的响应。 @@ -45,7 +45,6 @@ /// [Newtonsoft.Json.JsonProperty("rate")] [System.Text.Json.Serialization.JsonPropertyName("rate")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public double? ExchangeRate { get; set; } = default!; } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/GetPayOrderRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/GetPayOrderRequest.cs index 11155d91..c7f8de87 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/GetPayOrderRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/GetPayOrderRequest.cs @@ -1,10 +1,17 @@ -namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models +namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models { /// /// 表示 [POST] /pay/orderquery 接口的请求。 /// public class GetPayOrderRequest : WechatTenpaySignableRequest { + /// + /// 获取或设置接口版本号。 + /// + [Newtonsoft.Json.JsonProperty("version")] + [System.Text.Json.Serialization.JsonPropertyName("version")] + public string? Version { get; set; } + /// /// /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/GetPayOrderResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/GetPayOrderResponse.cs index 065ad34c..e93177d7 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/GetPayOrderResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/GetPayOrderResponse.cs @@ -1,4 +1,4 @@ -using System; +using System; namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models { @@ -88,6 +88,140 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models [System.Text.Json.Serialization.JsonPropertyName("discount_detail")] public Types.DiscountDetail[]? DiscountList { get; set; } } + + public class PromotionDetail + { + public static class Types + { + public class Promotion + { + public static class Types + { + public class GoodsDetail + { + /// + /// 获取或设置商品编码。 + /// + [Newtonsoft.Json.JsonProperty("goods_id")] + [System.Text.Json.Serialization.JsonPropertyName("goods_id")] + public string GoodsId { get; set; } = default!; + + /// + /// 获取或设置商品数量。 + /// + [Newtonsoft.Json.JsonProperty("quantity")] + [System.Text.Json.Serialization.JsonPropertyName("quantity")] + [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] + public int Quantity { get; set; } + + /// + /// 获取或设置商品单价(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("price")] + [System.Text.Json.Serialization.JsonPropertyName("price")] + [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] + public int Price { get; set; } + + /// + /// 获取或设置商品优惠金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("discount_amount")] + [System.Text.Json.Serialization.JsonPropertyName("discount_amount")] + [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] + public int DiscountAmount { get; set; } + + /// + /// 获取或设置商品备注。 + /// + [Newtonsoft.Json.JsonProperty("goods_remark")] + [System.Text.Json.Serialization.JsonPropertyName("goods_remark")] + public string? GoodsRemark { get; set; } + } + } + + /// + /// 获取或设置券或者立减优惠 ID。 + /// + [Newtonsoft.Json.JsonProperty("promotion_id")] + [System.Text.Json.Serialization.JsonPropertyName("promotion_id")] + public string PromotionId { get; set; } = default!; + + /// + /// 获取或设置优惠名称。 + /// + [Newtonsoft.Json.JsonProperty("name")] + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string? Name { get; set; } + + /// + /// 获取或设置优惠范围。 + /// + [Newtonsoft.Json.JsonProperty("scope")] + [System.Text.Json.Serialization.JsonPropertyName("scope")] + public string? Scope { get; set; } + + /// + /// 获取或设置优惠类型。 + /// + [Newtonsoft.Json.JsonProperty("type")] + [System.Text.Json.Serialization.JsonPropertyName("type")] + public string? Type { get; set; } + + /// + /// 获取或设置优惠券面额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("amount")] + [System.Text.Json.Serialization.JsonPropertyName("amount")] + [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] + public int Amount { get; set; } + + /// + /// 获取或设置活动 ID。 + /// + [Newtonsoft.Json.JsonProperty("activity_id")] + [System.Text.Json.Serialization.JsonPropertyName("activity_id")] + public string? ActivityId { get; set; } + + /// + /// 获取或设置微信出资(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("wxpay_contribute")] + [System.Text.Json.Serialization.JsonPropertyName("wxpay_contribute")] + [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] + public int? WechatpayContribute { get; set; } + + /// + /// 获取或设置商户出资(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("merchant_contribute")] + [System.Text.Json.Serialization.JsonPropertyName("merchant_contribute")] + [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] + public int? MerchantContribute { get; set; } + + /// + /// 获取或设置其他出资(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("other_contribute")] + [System.Text.Json.Serialization.JsonPropertyName("other_contribute")] + [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] + public int? OtherContribute { get; set; } + + /// + /// 获取或设置单品列表。 + /// + [Newtonsoft.Json.JsonProperty("goods_detail")] + [System.Text.Json.Serialization.JsonPropertyName("goods_detail")] + public Types.GoodsDetail[]? GoodsList { get; set; } + } + } + + /// + /// 获取或设置优惠信息列表。 + /// + [Newtonsoft.Json.JsonProperty("promotion_detail")] + [System.Text.Json.Serialization.JsonPropertyName("promotion_detail")] + public Types.Promotion[]? PromotionList { get; set; } + } } internal static class Converters @@ -107,6 +241,14 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models internal class ResponsePropertyDetailSystemTextJsonConverter : System.Text.Json.Converters.TextualObjectInJsonFormatConverterBase { } + + internal class ResponsePropertyPromotionDetailNewtonsoftJsonConverter : Newtonsoft.Json.Converters.TextualObjectInJsonFormatConverterBase + { + } + + internal class ResponsePropertyPromotionDetailSystemTextJsonConverter : System.Text.Json.Converters.TextualObjectInJsonFormatConverterBase + { + } } /// @@ -303,5 +445,14 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models [System.Text.Json.Serialization.JsonPropertyName("detail")] [System.Text.Json.Serialization.JsonConverter(typeof(Converters.ResponsePropertyDetailSystemTextJsonConverter))] public Types.Detail? Detail { get; set; } + + /// + /// 获取或设置优惠信息。 + /// + [Newtonsoft.Json.JsonProperty("promotion_detail")] + [Newtonsoft.Json.JsonConverter(typeof(Converters.ResponsePropertyPromotionDetailNewtonsoftJsonConverter))] + [System.Text.Json.Serialization.JsonPropertyName("promotion_detail")] + [System.Text.Json.Serialization.JsonConverter(typeof(Converters.ResponsePropertyPromotionDetailSystemTextJsonConverter))] + public Types.PromotionDetail? PromotionDetail { get; set; } } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/GetPayRefundV2Request.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/GetPayRefundV2Request.cs new file mode 100644 index 00000000..bf2acc3e --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/GetPayRefundV2Request.cs @@ -0,0 +1,64 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models +{ + /// + /// 表示 [POST] /pay/refundqueryv2 接口的请求。 + /// + public class GetPayRefundV2Request : WechatTenpaySignableRequest + { + /// + /// + /// + [Newtonsoft.Json.JsonProperty("mch_id")] + [System.Text.Json.Serialization.JsonPropertyName("mch_id")] + public override string? MerchantId { get; set; } + + /// + /// + /// + [Newtonsoft.Json.JsonProperty("appid")] + [System.Text.Json.Serialization.JsonPropertyName("appid")] + public override string? AppId { get; set; } + + /// + /// 获取或设置子商户号。 + /// + [Newtonsoft.Json.JsonProperty("sub_mch_id")] + [System.Text.Json.Serialization.JsonPropertyName("sub_mch_id")] + public string? SubMerchantId { get; set; } + + /// + /// 获取或设置子商户 AppId。 + /// + [Newtonsoft.Json.JsonProperty("sub_appid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_appid")] + public string? SubAppId { get; set; } + + /// + /// 获取或设置商户订单号。与字段 四选一。 + /// + [Newtonsoft.Json.JsonProperty("out_trade_no")] + [System.Text.Json.Serialization.JsonPropertyName("out_trade_no")] + public string? OutTradeNumber { get; set; } + + /// + /// 获取或设置微信支付订单号。与字段 四选一。 + /// + [Newtonsoft.Json.JsonProperty("transaction_id")] + [System.Text.Json.Serialization.JsonPropertyName("transaction_id")] + public string? TransactionId { get; set; } + + /// + /// 获取或设置商户退款单号。与字段 四选一。 + /// + [Newtonsoft.Json.JsonProperty("out_refund_no")] + [System.Text.Json.Serialization.JsonPropertyName("out_refund_no")] + public string? OutRefundNumber { get; set; } + + /// + /// 获取或设置微信退款单号。与字段 四选一。 + /// + [Newtonsoft.Json.JsonProperty("refund_id")] + [System.Text.Json.Serialization.JsonPropertyName("refund_id")] + public string? RefundId { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/GetPayRefundV2Response.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/GetPayRefundV2Response.cs new file mode 100644 index 00000000..8d3352a3 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/Pay/GetPayRefundV2Response.cs @@ -0,0 +1,226 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models +{ + /// + /// 表示 [POST] /pay/refundqueryv2 接口的响应。 + /// + public class GetPayRefundV2Response : WechatTenpaySignableResponse + { + public static class Types + { + public class PromotionDetail + { + public static class Types + { + public class Promotion + { + public static class Types + { + public class GoodsDetail + { + /// + /// 获取或设置商品编码。 + /// + [Newtonsoft.Json.JsonProperty("goods_id")] + [System.Text.Json.Serialization.JsonPropertyName("goods_id")] + public string GoodsId { get; set; } = default!; + + /// + /// 获取或设置商品单价(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("price")] + [System.Text.Json.Serialization.JsonPropertyName("price")] + [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] + public int Price { get; set; } + + /// + /// 获取或设置商品退款数量。 + /// + [Newtonsoft.Json.JsonProperty("refund_quantity")] + [System.Text.Json.Serialization.JsonPropertyName("refund_quantity")] + [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] + public int RefundQuantity { get; set; } + + /// + /// 获取或设置商品优惠退款金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("refund_amount")] + [System.Text.Json.Serialization.JsonPropertyName("refund_amount")] + [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] + public int RefundAmount { get; set; } + } + } + + /// + /// 获取或设置券或者立减优惠 ID。 + /// + [Newtonsoft.Json.JsonProperty("promotion_id")] + [System.Text.Json.Serialization.JsonPropertyName("promotion_id")] + public string PromotionId { get; set; } = default!; + + /// + /// 获取或设置优惠名称。 + /// + [Newtonsoft.Json.JsonProperty("name")] + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string? Name { get; set; } + + /// + /// 获取或设置优惠范围。 + /// + [Newtonsoft.Json.JsonProperty("scope")] + [System.Text.Json.Serialization.JsonPropertyName("scope")] + public string? Scope { get; set; } + + /// + /// 获取或设置优惠类型。 + /// + [Newtonsoft.Json.JsonProperty("type")] + [System.Text.Json.Serialization.JsonPropertyName("type")] + public string? Type { get; set; } + + /// + /// 获取或设置优惠券退款金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("refund_amount")] + [System.Text.Json.Serialization.JsonPropertyName("refund_amount")] + public int RefundAmount { get; set; } + + /// + /// 获取或设置单品列表。 + /// + [Newtonsoft.Json.JsonProperty("goods_detail")] + [System.Text.Json.Serialization.JsonPropertyName("goods_detail")] + public Types.GoodsDetail[]? GoodsList { get; set; } + } + } + + /// + /// 获取或设置优惠信息列表。 + /// + [Newtonsoft.Json.JsonProperty("promotion_detail")] + [System.Text.Json.Serialization.JsonPropertyName("promotion_detail")] + public Types.Promotion[]? PromotionList { get; set; } + } + } + + internal static class Converters + { + internal class ResponsePropertyPromotionDetailNewtonsoftJsonConverter : Newtonsoft.Json.Converters.TextualObjectInJsonFormatConverterBase + { + } + + internal class ResponsePropertyPromotionDetailSystemTextJsonConverter : System.Text.Json.Converters.TextualObjectInJsonFormatConverterBase + { + } + } + + /// + /// + /// + [Newtonsoft.Json.JsonProperty("mch_id")] + [System.Text.Json.Serialization.JsonPropertyName("mch_id")] + public override string? MerchantId { get; set; } + + /// + /// + /// + [Newtonsoft.Json.JsonProperty("appid")] + [System.Text.Json.Serialization.JsonPropertyName("appid")] + public override string? AppId { get; set; } + + /// + /// 获取或设置子商户号。 + /// + [Newtonsoft.Json.JsonProperty("sub_mch_id")] + [System.Text.Json.Serialization.JsonPropertyName("sub_mch_id")] + public string? SubMerchantId { get; set; } + + /// + /// 获取或设置子商户 AppId。 + /// + [Newtonsoft.Json.JsonProperty("sub_appid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_appid")] + public string? SubAppId { get; set; } + + /// + /// 获取或设置商户订单号。 + /// + [Newtonsoft.Json.JsonProperty("out_trade_no")] + [System.Text.Json.Serialization.JsonPropertyName("out_trade_no")] + public string OutTradeNumber { get; set; } = default!; + + /// + /// 获取或设置微信支付订单号。 + /// + [Newtonsoft.Json.JsonProperty("transaction_id")] + [System.Text.Json.Serialization.JsonPropertyName("transaction_id")] + public string TransactionId { get; set; } = default!; + + /// + /// 获取或设置商户退款单号。 + /// + [Newtonsoft.Json.JsonProperty("out_refund_no")] + [System.Text.Json.Serialization.JsonPropertyName("out_refund_no")] + public string OutRefundNumber { get; set; } = default!; + + /// + /// 获取或设置微信退款单号。 + /// + [Newtonsoft.Json.JsonProperty("refund_id")] + [System.Text.Json.Serialization.JsonPropertyName("refund_id")] + public string RefundId { get; set; } = default!; + + /// + /// 获取或设置退款渠道。 + /// + [Newtonsoft.Json.JsonProperty("refund_channel")] + [System.Text.Json.Serialization.JsonPropertyName("refund_channel")] + public string? RefundChannel { get; set; } + + /// + /// 获取或设置退款状态。 + /// + [Newtonsoft.Json.JsonProperty("refund_status")] + [System.Text.Json.Serialization.JsonPropertyName("refund_status")] + public string RefundStatus { get; set; } = default!; + + /// + /// 获取或设置退款资金来源。 + /// + [Newtonsoft.Json.JsonProperty("refund_account")] + [System.Text.Json.Serialization.JsonPropertyName("refund_account")] + public string? RefundAccount { get; set; } + + /// + /// 获取或设置退款入账账户。 + /// + [Newtonsoft.Json.JsonProperty("refund_recv_accout")] + [System.Text.Json.Serialization.JsonPropertyName("refund_recv_accout")] + public string? RefundReceiveAccount { get; set; } + + /// + /// 获取或设置退款金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("refund_fee")] + [System.Text.Json.Serialization.JsonPropertyName("refund_fee")] + [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] + public int RefundFee { get; set; } + + /// + /// 获取或设置现金退款金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("cash_refund_fee")] + [System.Text.Json.Serialization.JsonPropertyName("cash_refund_fee")] + [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] + public int? CashRefundFee { get; set; } + + /// + /// 获取或设置优惠信息。 + /// + [Newtonsoft.Json.JsonProperty("promotion_detail")] + [Newtonsoft.Json.JsonConverter(typeof(Converters.ResponsePropertyPromotionDetailNewtonsoftJsonConverter))] + [System.Text.Json.Serialization.JsonPropertyName("promotion_detail")] + [System.Text.Json.Serialization.JsonConverter(typeof(Converters.ResponsePropertyPromotionDetailSystemTextJsonConverter))] + public Types.PromotionDetail? PromotionDetail { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersRedPack/SendPayMarketingTransfersGroupRedPackRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersRedPack/SendPayMarketingTransfersGroupRedPackRequest.cs index 318e7f01..61125652 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersRedPack/SendPayMarketingTransfersGroupRedPackRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersRedPack/SendPayMarketingTransfersGroupRedPackRequest.cs @@ -1,4 +1,4 @@ -namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models +namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models { /// /// 表示 [POST] /mmpaymkttransfers/sendgroupredpack 接口的请求。 @@ -59,7 +59,6 @@ /// [Newtonsoft.Json.JsonProperty("total_amount")] [System.Text.Json.Serialization.JsonPropertyName("total_amount")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int TotalAmount { get; set; } /// @@ -68,7 +67,6 @@ /// [Newtonsoft.Json.JsonProperty("total_num")] [System.Text.Json.Serialization.JsonPropertyName("total_num")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int TotalCount { get; set; } = 1; /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersRedPack/SendPayMarketingTransfersMiniProgramRedPackRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersRedPack/SendPayMarketingTransfersMiniProgramRedPackRequest.cs index a581744a..d751e456 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersRedPack/SendPayMarketingTransfersMiniProgramRedPackRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersRedPack/SendPayMarketingTransfersMiniProgramRedPackRequest.cs @@ -1,4 +1,4 @@ -namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models +namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models { /// /// 表示 [POST] /mmpaymkttransfers/sendminiprogramhb 接口的请求。 @@ -45,7 +45,6 @@ /// [Newtonsoft.Json.JsonProperty("total_amount")] [System.Text.Json.Serialization.JsonPropertyName("total_amount")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int TotalAmount { get; set; } /// @@ -54,7 +53,6 @@ /// [Newtonsoft.Json.JsonProperty("total_num")] [System.Text.Json.Serialization.JsonPropertyName("total_num")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int TotalCount { get; set; } = 1; /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersRedPack/SendPayMarketingTransfersRedPackRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersRedPack/SendPayMarketingTransfersRedPackRequest.cs index af482d3b..c883bbbf 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersRedPack/SendPayMarketingTransfersRedPackRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersRedPack/SendPayMarketingTransfersRedPackRequest.cs @@ -1,4 +1,4 @@ -namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models +namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models { /// /// 表示 [POST] /mmpaymkttransfers/sendredpack 接口的请求。 @@ -59,7 +59,6 @@ /// [Newtonsoft.Json.JsonProperty("total_amount")] [System.Text.Json.Serialization.JsonPropertyName("total_amount")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int TotalAmount { get; set; } /// @@ -68,7 +67,6 @@ /// [Newtonsoft.Json.JsonProperty("total_num")] [System.Text.Json.Serialization.JsonPropertyName("total_num")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int TotalCount { get; set; } = 1; /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersRedPack/WeWork/SendPayMarketingTransfersWeWorkRedPackRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersRedPack/WeWork/SendPayMarketingTransfersWeWorkRedPackRequest.cs index 7b01cc4b..73978b2f 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersRedPack/WeWork/SendPayMarketingTransfersWeWorkRedPackRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersRedPack/WeWork/SendPayMarketingTransfersWeWorkRedPackRequest.cs @@ -1,4 +1,4 @@ -namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models +namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models { /// /// 表示 [POST] /mmpaymkttransfers/sendworkwxredpack 接口的请求。 @@ -59,7 +59,6 @@ /// [Newtonsoft.Json.JsonProperty("total_amount")] [System.Text.Json.Serialization.JsonPropertyName("total_amount")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int TotalAmount { get; set; } /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersTransfer/CreatePayMarketingTransfersPromotionTransferRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersTransfer/CreatePayMarketingTransfersPromotionTransferRequest.cs index 19204159..19377cb3 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersTransfer/CreatePayMarketingTransfersPromotionTransferRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersTransfer/CreatePayMarketingTransfersPromotionTransferRequest.cs @@ -1,4 +1,4 @@ -namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models +namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models { /// /// 表示 [POST] /mmpaymkttransfers/promotion/transfers 接口的请求。 @@ -45,7 +45,6 @@ /// [Newtonsoft.Json.JsonProperty("amount")] [System.Text.Json.Serialization.JsonPropertyName("amount")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int Amount { get; set; } /// @@ -89,7 +88,6 @@ /// [Newtonsoft.Json.JsonProperty("brand_id")] [System.Text.Json.Serialization.JsonPropertyName("brand_id")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int? BrandId { get; set; } /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersTransfer/WeWork/CreatePayMarketingTransfersPromotionWeWorkTransferRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersTransfer/WeWork/CreatePayMarketingTransfersPromotionWeWorkTransferRequest.cs index 1fe7921a..ac8f3020 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersTransfer/WeWork/CreatePayMarketingTransfersPromotionWeWorkTransferRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersTransfer/WeWork/CreatePayMarketingTransfersPromotionWeWorkTransferRequest.cs @@ -1,4 +1,4 @@ -namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models +namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models { /// /// 表示 [POST] /mmpaymkttransfers/promotion/paywwsptrans2pocket 接口的请求。 @@ -52,7 +52,6 @@ /// [Newtonsoft.Json.JsonProperty("amount")] [System.Text.Json.Serialization.JsonPropertyName("amount")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int Amount { get; set; } /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayServicePartnerTransfers/CreatePayServicePartnerTransfersPayToBankRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayServicePartnerTransfers/CreatePayServicePartnerTransfersPayToBankRequest.cs index 607bbad0..9ea09c4e 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayServicePartnerTransfers/CreatePayServicePartnerTransfersPayToBankRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayServicePartnerTransfers/CreatePayServicePartnerTransfersPayToBankRequest.cs @@ -1,4 +1,4 @@ -namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models +namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models { /// /// 表示 [POST] /mmpaysptrans/pay_bank 接口的请求。 @@ -31,7 +31,6 @@ /// [Newtonsoft.Json.JsonProperty("amount")] [System.Text.Json.Serialization.JsonPropertyName("amount")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int Amount { get; set; } /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/VehiclePartner/ApplyVehiclePartnerPayRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/VehiclePartner/ApplyVehiclePartnerPayRequest.cs index ff93da7f..ca08970d 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/VehiclePartner/ApplyVehiclePartnerPayRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/VehiclePartner/ApplyVehiclePartnerPayRequest.cs @@ -1,4 +1,4 @@ -using System; +using System; namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models { @@ -43,8 +43,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models /// [Newtonsoft.Json.JsonProperty("charging_time")] [System.Text.Json.Serialization.JsonPropertyName("charging_time")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] - public int? ChargingTime { get; set; } + public int? ChargingDuration { get; set; } /// /// 获取或设置加油站名称。 @@ -79,7 +78,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models /// [Newtonsoft.Json.JsonProperty("gas_amount")] [System.Text.Json.Serialization.JsonPropertyName("gas_amount")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int? GasAmount { get; set; } /// @@ -87,7 +85,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models /// [Newtonsoft.Json.JsonProperty("gas_gun_no")] [System.Text.Json.Serialization.JsonPropertyName("gas_gun_no")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int? GasGunNumber { get; set; } /// @@ -109,11 +106,10 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models /// [Newtonsoft.Json.JsonProperty("carrying_capacity")] [System.Text.Json.Serialization.JsonPropertyName("carrying_capacity")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int? CarryingCapacity { get; set; } /// - /// 获取或设置核载区间。 + /// 获取或设置核载区间字符串。 /// [Newtonsoft.Json.JsonProperty("carrying_range")] [System.Text.Json.Serialization.JsonPropertyName("carrying_range")] @@ -203,7 +199,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models /// [Newtonsoft.Json.JsonProperty("total_fee")] [System.Text.Json.Serialization.JsonPropertyName("total_fee")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int TotalFee { get; set; } /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/VehiclePartner/NotifyVehiclePartnerPayRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/VehiclePartner/NotifyVehiclePartnerPayRequest.cs index 737ec91a..1610dbac 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/VehiclePartner/NotifyVehiclePartnerPayRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/VehiclePartner/NotifyVehiclePartnerPayRequest.cs @@ -1,4 +1,4 @@ -using System; +using System; namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models { @@ -57,7 +57,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models /// [Newtonsoft.Json.JsonProperty("free_time")] [System.Text.Json.Serialization.JsonPropertyName("free_time")] - [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] public int? FreeDuration { get; set; } /// diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV2.UnitTests/ModelSamples/Pay/CreatePayRefundV2Request.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV2.UnitTests/ModelSamples/Pay/CreatePayRefundV2Request.json new file mode 100644 index 00000000..29626919 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV2.UnitTests/ModelSamples/Pay/CreatePayRefundV2Request.json @@ -0,0 +1,13 @@ +{ + "appid": "wx2421b1c4370ec43b", + "mch_id": "10000100", + "nonce_str": "6cefdb308e1e2e8aabd48cf79e546a02", + "notify_url": "https://weixin.qq.com/", + "out_refund_no": "1415701182", + "out_trade_no": "1415757673", + "refund_fee": "1", + "total_fee": "1", + "sign": "FE56DD4AA85C0EECA82C35595A69E153", + "cash_refund_fee": "90", + "detail": "{\"goods_detail\":[{\"goods_id\":\"商品编码\",\"wxpay_goods_id\":\"1001\",\"goods_name\":\"iPhone6s 16G\",\"refund_amount\":528800,\"refund_quantity\":1,\"price\":528800},{\"goods_id\":\"商品编码\",\"wxpay_goods_id\":\"1001\",\"goods_name\":\"iPhone6s 16G\",\"refund_amount\":528800,\"refund_quantity\":1,\"price\":608800}]}" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV2.UnitTests/ModelSamples/Pay/CreatePayRefundV2Response.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV2.UnitTests/ModelSamples/Pay/CreatePayRefundV2Response.json new file mode 100644 index 00000000..ed84ae5b --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV2.UnitTests/ModelSamples/Pay/CreatePayRefundV2Response.json @@ -0,0 +1,18 @@ +{ + "return_code": "SUCCESS", + "return_msg": "OK", + "appid": "wx2421b1c4370ec43b", + "mch_id": "10000100", + "nonce_str": "NfsMFbUFpdbEhPXP", + "sign": "B7274EB9F8925EB93100DD2085FA56C0", + "result_code": "SUCCESS", + "transaction_id": "1008450740201411110005820873", + "out_trade_no": "1415757673", + "out_refund_no": "1415701182", + "refund_id": "2008450740201411110000174436", + "total_fee": "1", + "refund_fee": "1", + "cash_fee": "1", + "cash_refund_fee": "1", + "promotion_detail": "{\"promotion_detail\":[{\"promotion_id\":\"109519\",\"scope\":\"SINGLE\",\"type\":\"DISCOUNT\",\"refund_amout\":5,\"goods_detail\":[{\"goods_id\":\"a_goods1\",\"refund_quantity\":7,\"price\":1,\"refund_amount\":4},{\"goods_id\":\"a_goods2\",\"refund_quantity\":1,\"price\":2,\"refund_amount\":1}]}]}" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV2.UnitTests/ModelSamples/Pay/GetPayRefundV2Request.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV2.UnitTests/ModelSamples/Pay/GetPayRefundV2Request.json new file mode 100644 index 00000000..d8a2e974 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV2.UnitTests/ModelSamples/Pay/GetPayRefundV2Request.json @@ -0,0 +1,8 @@ +{ + "appid": "wx2421b1c4370ec43b", + "mch_id": "10000100", + "nonce_str": "0b9f35f484df17a732e537c37708d1d0", + "out_refund_no": "123456789", + "sub_mch_id": "1900000109", + "sign": "66FFB727015F450D167EF38CCC549521" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV2.UnitTests/ModelSamples/Pay/GetPayRefundV2Response.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV2.UnitTests/ModelSamples/Pay/GetPayRefundV2Response.json new file mode 100644 index 00000000..51a7ba26 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV2.UnitTests/ModelSamples/Pay/GetPayRefundV2Response.json @@ -0,0 +1,18 @@ +{ + "appid": "wx2421b1c4370ec43b", + "mch_id": "10000100", + "nonce_str": "TeqClE3i0mvn3DrK", + "out_refund_no": "1415701182", + "out_trade_no": "1415757673", + "refund_fee": 3, + "refund_id": "2008450740201411110000174436", + "refund_status": "PROCESSING", + "promotion_detail": "{\"promotion_detail\":[{\"promotion_id\":\"109519\",\"scope\":\"SINGLE\",\"type\":\"DISCOUNT\",\"refund_amount\":5,\"goods_detail\":[{\"goods_id\":\"a_goods1\",\"refund_quantity\":7,\"price\":1,\"refund_amount\":4},{\"goods_id\":\"a_goods2\",\"refund_quantity\":1,\"price\":2,\"refund_amount\":1}]}]}", + "result_code": "SUCCESS", + "return_code": "SUCCESS", + "return_msg": "OK", + "sign": "1F2841558E233C33ABA71A961D27561C", + "refund_recv_accout": "1F2841558E233C33ABA71A961D27561C", + "transaction_id": "1008450740201411110005820873", + "cash_refund_fee": 90 +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV2.UnitTests/ModelSamples/VehiclePartner/ApplyVehiclePartnerPayRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV2.UnitTests/ModelSamples/VehiclePartner/ApplyVehiclePartnerPayRequest.json index 7ea85cb6..471f3434 100644 --- a/test/SKIT.FlurlHttpClient.Wechat.TenpayV2.UnitTests/ModelSamples/VehiclePartner/ApplyVehiclePartnerPayRequest.json +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV2.UnitTests/ModelSamples/VehiclePartner/ApplyVehiclePartnerPayRequest.json @@ -1,4 +1,4 @@ -{ +{ "mch_id": "10000098", "sub_mch_id": "10000100", "appid": "wxcbda96de0b165486", @@ -12,5 +12,5 @@ "notify_url": "http://yoursite.com/wxpay.html", "version": "3.0", "trade_scene": " PARKING", - "scene_info": "{\"scene_info\":{\"start_time\":\"20170926114339\",\"end_time\":\"20170826114339\",\"charging_time\":\"3600\",\"free_time\":\"1200\",\"plate_number\":\"CB1000sdfasd\",\"car_type\":\"大型车\",\"parking_name\":\"欢乐海岸停车场\"}}" + "scene_info": "{\"scene_info\":{\"start_time\":\"20170926114339\",\"end_time\":\"20170826114339\",\"charging_time\":3600,\"free_time\":1200,\"plate_number\":\"CB1000sdfasd\",\"car_type\":\"大型车\",\"parking_name\":\"欢乐海岸停车场\"}}" } diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV2.UnitTests/ModelSamples/VehiclePartner/NotifyVehiclePartnerPayRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV2.UnitTests/ModelSamples/VehiclePartner/NotifyVehiclePartnerPayRequest.json index ebc93b03..7998e51a 100644 --- a/test/SKIT.FlurlHttpClient.Wechat.TenpayV2.UnitTests/ModelSamples/VehiclePartner/NotifyVehiclePartnerPayRequest.json +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV2.UnitTests/ModelSamples/VehiclePartner/NotifyVehiclePartnerPayRequest.json @@ -1,4 +1,4 @@ -{ +{ "mch_id": "100000981", "sub_mch_id": "10000100", "appid": "wxcbda96de0b165486", @@ -6,5 +6,5 @@ "sign_type": "HMAC-SHA256", "trade_scene": "PARKING", "sign": "EE088059BBC9141264F8D14293AD6C4BB94CEA8C08AA98FBF93E262D445F8FF5", - "scene_info": "{\"scene_info\":{\"start_time\":\"20170926114339\",\"plate_number\":\"CB1000sdfasd\",\"car_type\":\"大型车\",\"parking_name\":\"欢乐海岸停车场\",\"free_time\":\"1200\"}}" + "scene_info": "{\"scene_info\":{\"start_time\":\"20170926114339\",\"plate_number\":\"CB1000sdfasd\",\"car_type\":\"大型车\",\"parking_name\":\"欢乐海岸停车场\",\"free_time\":1200}}" }