mirror of
https://gitee.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat.git
synced 2025-12-29 01:44:42 +08:00
feat(wxapi): 新增微信小店订单虚拟号与真实号码相关接口
This commit is contained in:
@@ -4466,6 +4466,75 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.ChannelsECOrderVirtualTelNumberGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /channels/ec/order/virtualnumber/applyagain 接口。</para>
|
||||
/// <para>
|
||||
/// REF: <br/>
|
||||
/// <![CDATA[ https://developers.weixin.qq.com/doc/store/shop/API/channels-shop-order/api_applyvirtualnumberagain.html ]]>
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.ChannelsECOrderVirtualNumberApplyAgainResponse> ExecuteChannelsECOrderVirtualNumberApplyAgainAsync(this WechatApiClient client, Models.ChannelsECOrderVirtualNumberApplyAgainRequest 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, "channels", "ec", "order", "virtualtelnumber", "get")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.ChannelsECOrderVirtualNumberApplyAgainResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /channels/ec/order/virtualnumber/delay 接口。</para>
|
||||
/// <para>
|
||||
/// REF: <br/>
|
||||
/// <![CDATA[ https://developers.weixin.qq.com/doc/store/shop/API/channels-shop-order/api_delayvirtualnumber.html ]]>
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.ChannelsECOrderVirtualNumberDelayResponse> ExecuteChannelsECOrderVirtualNumberDelayAsync(this WechatApiClient client, Models.ChannelsECOrderVirtualNumberDelayRequest 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, "channels", "ec", "order", "virtualtelnumber", "delay")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.ChannelsECOrderVirtualNumberDelayResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /channels/ec/order/realnumber/apply 接口。</para>
|
||||
/// <para>
|
||||
/// REF: <br/>
|
||||
/// <![CDATA[ https://developers.weixin.qq.com/doc/store/shop/API/channels-shop-order/api_applyrealnumber.html ]]>
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.ChannelsECOrderRealNumberApplyResponse> ExecuteChannelsECOrderRealNumberApplyAsync(this WechatApiClient client, Models.ChannelsECOrderRealNumberApplyRequest 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, "channels", "ec", "order", "realnumber", "apply")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.ChannelsECOrderRealNumberApplyResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /channels/ec/order/freshinspect/submit 接口。</para>
|
||||
/// <para>
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /channels/ec/order/realnumber/apply 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class ChannelsECOrderRealNumberApplyRequest : WechatApiRequest, IInferable<ChannelsECOrderRealNumberApplyRequest, ChannelsECOrderRealNumberApplyResponse>
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置订单 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("order_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("order_id")]
|
||||
public string OrderId { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置申请原因。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("apply_type")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("apply_type")]
|
||||
public int ApplyType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置申请原因。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("apply_reason")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("apply_reason")]
|
||||
public string ApplyReason { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置申请原因图片 MediaId 列表。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("pic_media_ids")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("pic_media_ids")]
|
||||
public IList<string> PictureMediaIdList { get; set; } = new List<string>();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /channels/ec/order/realnumber/apply 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class ChannelsECOrderRealNumberApplyResponse : WechatApiResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置申请 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("task_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("task_id")]
|
||||
public string TaskId { get; set; } = default!;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /channels/ec/order/virtualnumber/applyagain 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class ChannelsECOrderVirtualNumberApplyAgainRequest : WechatApiRequest, IInferable<ChannelsECOrderVirtualNumberApplyAgainRequest, ChannelsECOrderVirtualNumberApplyAgainResponse>
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置订单 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("order_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("order_id")]
|
||||
public string OrderId { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /channels/ec/order/virtualnumber/applyagain 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class ChannelsECOrderVirtualNumberApplyAgainResponse : WechatApiResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置虚拟号码。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("virtual_number")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("virtual_number")]
|
||||
public string VirtualNumber { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置分机号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("extension")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("extension")]
|
||||
public string? ExtensionNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置剩余申请次数。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("apply_quota")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("apply_quota")]
|
||||
public int ApplyQuota { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /channels/ec/order/virtualnumber/delay 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class ChannelsECOrderVirtualNumberDelayRequest : WechatApiRequest, IInferable<ChannelsECOrderVirtualNumberDelayRequest, ChannelsECOrderVirtualNumberDelayResponse>
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置订单 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("order_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("order_id")]
|
||||
public string OrderId { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置已延期次数。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("has_delay_times")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("has_delay_times")]
|
||||
public int DelayTimes { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /channels/ec/order/virtualnumber/delay 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class ChannelsECOrderVirtualNumberDelayResponse : WechatApiResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置虚拟号码过期时间戳。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("expiration")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("expiration")]
|
||||
public long ExpireTimestamp { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置可延期次数。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("available_extend_num")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("available_extend_num")]
|
||||
public int AvailableDelayTimes { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"order_id": "37588946422056",
|
||||
"apply_type": 1,
|
||||
"apply_reason": "虚拟号打不通了",
|
||||
"pic_media_ids": [ "avdtruEJVVysLdEIWbAi-tH_nKxww7wXp6-wDHDgWlEtTHHIZ6l98x4XABKROQphxw7i65Azvq0W9Zwf57V6Nw", "avdtruEJVVysLdEIWbAi-tH_nKxww7wXp6-wDHDgWlEtTHHIZ6l98x4XABKRvq0W9Zwf57V6Nw" ]
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"errcode": 0,
|
||||
"errmsg": "ok",
|
||||
"task_id": "245689763"
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"order_id": "3730259898842881234"
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"errcode": 0,
|
||||
"errmsg": "ok",
|
||||
"virtual_number": "13040205676",
|
||||
"extension": "5123",
|
||||
"apply_quota": 0
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"order_id": "3730259898842881245",
|
||||
"has_delay_times": 0
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"errcode": 0,
|
||||
"errmsg": "ok",
|
||||
"expiration": 1755518097,
|
||||
"available_extend_num": 3
|
||||
}
|
||||
Reference in New Issue
Block a user