using System; using System.Net.Http; using System.Threading; using System.Threading.Tasks; using Flurl.Http; namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 { public static class WechatTenpayClientExecuteMerchantOperateExtensions { /// /// 异步调用 [POST] /mch_operate/risk/withdrawl-apply 接口。 /// REF: https://pay.weixin.qq.com/docs/partner/apis/withdrawal-apply/withdrawal-apply/submit-apply.html /// /// /// /// /// public static async Task ExecuteCreateMerchantOperateRiskWithdrawlApplyAsync(this WechatTenpayClient client, Models.CreateMerchantOperateRiskWithdrawlApplyRequest 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, "mch_operate", "risk", "withdrawl-apply"); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [GET] /mch_operate/risk/withdrawl-apply/out-request-no/{out_request_no} 接口。 /// REF: https://pay.weixin.qq.com/docs/partner/apis/withdrawal-apply/withdrawal-apply/get-apply-by-out-request-no.html /// /// /// /// /// public static async Task ExecuteGetMerchantOperateRiskWithdrawlApplyByOutRequestNumberAsync(this WechatTenpayClient client, Models.GetMerchantOperateRiskWithdrawlApplyByOutRequestNumberRequest 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.Get, "mch_operate", "risk", "withdrawl-apply", "out-request-no", request.OutRequestNumber); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// /// 异步调用 [GET] /mch_operate/risk/withdrawl-apply/applyment-id/{applyment_id} 接口。 /// REF: https://pay.weixin.qq.com/docs/partner/apis/withdrawal-apply/withdrawal-apply/get-apply-by-applyment-id.html /// /// /// /// /// public static async Task ExecuteGetMerchantOperateRiskWithdrawlApplyByApplymentIdAsync(this WechatTenpayClient client, Models.GetMerchantOperateRiskWithdrawlApplyByApplymentIdRequest 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.Get, "mch_operate", "risk", "withdrawl-apply", "applyment-id", request.ApplymentId); return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } } }