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; + } + } +}