From 0c3f4dcc4c5d9777c210c63e1cb5fc1026a207fd Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Tue, 30 Sep 2025 12:08:35 +0800 Subject: [PATCH] =?UTF-8?q?feat(tenpayv2):=20=E6=96=B0=E5=A2=9E=E4=BC=81?= =?UTF-8?q?=E4=B8=9A=E5=BE=AE=E4=BF=A1=E6=9F=A5=E8=AF=A2=E5=90=91=E5=91=98?= =?UTF-8?q?=E5=B7=A5=E4=BB=98=E6=AC=BE=E8=AE=B0=E5=BD=95=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/WechatTenpayV2/Basic_ModelDefinition.md | 2 + ...PayMarketingTransfersTransferExtensions.cs | 22 +++++ ...ketingTransfersPromotionTransferRequest.cs | 2 +- ...yMarketingTransfersTransferInfoResponse.cs | 2 +- ...TransfersPromotionWeWorkTransferRequest.cs | 2 +- ...TransfersPromotionWeWorkTransferRequest.cs | 29 ++++++ ...ransfersPromotionWeWorkTransferResponse.cs | 98 +++++++++++++++++++ ...ansfersPromotionWeWorkTransferRequest.json | 7 ++ ...nsfersPromotionWeWorkTransferResponse.json | 15 +++ 9 files changed, 176 insertions(+), 3 deletions(-) create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersTransfer/WeWork/GetPayMarketingTransfersPromotionWeWorkTransferRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersTransfer/WeWork/GetPayMarketingTransfersPromotionWeWorkTransferResponse.cs create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV2.UnitTests/ModelSamples/PayMarketingTransfersTransfer/WeWork/GetPayMarketingTransfersPromotionWeWorkTransferRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV2.UnitTests/ModelSamples/PayMarketingTransfersTransfer/WeWork/GetPayMarketingTransfersPromotionWeWorkTransferResponse.json diff --git a/docs/WechatTenpayV2/Basic_ModelDefinition.md b/docs/WechatTenpayV2/Basic_ModelDefinition.md index f1c370a7..e090b290 100644 --- a/docs/WechatTenpayV2/Basic_ModelDefinition.md +++ b/docs/WechatTenpayV2/Basic_ModelDefinition.md @@ -656,3 +656,5 @@ - 向员工付款: - 向员工付款:`CreatePayMarketingTransfersPromotionWeWorkTransfer` + + - 查询付款记录:`GetPayMarketingTransfersPromotionWeWorkTransfers` diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Extensions/WechatTenpayClientExecutePayMarketingTransfersTransferExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Extensions/WechatTenpayClientExecutePayMarketingTransfersTransferExtensions.cs index 93b6aa0a..0425c753 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Extensions/WechatTenpayClientExecutePayMarketingTransfersTransferExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Extensions/WechatTenpayClientExecutePayMarketingTransfersTransferExtensions.cs @@ -110,6 +110,28 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV2 return await client.SendFlurlRequestAsXmlAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } + + /// + /// 异步调用 [POST] /mmpaymkttransfers/promotion/querywwsptrans2pocket 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteGetPayMarketingTransfersPromotionWeWorkTransferAsync(this WechatTenpayClient client, Models.GetPayMarketingTransfersPromotionWeWorkTransferRequest 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, "mmpaymkttransfers", "promotion", "querywwsptrans2pocket"); + + return await client.SendFlurlRequestAsXmlAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } #endregion } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersTransfer/CreatePayMarketingTransfersPromotionTransferRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersTransfer/CreatePayMarketingTransfersPromotionTransferRequest.cs index 19377cb3..ee68e0cd 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersTransfer/CreatePayMarketingTransfersPromotionTransferRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersTransfer/CreatePayMarketingTransfersPromotionTransferRequest.cs @@ -27,7 +27,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models public string PartnerTradeNumber { get; set; } = string.Empty; /// - /// 获取或设置用户的 OpenId。 + /// 获取或设置收款用户的 OpenId。 /// [Newtonsoft.Json.JsonProperty("openid")] [System.Text.Json.Serialization.JsonPropertyName("openid")] diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersTransfer/GetPayMarketingTransfersTransferInfoResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersTransfer/GetPayMarketingTransfersTransferInfoResponse.cs index d4cf21f2..8633cb87 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersTransfer/GetPayMarketingTransfersTransferInfoResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersTransfer/GetPayMarketingTransfersTransferInfoResponse.cs @@ -59,7 +59,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models public string? Description { get; set; } /// - /// 获取或设置用户的 OpenId。 + /// 获取或设置收款用户的 OpenId。 /// [Newtonsoft.Json.JsonProperty("openid")] [System.Text.Json.Serialization.JsonPropertyName("openid")] 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 ac8f3020..476f7211 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersTransfer/WeWork/CreatePayMarketingTransfersPromotionWeWorkTransferRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersTransfer/WeWork/CreatePayMarketingTransfersPromotionWeWorkTransferRequest.cs @@ -27,7 +27,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models public string PartnerTradeNumber { get; set; } = string.Empty; /// - /// 获取或设置用户的 OpenId。 + /// 获取或设置收款用户的 OpenId。 /// [Newtonsoft.Json.JsonProperty("openid")] [System.Text.Json.Serialization.JsonPropertyName("openid")] diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersTransfer/WeWork/GetPayMarketingTransfersPromotionWeWorkTransferRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersTransfer/WeWork/GetPayMarketingTransfersPromotionWeWorkTransferRequest.cs new file mode 100644 index 00000000..24bd1bfb --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersTransfer/WeWork/GetPayMarketingTransfersPromotionWeWorkTransferRequest.cs @@ -0,0 +1,29 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models +{ + /// + /// 表示 [POST] /mmpaymkttransfers/promotion/querywwsptrans2pocket 接口的请求。 + /// + public class GetPayMarketingTransfersPromotionWeWorkTransferRequest : 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("partner_trade_no")] + [System.Text.Json.Serialization.JsonPropertyName("partner_trade_no")] + public string PartnerTradeNumber { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersTransfer/WeWork/GetPayMarketingTransfersPromotionWeWorkTransferResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersTransfer/WeWork/GetPayMarketingTransfersPromotionWeWorkTransferResponse.cs new file mode 100644 index 00000000..dbb47eea --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Models/PayMarketingTransfersTransfer/WeWork/GetPayMarketingTransfersPromotionWeWorkTransferResponse.cs @@ -0,0 +1,98 @@ +using System; + +namespace SKIT.FlurlHttpClient.Wechat.TenpayV2.Models +{ + /// + /// 表示 [POST] /mmpaymkttransfers/promotion/querywwsptrans2pocket 接口的响应。 + /// + public class GetPayMarketingTransfersPromotionWeWorkTransferResponse : WechatTenpaySignableResponse + { + /// + /// + /// + [Newtonsoft.Json.JsonProperty("mch_id")] + [System.Text.Json.Serialization.JsonPropertyName("mch_id")] +#pragma warning disable CS8618 +#pragma warning disable CS8765 + public override string MerchantId { get; set; } +#pragma warning restore CS8765 +#pragma warning restore CS8618 + + /// + /// + /// + [Newtonsoft.Json.JsonProperty("appid")] + [System.Text.Json.Serialization.JsonPropertyName("appid")] +#pragma warning disable CS8618 +#pragma warning disable CS8765 + public override string AppId { get; set; } +#pragma warning restore CS8765 +#pragma warning restore CS8618 + + /// + /// 获取或设置商户付款单号。 + /// + [Newtonsoft.Json.JsonProperty("partner_trade_no")] + [System.Text.Json.Serialization.JsonPropertyName("partner_trade_no")] + public string PartnerTradeNumber { get; set; } = default!; + + /// + /// 获取或设置微信付款单号。 + /// + [Newtonsoft.Json.JsonProperty("detail_id")] + [System.Text.Json.Serialization.JsonPropertyName("detail_id")] + public string PaymentNumber { get; set; } = default!; + + /// + /// 获取或设置金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("payment_amount")] + [System.Text.Json.Serialization.JsonPropertyName("payment_amount")] + [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] + public int Amount { get; set; } + + /// + /// 获取或设置终端设备号。 + /// + [Newtonsoft.Json.JsonProperty("desc")] + [System.Text.Json.Serialization.JsonPropertyName("desc")] + public string? Description { get; set; } + + /// + /// 获取或设置收款用户的 OpenId。 + /// + [Newtonsoft.Json.JsonProperty("openid")] + [System.Text.Json.Serialization.JsonPropertyName("openid")] + public string OpenId { get; set; } = default!; + + /// + /// 获取或设置收款用户姓名。 + /// + [Newtonsoft.Json.JsonProperty("transfer_name")] + [System.Text.Json.Serialization.JsonPropertyName("transfer_name")] + public string? UserName { get; set; } + + /// + /// 获取或设置转账状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public string Status { get; set; } = default!; + + /// + /// 获取或设置转账时间。 + /// + [Newtonsoft.Json.JsonProperty("transfer_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.BasicDateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("transfer_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.BasicDateTimeOffsetConverter))] + public DateTimeOffset TransferTime { get; set; } + + /// + /// 获取或设置失败原因。 + /// + [Newtonsoft.Json.JsonProperty("reason")] + [System.Text.Json.Serialization.JsonPropertyName("reason")] + public string? FailReason { get; set; } + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV2.UnitTests/ModelSamples/PayMarketingTransfersTransfer/WeWork/GetPayMarketingTransfersPromotionWeWorkTransferRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV2.UnitTests/ModelSamples/PayMarketingTransfersTransfer/WeWork/GetPayMarketingTransfersPromotionWeWorkTransferRequest.json new file mode 100644 index 00000000..7e5ed706 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV2.UnitTests/ModelSamples/PayMarketingTransfersTransfer/WeWork/GetPayMarketingTransfersPromotionWeWorkTransferRequest.json @@ -0,0 +1,7 @@ +{ + "sign": "E1EE61A91C8E90F299DE6AE075D60A2D", + "partner_trade_no": "0010010404201411170000046545", + "mch_id": "10000097", + "appid": "wxe062425f740c8888", + "nonce_str": "50780e0cca98c8c8e814883e5caa672e" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV2.UnitTests/ModelSamples/PayMarketingTransfersTransfer/WeWork/GetPayMarketingTransfersPromotionWeWorkTransferResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV2.UnitTests/ModelSamples/PayMarketingTransfersTransfer/WeWork/GetPayMarketingTransfersPromotionWeWorkTransferResponse.json new file mode 100644 index 00000000..716e84c4 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV2.UnitTests/ModelSamples/PayMarketingTransfersTransfer/WeWork/GetPayMarketingTransfersPromotionWeWorkTransferResponse.json @@ -0,0 +1,15 @@ +{ + "return_code": "SUCCESS", + "return_msg": "获取成功", + "result_code": "SUCCESS", + "mch_id": "10000098", + "appid": "wxe062425f740c30d8", + "detail_id": "1000000000201503283103439304", + "partner_trade_no": "0010010404201411170000046545", + "status": "SUCCESS", + "payment_amount": "100", + "openid": "oxTWIuGaIt6gTKsQRLau2M0yL16E", + "transfer_time": "2017-07-22 20:10:15", + "transfer_name": "测试", + "desc": "付款测试" +}