feat(wxapi): 新增视频号小店获取售后原因、售后拒绝原因等接口

This commit is contained in:
Fu Diwei 2024-04-29 20:35:22 +08:00
parent 8053284ac2
commit 130945eca6
7 changed files with 182 additions and 0 deletions

View File

@ -195,6 +195,54 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
return await client.SendFlurlRequestAsJsonAsync<Models.ChannelsECAftersaleGetComplaintOrderResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); return await client.SendFlurlRequestAsJsonAsync<Models.ChannelsECAftersaleGetComplaintOrderResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
} }
#endregion #endregion
#region ECAftersale/Reason
/// <summary>
/// <para>异步调用 [POST] /channels/ec/aftersale/reason/get 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://developers.weixin.qq.com/doc/channels/API/aftersale/getaftersalereason.html ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ChannelsECAftersaleReasonGetResponse> ExecuteChannelsECAftersaleReasonGetAsync(this WechatApiClient client, Models.ChannelsECAftersaleReasonGetRequest 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", "aftersale", "reason", "get")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendFlurlRequestAsJsonAsync<Models.ChannelsECAftersaleReasonGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [POST] /channels/ec/aftersale/rejectreason/get 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://developers.weixin.qq.com/doc/channels/API/aftersale/getrejectreason.html ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ChannelsECAftersaleRejectReasonGetResponse> ExecuteChannelsECAftersaleRejectReasonGetAsync(this WechatApiClient client, Models.ChannelsECAftersaleRejectReasonGetRequest 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", "aftersale", "rejectreason", "get")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendFlurlRequestAsJsonAsync<Models.ChannelsECAftersaleRejectReasonGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
#endregion
#endregion #endregion
#region ECBasics #region ECBasics

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/aftersale/reason/get 接口的请求。</para>
/// </summary>
public class ChannelsECAftersaleReasonGetRequest : WechatApiRequest, IInferable<ChannelsECAftersaleReasonGetRequest, ChannelsECAftersaleReasonGetResponse>
{
}
}

View File

@ -0,0 +1,35 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/aftersale/reason/get 接口的响应。</para>
/// </summary>
public class ChannelsECAftersaleReasonGetResponse : WechatApiResponse
{
public static class Types
{
public class Reason
{
/// <summary>
/// 获取或设置售后原因。
/// </summary>
[Newtonsoft.Json.JsonProperty("reason")]
[System.Text.Json.Serialization.JsonPropertyName("reason")]
public string ReasonType { get; set; } = default!;
/// <summary>
/// 获取或设置售后原因说明。
/// </summary>
[Newtonsoft.Json.JsonProperty("reason_text")]
[System.Text.Json.Serialization.JsonPropertyName("reason_text")]
public string ReasonText { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置售后原因列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("reason_list")]
[System.Text.Json.Serialization.JsonPropertyName("reason_list")]
public Types.Reason[] ReasonList { get; set; } = default!;
}
}

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/aftersale/rejectreason/get 接口的请求。</para>
/// </summary>
public class ChannelsECAftersaleRejectReasonGetRequest : WechatApiRequest, IInferable<ChannelsECAftersaleRejectReasonGetRequest, ChannelsECAftersaleRejectReasonGetResponse>
{
}
}

View File

@ -0,0 +1,42 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/aftersale/rejectreason/get 接口的响应。</para>
/// </summary>
public class ChannelsECAftersaleRejectReasonGetResponse : WechatApiResponse
{
public static class Types
{
public class RejectReason
{
/// <summary>
/// 获取或设置售后拒绝原因。
/// </summary>
[Newtonsoft.Json.JsonProperty("reject_reason_type")]
[System.Text.Json.Serialization.JsonPropertyName("reject_reason_type")]
public int RejectReasonType { get; set; }
/// <summary>
/// 获取或设置售后拒绝原因说明。
/// </summary>
[Newtonsoft.Json.JsonProperty("reject_reason_type_text")]
[System.Text.Json.Serialization.JsonPropertyName("reject_reason_type_text")]
public string RejectReasonText { get; set; } = default!;
/// <summary>
/// 获取或设置售后拒绝原因默认描述。
/// </summary>
[Newtonsoft.Json.JsonProperty("reject_reason")]
[System.Text.Json.Serialization.JsonPropertyName("reject_reason")]
public string? RejectReasonDescription { get; set; }
}
}
/// <summary>
/// 获取或设置售后拒绝原因列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("reason_list")]
[System.Text.Json.Serialization.JsonPropertyName("reason_list")]
public Types.RejectReason[] RejectReasonList { get; set; } = default!;
}
}

View File

@ -0,0 +1,18 @@
{
"errcode": 0,
"errmsg": "ok",
"reason_list": [
{
"reason": "10000002",
"reason_text": "拍错/多拍"
},
{
"reason": "10000001",
"reason_text": "缺货"
},
{
"reason": "10000000",
"reason_text": "不想要了"
}
]
}

View File

@ -0,0 +1,21 @@
{
"errcode": 0,
"errmsg": "ok",
"reason_list": [
{
"reject_reason_type": 21,
"reject_reason_type_text": "买家寄回包裹非本订单商品",
"reject_reason": "您的退货商品非本订单的商品,若有疑问请点击【联系商家】按钮与客服沟通"
},
{
"reject_reason_type": 20,
"reject_reason_type_text": "商品影响二次销售",
"reject_reason": "您的退货商品已影响二次销售,若有疑问请点击【联系商家】按钮与客服沟通"
},
{
"reject_reason_type": 19,
"reject_reason_type_text": "买家上传的单号有误,商家未收到货",
"reject_reason": "您填写的退货物流单号有误,目前无法查询到您退货物流的信息/未收到您的包裹,可点击【修改】按钮重新上传退货物流单号,若有疑问请点击【联系商家】按钮与客服沟通"
}
]
}