From 8885be2f80721f48645f1ca5d755e3de87f73a84 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Mon, 30 Aug 2021 12:48:26 +0800 Subject: [PATCH] =?UTF-8?q?feat(tenpayv3):=20=E6=96=B0=E5=A2=9E=E6=B6=88?= =?UTF-8?q?=E8=B4=B9=E8=80=85=E6=8A=95=E8=AF=89=E5=9B=BE=E7=89=87=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...WechatTenpayClientExecuteBillExtensions.cs | 3 ++- ...yClientExecuteMerchantServiceExtensions.cs | 21 +++++++++++++++++++ .../DownloadMerchantServiceImageRequest.cs | 18 ++++++++++++++++ .../DownloadMerchantServiceImageResponse.cs | 16 ++++++++++++++ 4 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MerchantService/ComplaintsV2/DownloadMerchantServiceImageRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MerchantService/ComplaintsV2/DownloadMerchantServiceImageResponse.cs diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteBillExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteBillExtensions.cs index 6f6a6d9a..cef4cdc2 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteBillExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteBillExtensions.cs @@ -123,7 +123,8 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 if (request is null) throw new ArgumentNullException(nameof(request)); IFlurlRequest flurlReq = client - .CreateRequest(request, HttpMethod.Get, request.DownloadUrl); + .CreateRequest(request, HttpMethod.Get); + flurlReq.Url = new Url(new Uri(request.DownloadUrl)); return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); } diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMerchantServiceExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMerchantServiceExtensions.cs index e54e2383..1f8c5d16 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMerchantServiceExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteMerchantServiceExtensions.cs @@ -257,5 +257,26 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 return await client.SendRequestAsync(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken); } + + /// + /// 异步调用 [GET] /{download_url} 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter10_2_18.shtml + /// REF: https://pay.weixin.qq.com/wiki/doc/apiv3_partner/apis/chapter10_2_18.shtml + /// + /// + /// + /// + /// + public static async Task ExecuteDownloadMerchantServiceImageAsync(this WechatTenpayClient client, Models.DownloadMerchantServiceImageRequest 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.Get); + flurlReq.Url = new Url(new Uri(request.DownloadUrl)); + + return await client.SendRequestWithJsonAsync(flurlReq, cancellationToken: cancellationToken); + } } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MerchantService/ComplaintsV2/DownloadMerchantServiceImageRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MerchantService/ComplaintsV2/DownloadMerchantServiceImageRequest.cs new file mode 100644 index 00000000..6161773d --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MerchantService/ComplaintsV2/DownloadMerchantServiceImageRequest.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /{download_url} 接口的请求。 + /// + public class DownloadMerchantServiceImageRequest : WechatTenpayRequest + { + /// + /// 获取或设置图片下载地址。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string DownloadUrl { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MerchantService/ComplaintsV2/DownloadMerchantServiceImageResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MerchantService/ComplaintsV2/DownloadMerchantServiceImageResponse.cs new file mode 100644 index 00000000..92e4175d --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/MerchantService/ComplaintsV2/DownloadMerchantServiceImageResponse.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /{download_url} 接口的响应。 + /// + public class DownloadMerchantServiceImageResponse : WechatTenpayResponse + { + public override bool IsSuccessful() + { + return base.IsSuccessful() && RawBytes.Length > 0; + } + } +}