From 35ee658581c8fd11243ef71cd3491dc8bc92a989 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Sun, 29 Sep 2024 14:06:41 +0800 Subject: [PATCH] =?UTF-8?q?feat(tenpayv3):=20=E6=96=B0=E5=A2=9E=E6=89=A3?= =?UTF-8?q?=E6=AC=BE=E6=9C=8D=E5=8A=A1=E9=87=8D=E8=AF=95=E6=89=A3=E8=B4=B9?= =?UTF-8?q?=E9=80=9A=E7=9F=A5=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/WechatTenpayV3/Basic_ModelDefinition.md | 2 ++ ...echatTenpayClientExecutePAPayExtensions.cs | 25 ++++++++++++++++ ...ePAPayContractFailedNotificationRequest.cs | 29 +++++++++++++++++++ ...PAPayContractFailedNotificationResponse.cs | 9 ++++++ 4 files changed, 65 insertions(+) create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PAPay/CreatePAPayContractFailedNotificationRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PAPay/CreatePAPayContractFailedNotificationResponse.cs diff --git a/docs/WechatTenpayV3/Basic_ModelDefinition.md b/docs/WechatTenpayV3/Basic_ModelDefinition.md index 51b2a76f..b63d6381 100644 --- a/docs/WechatTenpayV3/Basic_ModelDefinition.md +++ b/docs/WechatTenpayV3/Basic_ModelDefinition.md @@ -572,6 +572,8 @@ - 预扣费通知:`CreatePAPayContractNotification` + - 重试扣费通知:`CreatePAPayContractFailedNotification` + - 代扣服务切卡组件 - 出行券切卡组件预下单:`CreateIndustryCouponToken` diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePAPayExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePAPayExtensions.cs index 4315e13a..90a422ac 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePAPayExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePAPayExtensions.cs @@ -33,6 +33,31 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } + /// + /// 异步调用 [POST] /papay/contracts/{contract_id}/fail-notify 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteCreatePAPayContractFailedNotificationAsync(this WechatTenpayClient client, Models.CreatePAPayContractFailedNotificationRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + if (request.MerchantId is null) + request.MerchantId = client.Credentials.MerchantId; + + IFlurlRequest flurlReq = client + .CreateFlurlRequest(request, HttpMethod.Post, "papay", "contracts", request.ContractId, "fail-notify"); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + #region InsurancePayPolicyPeriods /// /// 异步调用 [GET] /papay/insurance-pay/policy-periods/contract-id/{contract_id}/policy-period-id/{policy_period_id} 接口。 diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PAPay/CreatePAPayContractFailedNotificationRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PAPay/CreatePAPayContractFailedNotificationRequest.cs new file mode 100644 index 00000000..0331513a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PAPay/CreatePAPayContractFailedNotificationRequest.cs @@ -0,0 +1,29 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /papay/contracts/{contract_id}/fail-notify 接口的请求。 + /// + public class CreatePAPayContractFailedNotificationRequest : WechatTenpayRequest + { + /// + /// 获取或设置委托代扣协议 ID。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string ContractId { get; set; } = string.Empty; + + /// + /// 获取或设置微信商户号。如果不指定将使用构造 时的 参数。 + /// + [Newtonsoft.Json.JsonProperty("mchid")] + [System.Text.Json.Serialization.JsonPropertyName("mchid")] + public string? MerchantId { get; set; } + + /// + /// 获取或设置微信 AppId。 + /// + [Newtonsoft.Json.JsonProperty("appid")] + [System.Text.Json.Serialization.JsonPropertyName("appid")] + public string AppId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PAPay/CreatePAPayContractFailedNotificationResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PAPay/CreatePAPayContractFailedNotificationResponse.cs new file mode 100644 index 00000000..c754eb24 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PAPay/CreatePAPayContractFailedNotificationResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /papay/contracts/{contract_id}/fail-notify 接口的响应。 + /// + public class CreatePAPayContractFailedNotificationResponse : WechatTenpayResponse + { + } +}