diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteUserOrderExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteUserOrderExtensions.cs index 1a9ee99a..669aa5b6 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteUserOrderExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteUserOrderExtensions.cs @@ -113,5 +113,47 @@ namespace SKIT.FlurlHttpClient.Wechat.Api return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } + + #region OrdersPermission + /// + /// 异步调用 [POST] /user-order/orders-permission/open 接口。 + /// REF: https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/miniprogram-management/shopping-orders/openShoppingOrderProductPermission.html + /// + /// + /// + /// + /// + public static async Task ExecuteUserOrderOrdersPermissionOpenAsync(this WechatApiClient client, Models.UserOrderOrdersPermissionOpenRequest 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.Post, "user-order", "orders-permission", "open") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /user-order/orders-permission/confirm 接口。 + /// REF: https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/miniprogram-management/shopping-orders/confirmProductPermission.html + /// + /// + /// + /// + /// + public static async Task ExecuteUserOrderOrdersPermissionConfirmAsync(this WechatApiClient client, Models.UserOrderOrdersPermissionConfirmRequest 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.Post, "user-order", "orders-permission", "confirm") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #endregion } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/UserOrder/OrdersPermission/UserOrderOrdersPermissionConfirmRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/UserOrder/OrdersPermission/UserOrderOrdersPermissionConfirmRequest.cs new file mode 100644 index 00000000..2dbe2339 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/UserOrder/OrdersPermission/UserOrderOrdersPermissionConfirmRequest.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /user-order/orders-permission/confirm 接口的请求。 + /// + public class UserOrderOrdersPermissionConfirmRequest : WechatApiRequest, IInferable + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/UserOrder/OrdersPermission/UserOrderOrdersPermissionConfirmResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/UserOrder/OrdersPermission/UserOrderOrdersPermissionConfirmResponse.cs new file mode 100644 index 00000000..b71ef104 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/UserOrder/OrdersPermission/UserOrderOrdersPermissionConfirmResponse.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /user-order/orders-permission/confirm 接口的响应。 + /// + public class UserOrderOrdersPermissionConfirmResponse : WechatApiResponse + { + /// + /// 获取或设置最近一次审核的结果。 + /// + [Newtonsoft.Json.JsonProperty("last_result")] + [System.Text.Json.Serialization.JsonPropertyName("last_result")] + public string? LastResult { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/UserOrder/OrdersPermission/UserOrderOrdersPermissionOpenRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/UserOrder/OrdersPermission/UserOrderOrdersPermissionOpenRequest.cs new file mode 100644 index 00000000..8f95baac --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/UserOrder/OrdersPermission/UserOrderOrdersPermissionOpenRequest.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /user-order/orders-permission/open 接口的请求。 + /// + public class UserOrderOrdersPermissionOpenRequest : WechatApiRequest, IInferable + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/UserOrder/OrdersPermission/UserOrderOrdersPermissionOpenResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/UserOrder/OrdersPermission/UserOrderOrdersPermissionOpenResponse.cs new file mode 100644 index 00000000..54103f60 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/UserOrder/OrdersPermission/UserOrderOrdersPermissionOpenResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /user-order/orders-permission/open 接口的响应。 + /// + public class UserOrderOrdersPermissionOpenResponse : WechatApiResponse + { + } +}