feat(wxapi): 新增视频号小店售后单相关接口

This commit is contained in:
Fu Diwei 2022-11-03 21:34:33 +08:00
parent 9fa7c11ec7
commit c9b5dd08a2
76 changed files with 733 additions and 62 deletions

View File

@ -0,0 +1,40 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Events
{
/// <summary>
/// <para>表示 EVENT.channels_ec_aftersale_update 事件的数据。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/channels/API/aftersale/ec_callback/channels_ec_aftersale_update.html </para>
/// </summary>
public class ChannelsECAftersaleUpdateEvent : WechatApiEvent, WechatApiEvent.Serialization.IJsonSerializable, WechatApiEvent.Serialization.IXmlSerializable
{
public static class Types
{
public class AftersaleOrder
{
/// <summary>
/// 获取或设置售后单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("after_sale_order_id")]
[System.Text.Json.Serialization.JsonPropertyName("after_sale_order_id")]
[System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
[System.Xml.Serialization.XmlElement("after_sale_order_id")]
public long AftersaleOrderId { get; set; }
/// <summary>
/// 获取或设置售后单状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("status")]
[System.Text.Json.Serialization.JsonPropertyName("status")]
[System.Xml.Serialization.XmlElement("status")]
public string Status { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置售后单信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("finder_shop_aftersale_status_update")]
[System.Text.Json.Serialization.JsonPropertyName("finder_shop_aftersale_status_update")]
[System.Xml.Serialization.XmlElement("finder_shop_aftersale_status_update")]
public Types.AftersaleOrder AftersaleOrder { get; set; } = default!;
}
}

View File

@ -731,6 +731,108 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
#endregion
#endregion
#region ECAftersale
/// <summary>
/// <para>异步调用 [POST] /channels/ec/aftersale/getaftersalelist 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/channels/API/aftersale/getaftersalelist.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ChannelsECAftersaleGetAftersaleListResponse> ExecuteChannelsECAftersaleGetAftersaleListAsync(this WechatApiClient client, Models.ChannelsECAftersaleGetAftersaleListRequest 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, "channels", "ec", "aftersale", "getaftersalelist")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.ChannelsECAftersaleGetAftersaleListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /channels/ec/aftersale/getaftersaleorder 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/channels/API/aftersale/getaftersaleorder.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ChannelsECAftersaleGetAftersaleOrderResponse> ExecuteChannelsECAftersaleGetAftersaleOrderAsync(this WechatApiClient client, Models.ChannelsECAftersaleGetAftersaleOrderRequest 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, "channels", "ec", "aftersale", "getaftersaleorder")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.ChannelsECAftersaleGetAftersaleOrderResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /channels/ec/aftersale/acceptapply 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/channels/API/aftersale/acceptapply.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ChannelsECAftersaleAcceptApplyResponse> ExecuteChannelsECAftersaleAcceptApplyAsync(this WechatApiClient client, Models.ChannelsECAftersaleAcceptApplyRequest 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, "channels", "ec", "aftersale", "acceptapply")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.ChannelsECAftersaleAcceptApplyResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /channels/ec/aftersale/rejectapply 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/channels/API/aftersale/rejectapply.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ChannelsECAftersaleRejectApplyResponse> ExecuteChannelsECAftersaleRejectApplyAsync(this WechatApiClient client, Models.ChannelsECAftersaleRejectApplyRequest 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, "channels", "ec", "aftersale", "rejectapply")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.ChannelsECAftersaleRejectApplyResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /channels/ec/aftersale/uploadrefundcertificate 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/channels/API/aftersale/uploadrefundcertificate.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ChannelsECAftersaleUploadRefundCertificateResponse> ExecuteChannelsECAftersaleUploadRefundCertificateAsync(this WechatApiClient client, Models.ChannelsECAftersaleUploadRefundCertificateRequest 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, "channels", "ec", "aftersale", "uploadrefundcertificate")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.ChannelsECAftersaleUploadRefundCertificateResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
#region ECWindow
/// <summary>
/// <para>异步调用 [POST] /channels/ec/window/product/add 接口。</para>

View File

@ -0,0 +1,22 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/aftersale/acceptapply 接口的请求。</para>
/// </summary>
public class ChannelsECAftersaleAcceptApplyRequest : WechatApiRequest, IInferable<ChannelsECAftersaleAcceptApplyRequest, ChannelsECAftersaleAcceptApplyResponse>
{
/// <summary>
/// 获取或设置售后单 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("after_sale_order_id")]
[System.Text.Json.Serialization.JsonPropertyName("after_sale_order_id")]
public long AftersaleOrderId { get; set; }
/// <summary>
/// 获取或设置地址 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("address_id")]
[System.Text.Json.Serialization.JsonPropertyName("address_id")]
public long? AddressId { get; set; }
}
}

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/aftersale/acceptapply 接口的响应。</para>
/// </summary>
public class ChannelsECAftersaleAcceptApplyResponse : WechatApiResponse
{
}
}

View File

@ -0,0 +1,29 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/aftersale/getaftersalelist 接口的请求。</para>
/// </summary>
public class ChannelsECAftersaleGetAftersaleListRequest : WechatApiRequest, IInferable<ChannelsECAftersaleGetAftersaleListRequest, ChannelsECOrderListGetResponse>
{
/// <summary>
/// 获取或设置创建时间开始时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("begin_create_time")]
[System.Text.Json.Serialization.JsonPropertyName("begin_create_time")]
public long StartCreateTimestamp { get; set; }
/// <summary>
/// 获取或设置创建时间结束时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("end_create_time")]
[System.Text.Json.Serialization.JsonPropertyName("end_create_time")]
public long EndCreateTimestamp { get; set; }
/// <summary>
/// 获取或设置翻页标记。
/// </summary>
[Newtonsoft.Json.JsonProperty("next_key")]
[System.Text.Json.Serialization.JsonPropertyName("next_key")]
public string? Cursor { get; set; }
}
}

View File

@ -0,0 +1,30 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/aftersale/getaftersalelist 接口的响应。</para>
/// </summary>
public class ChannelsECAftersaleGetAftersaleListResponse : WechatApiResponse
{
/// <summary>
/// 获取或设置售后单 ID 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("after_sale_order_id_list")]
[System.Text.Json.Serialization.JsonPropertyName("after_sale_order_id_list")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.TextualLongArrayConverter))]
public long[] AftersaleOrderIdList { get; set; } = default!;
/// <summary>
/// 获取或设置翻页标记。
/// </summary>
[Newtonsoft.Json.JsonProperty("next_key")]
[System.Text.Json.Serialization.JsonPropertyName("next_key")]
public string? NextCursor { get; set; }
/// <summary>
/// 获取或设置是否还有更多。
/// </summary>
[Newtonsoft.Json.JsonProperty("has_more")]
[System.Text.Json.Serialization.JsonPropertyName("has_more")]
public bool HasMore { get; set; }
}
}

View File

@ -0,0 +1,15 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/aftersale/getaftersaleorder 接口的请求。</para>
/// </summary>
public class ChannelsECAftersaleGetAftersaleOrderRequest : WechatApiRequest, IInferable<ChannelsECAftersaleGetAftersaleOrderRequest, ChannelsECOrderListGetResponse>
{
/// <summary>
/// 获取或设置售后单 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("after_sale_order_id")]
[System.Text.Json.Serialization.JsonPropertyName("after_sale_order_id")]
public long AftersaleOrderId { get; set; }
}
}

View File

@ -0,0 +1,263 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/aftersale/getaftersaleorder 接口的响应。</para>
/// </summary>
public class ChannelsECAftersaleGetAftersaleOrderResponse : WechatApiResponse
{
public static class Types
{
public class AftersaleOrder
{
public static class Types
{
public class Product
{
/// <summary>
/// 获取或设置商品 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("product_id")]
[System.Text.Json.Serialization.JsonPropertyName("product_id")]
[System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
public long ProductId { get; set; }
/// <summary>
/// 获取或设置 SKU ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("sku_id")]
[System.Text.Json.Serialization.JsonPropertyName("sku_id")]
[System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
public long SKUId { get; set; }
/// <summary>
/// 获取或设置商品数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("count")]
[System.Text.Json.Serialization.JsonPropertyName("count")]
public int Count { get; set; }
}
public class AftersaleDetail
{
/// <summary>
/// 获取或设置售后描述。
/// </summary>
[Newtonsoft.Json.JsonProperty("desc")]
[System.Text.Json.Serialization.JsonPropertyName("desc")]
public string? Description { get; set; }
/// <summary>
/// 获取或设置是否已经收到货。
/// </summary>
[Newtonsoft.Json.JsonProperty("receive_product")]
[System.Text.Json.Serialization.JsonPropertyName("receive_product")]
public bool HasReceivedProduct { get; set; }
/// <summary>
/// 获取或设置取消售后时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("cancel_time")]
[System.Text.Json.Serialization.JsonPropertyName("cancel_time")]
public long CancelTimestamp { get; set; }
/// <summary>
/// 获取或设置举证图片 URL 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("prove_imgs")]
[System.Text.Json.Serialization.JsonPropertyName("prove_imgs")]
public string[]? ProveImageUrlList { get; set; }
/// <summary>
/// 获取或设置联系电话。
/// </summary>
[Newtonsoft.Json.JsonProperty("tel_number")]
[System.Text.Json.Serialization.JsonPropertyName("tel_number")]
public string? TeleNumber { get; set; }
}
public class Refund
{
/// <summary>
/// 获取或设置退款金额(单位:分)。
/// </summary>
[Newtonsoft.Json.JsonProperty("amount")]
[System.Text.Json.Serialization.JsonPropertyName("amount")]
public int Amount { get; set; }
}
public class Return
{
/// <summary>
/// 获取或设置快递公司 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("delivery_id")]
[System.Text.Json.Serialization.JsonPropertyName("delivery_id")]
public string DeliveryId { get; set; } = default!;
/// <summary>
/// 获取或设置快递公司名字。
/// </summary>
[Newtonsoft.Json.JsonProperty("delivery_name")]
[System.Text.Json.Serialization.JsonPropertyName("delivery_name")]
public string DeliveryName { get; set; } = default!;
/// <summary>
/// 获取或设置快递单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("waybill_id")]
[System.Text.Json.Serialization.JsonPropertyName("waybill_id")]
public string WaybillId { get; set; } = default!;
}
public class MerchantUploadInfo
{
/// <summary>
/// 获取或设置拒绝原因。
/// </summary>
[Newtonsoft.Json.JsonProperty("reject_reason")]
[System.Text.Json.Serialization.JsonPropertyName("reject_reason")]
public string? RejectReason { get; set; }
/// <summary>
/// 获取或设置退款凭证 URL 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("refund_certificates")]
[System.Text.Json.Serialization.JsonPropertyName("refund_certificates")]
public string[]? RefundCertificateUrlList { get; set; }
}
public class RefundResultInfo
{
/// <summary>
/// 获取或设置退款结果。
/// </summary>
[Newtonsoft.Json.JsonProperty("ret")]
[System.Text.Json.Serialization.JsonPropertyName("ret")]
public int Result { get; set; }
/// <summary>
/// 获取或设置错误代码。
/// </summary>
[Newtonsoft.Json.JsonProperty("code")]
[System.Text.Json.Serialization.JsonPropertyName("code")]
public string? ErrorCode { get; set; } = default!;
/// <summary>
/// 获取或设置错误描述。
/// </summary>
[Newtonsoft.Json.JsonProperty("message")]
[System.Text.Json.Serialization.JsonPropertyName("message")]
public string? ErrorMessage { get; set; }
}
}
/// <summary>
/// 获取或设置售后单 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("after_sale_order_id")]
[System.Text.Json.Serialization.JsonPropertyName("after_sale_order_id")]
[System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
public long AftersaleOrderId { get; set; }
/// <summary>
/// 获取或设置订单 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("order_id")]
[System.Text.Json.Serialization.JsonPropertyName("order_id")]
[System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
public long OrderId { get; set; }
/// <summary>
/// 获取或设置售后单类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("type")]
[System.Text.Json.Serialization.JsonPropertyName("type")]
public string Type { get; set; } = default!;
/// <summary>
/// 获取或设置售后单状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("status")]
[System.Text.Json.Serialization.JsonPropertyName("status")]
public string Status { get; set; } = default!;
/// <summary>
/// 获取或设置买家用户 OpenId。
/// </summary>
[Newtonsoft.Json.JsonProperty("openid")]
[System.Text.Json.Serialization.JsonPropertyName("openid")]
public string OpenId { get; set; } = default!;
/// <summary>
/// 获取或设置退款原因。
/// </summary>
[Newtonsoft.Json.JsonProperty("reason")]
[System.Text.Json.Serialization.JsonPropertyName("reason")]
public string Reason { get; set; } = default!;
/// <summary>
/// 获取或设置商品信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("product_info")]
[System.Text.Json.Serialization.JsonPropertyName("product_info")]
public Types.Product Product { get; set; } = default!;
/// <summary>
/// 获取或设置售后详细信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("details")]
[System.Text.Json.Serialization.JsonPropertyName("details")]
public Types.AftersaleDetail Detail { get; set; } = default!;
/// <summary>
/// 获取或设置退款信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("refund_info")]
[System.Text.Json.Serialization.JsonPropertyName("refund_info")]
public Types.Refund? Refund { get; set; }
/// <summary>
/// 获取或设置退货信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("return_info")]
[System.Text.Json.Serialization.JsonPropertyName("return_info")]
public Types.Return? Return { get; set; }
/// <summary>
/// 获取或设置商家上传信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("merchant_upload_info")]
[System.Text.Json.Serialization.JsonPropertyName("merchant_upload_info")]
public Types.MerchantUploadInfo? MerchantUploadInfo { get; set; }
/// <summary>
/// 获取或设置退款结果信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("refund_resp")]
[System.Text.Json.Serialization.JsonPropertyName("refund_resp")]
public Types.RefundResultInfo? RefundResultInfo { get; set; }
/// <summary>
/// 获取或设置更新时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("update_time")]
[System.Text.Json.Serialization.JsonPropertyName("update_time")]
public long UpdateTimestamp { get; set; }
/// <summary>
/// 获取或设置创建时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("create_time")]
[System.Text.Json.Serialization.JsonPropertyName("create_time")]
public long CreateTimestamp { get; set; }
}
}
/// <summary>
/// 获取或设置售后单信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("after_sale_order")]
[System.Text.Json.Serialization.JsonPropertyName("after_sale_order")]
public Types.AftersaleOrder AftersaleOrder { get; set; } = default!;
}
}

View File

@ -0,0 +1,22 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/aftersale/rejectapply 接口的请求。</para>
/// </summary>
public class ChannelsECAftersaleRejectApplyRequest : WechatApiRequest, IInferable<ChannelsECAftersaleRejectApplyRequest, ChannelsECAftersaleRejectApplyResponse>
{
/// <summary>
/// 获取或设置售后单 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("after_sale_order_id")]
[System.Text.Json.Serialization.JsonPropertyName("after_sale_order_id")]
public long AftersaleOrderId { get; set; }
/// <summary>
/// 获取或设置拒绝原因。
/// </summary>
[Newtonsoft.Json.JsonProperty("reject_reason")]
[System.Text.Json.Serialization.JsonPropertyName("reject_reason")]
public string? RejectReason { get; set; }
}
}

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/aftersale/rejectapply 接口的响应。</para>
/// </summary>
public class ChannelsECAftersaleRejectApplyResponse : WechatApiResponse
{
}
}

View File

@ -0,0 +1,31 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/aftersale/uploadrefundcertificate 接口的请求。</para>
/// </summary>
public class ChannelsECAftersaleUploadRefundCertificateRequest : WechatApiRequest, IInferable<ChannelsECAftersaleUploadRefundCertificateRequest, ChannelsECAftersaleUploadRefundCertificateResponse>
{
/// <summary>
/// 获取或设置售后单 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("after_sale_order_id")]
[System.Text.Json.Serialization.JsonPropertyName("after_sale_order_id")]
public long AftersaleOrderId { get; set; }
/// <summary>
/// 获取或设置退款凭证 MediaId 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("refund_certificates")]
[System.Text.Json.Serialization.JsonPropertyName("refund_certificates")]
public IList<string> RefundCertificateMediaIdList { get; set; } = new List<string>();
/// <summary>
/// 获取或设置描述。
/// </summary>
[Newtonsoft.Json.JsonProperty("desc")]
[System.Text.Json.Serialization.JsonPropertyName("desc")]
public string Description { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/aftersale/uploadrefundcertificate 接口的响应。</para>
/// </summary>
public class ChannelsECAftersaleUploadRefundCertificateResponse : WechatApiResponse
{
}
}

View File

@ -13,6 +13,6 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("template_id")]
[System.Text.Json.Serialization.JsonPropertyName("template_id")]
public int TemplateId { get; set; }
public long TemplateId { get; set; }
}
}

View File

@ -13,6 +13,6 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("template_id")]
[System.Text.Json.Serialization.JsonPropertyName("template_id")]
public int TemplateId { get; set; }
public long TemplateId { get; set; }
}
}

View File

@ -13,6 +13,6 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("template_id")]
[System.Text.Json.Serialization.JsonPropertyName("template_id")]
public int TemplateId { get; set; }
public long TemplateId { get; set; }
}
}

View File

@ -52,7 +52,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("Id")]
[System.Text.Json.Serialization.JsonPropertyName("Id")]
public int TemplateId { get; set; }
public long TemplateId { get; set; }
/// <summary>
/// 获取或设置模板名称。

View File

@ -20,7 +20,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("template_id")]
[System.Text.Json.Serialization.JsonPropertyName("template_id")]
public int TemplateId { get; set; }
public long TemplateId { get; set; }
/// <summary>
/// 获取或设置邮费模板信息。

View File

@ -13,6 +13,6 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("group_id")]
[System.Text.Json.Serialization.JsonPropertyName("group_id")]
public int GroupId { get; set; }
public long GroupId { get; set; }
}
}

View File

@ -13,6 +13,6 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("group_id")]
[System.Text.Json.Serialization.JsonPropertyName("group_id")]
public int GroupId { get; set; }
public long GroupId { get; set; }
}
}

View File

@ -17,7 +17,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("group_id")]
[System.Text.Json.Serialization.JsonPropertyName("group_id")]
public int GroupId { get; set; }
public long GroupId { get; set; }
/// <summary>
/// 获取或设置分组名称。

View File

@ -13,6 +13,6 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("group_id")]
[System.Text.Json.Serialization.JsonPropertyName("group_id")]
public int GroupId { get; set; }
public long GroupId { get; set; }
}
}

View File

@ -17,7 +17,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("group_id")]
[System.Text.Json.Serialization.JsonPropertyName("group_id")]
public int GroupId { get; set; }
public long GroupId { get; set; }
/// <summary>
/// 获取或设置分组名称。

View File

@ -34,7 +34,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("group_id")]
[System.Text.Json.Serialization.JsonPropertyName("group_id")]
public int GroupId { get; set; }
public long GroupId { get; set; }
/// <summary>
/// 获取或设置商品列表。

View File

@ -13,7 +13,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("group_id")]
[System.Text.Json.Serialization.JsonPropertyName("group_id")]
public int GroupId { get; set; }
public long GroupId { get; set; }
/// <summary>
/// 获取或设置分组名称。

View File

@ -39,7 +39,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("group_id")]
[System.Text.Json.Serialization.JsonPropertyName("group_id")]
public int GroupId { get; set; }
public long GroupId { get; set; }
/// <summary>
/// 获取或设置分组图片 URL。
@ -79,7 +79,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("eid")]
[System.Text.Json.Serialization.JsonPropertyName("eid")]
public int EId { get; set; }
public long ElementId { get; set; }
/// <summary>
/// 获取或设置单个分组信息。

View File

@ -13,6 +13,6 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("shelf_id")]
[System.Text.Json.Serialization.JsonPropertyName("shelf_id")]
public int ShelfId { get; set; }
public long ShelfId { get; set; }
}
}

View File

@ -13,6 +13,6 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("shelf_id")]
[System.Text.Json.Serialization.JsonPropertyName("shelf_id")]
public int ShelfId { get; set; }
public long ShelfId { get; set; }
}
}

View File

@ -24,7 +24,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("shelf_id")]
[System.Text.Json.Serialization.JsonPropertyName("shelf_id")]
public int ShelfId { get; set; }
public long ShelfId { get; set; }
/// <summary>
/// 获取或设置货架数据。

View File

@ -13,6 +13,6 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("shelf_id")]
[System.Text.Json.Serialization.JsonPropertyName("shelf_id")]
public int ShelfId { get; set; }
public long ShelfId { get; set; }
}
}

View File

@ -38,7 +38,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("group_id")]
[System.Text.Json.Serialization.JsonPropertyName("group_id")]
public int GroupId { get; set; }
public long GroupId { get; set; }
/// <summary>
/// 获取或设置分组图片 URL。
@ -78,7 +78,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("eid")]
[System.Text.Json.Serialization.JsonPropertyName("eid")]
public int EId { get; set; }
public long ElementId { get; set; }
/// <summary>
/// 获取或设置单个分组信息。
@ -110,7 +110,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("shelf_id")]
[System.Text.Json.Serialization.JsonPropertyName("shelf_id")]
public int ShelfId { get; set; }
public long ShelfId { get; set; }
/// <summary>
/// 获取或设置货架数据。

View File

@ -20,7 +20,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("shelf_id")]
[System.Text.Json.Serialization.JsonPropertyName("shelf_id")]
public int ShelfId { get; set; }
public long ShelfId { get; set; }
/// <summary>
/// 获取或设置货架数据。

View File

@ -10,6 +10,6 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("address_id")]
[System.Text.Json.Serialization.JsonPropertyName("address_id")]
public int AddressId { get; set; }
public long AddressId { get; set; }
}
}

View File

@ -10,6 +10,6 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("address_id")]
[System.Text.Json.Serialization.JsonPropertyName("address_id")]
public int AddressId { get; set; }
public long AddressId { get; set; }
}
}

View File

@ -10,6 +10,6 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("address_id")]
[System.Text.Json.Serialization.JsonPropertyName("address_id")]
public int AddressId { get; set; }
public long AddressId { get; set; }
}
}

View File

@ -118,7 +118,7 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("address_id")]
[System.Text.Json.Serialization.JsonPropertyName("address_id")]
public int AddressId { get; set; }
public long AddressId { get; set; }
/// <summary>
/// 获取或设置地址信息。

View File

@ -14,7 +14,7 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("address_id")]
[System.Text.Json.Serialization.JsonPropertyName("address_id")]
public int AddressId { get; set; }
public long AddressId { get; set; }
}
}

View File

@ -174,7 +174,7 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("template_id")]
[System.Text.Json.Serialization.JsonPropertyName("template_id")]
public int TemplateId { get; set; }
public long TemplateId { get; set; }
/// <summary>
/// 获取或设置模板名称。

View File

@ -10,6 +10,6 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("template_id")]
[System.Text.Json.Serialization.JsonPropertyName("template_id")]
public int TemplateId { get; set; }
public long TemplateId { get; set; }
}
}

View File

@ -14,7 +14,7 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("template_id")]
[System.Text.Json.Serialization.JsonPropertyName("template_id")]
public int TemplateId { get; set; }
public long TemplateId { get; set; }
}
}

View File

@ -10,6 +10,6 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("task_id")]
[System.Text.Json.Serialization.JsonPropertyName("task_id")]
public int TaskId { get; set; }
public long TaskId { get; set; }
}
}

View File

@ -21,7 +21,7 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("task_id")]
[System.Text.Json.Serialization.JsonPropertyName("task_id")]
public int TaskId { get; set; }
public long TaskId { get; set; }
/// <summary>
/// 获取或设置商品 ID。

View File

@ -10,7 +10,7 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("task_id")]
[System.Text.Json.Serialization.JsonPropertyName("task_id")]
public int TaskId { get; set; }
public long TaskId { get; set; }
/// <summary>
/// 获取或设置抢购任务状态。

View File

@ -62,7 +62,7 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("template_id")]
[System.Text.Json.Serialization.JsonPropertyName("template_id")]
public int TemplateId { get; set; }
public long TemplateId { get; set; }
/// <summary>
/// 获取或设置自提时间信息。

View File

@ -216,7 +216,7 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("template_id")]
[System.Text.Json.Serialization.JsonPropertyName("template_id")]
public int TemplateId { get; set; }
public long TemplateId { get; set; }
/// <summary>
/// 获取或设置配送方。

View File

@ -21,7 +21,7 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("template_id")]
[System.Text.Json.Serialization.JsonPropertyName("template_id")]
public int TemplateId { get; set; }
public long TemplateId { get; set; }
/// <summary>
/// 获取或设置自提时间信息。

View File

@ -80,7 +80,7 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("template_id")]
[System.Text.Json.Serialization.JsonPropertyName("template_id")]
public int TemplateId { get; set; }
public long TemplateId { get; set; }
/// <summary>
/// 获取或设置配送方。

View File

@ -7,7 +7,7 @@
{
public static class Types
{
public class Aftersale
public class AftersaleOrder
{
public static class Types
{
@ -254,6 +254,6 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("after_sale_order_list")]
[System.Text.Json.Serialization.JsonPropertyName("after_sale_order_list")]
public Types.Aftersale[] AftersaleOrderList { get; set; } = default!;
public Types.AftersaleOrder[] AftersaleOrderList { get; set; } = default!;
}
}

View File

@ -1,4 +1,4 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /product/order/getaftersaleorder 接口的响应。</para>
@ -7,7 +7,7 @@
{
public static class Types
{
public class Aftersale : ProductOrderBatchGetAftersaleOrderResponse.Types.Aftersale
public class AftersaleOrder : ProductOrderBatchGetAftersaleOrderResponse.Types.AftersaleOrder
{
}
}
@ -17,6 +17,6 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("after_sale_order")]
[System.Text.Json.Serialization.JsonPropertyName("after_sale_order")]
public Types.Aftersale AftersaleOrder { get; set; } = default!;
public Types.AftersaleOrder AftersaleOrder { get; set; } = default!;
}
}

View File

@ -15,7 +15,7 @@
[Newtonsoft.Json.JsonProperty("catId")]
[System.Text.Json.Serialization.JsonPropertyName("catId")]
[System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
public int CategoryId { get; set; } = default!;
public int CategoryId { get; set; }
/// <summary>
/// 获取或设置类目名称。

View File

@ -73,7 +73,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("templateId")]
[System.Text.Json.Serialization.JsonPropertyName("templateId")]
public int TemplateId { get; set; }
public long TemplateId { get; set; }
}
}

View File

@ -14,7 +14,7 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("goods_id")]
[System.Text.Json.Serialization.JsonPropertyName("goods_id")]
public int GoodsId { get; set; }
public long GoodsId { get; set; }
/// <summary>
/// 获取或设置商品名称。

View File

@ -10,7 +10,7 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("goodsId")]
[System.Text.Json.Serialization.JsonPropertyName("goodsId")]
public int GoodsId { get; set; }
public long GoodsId { get; set; }
/// <summary>
/// 获取或设置审核单 ID。

View File

@ -10,6 +10,6 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("goodsId")]
[System.Text.Json.Serialization.JsonPropertyName("goodsId")]
public int GoodsId { get; set; }
public long GoodsId { get; set; }
}
}

View File

@ -10,6 +10,6 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("goodsId")]
[System.Text.Json.Serialization.JsonPropertyName("goodsId")]
public int GoodsId { get; set; }
public long GoodsId { get; set; }
}
}

View File

@ -14,7 +14,7 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("goodsId")]
[System.Text.Json.Serialization.JsonPropertyName("goodsId")]
public int GoodsId { get; set; }
public long GoodsId { get; set; }
/// <summary>
/// 获取或设置商品名称。

View File

@ -10,7 +10,7 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("goodsId")]
[System.Text.Json.Serialization.JsonPropertyName("goodsId")]
public int GoodsId { get; set; }
public long GoodsId { get; set; }
/// <summary>
/// 获取或设置审核单 ID。

View File

@ -14,7 +14,7 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("goodsId")]
[System.Text.Json.Serialization.JsonPropertyName("goodsId")]
public int GoodsId { get; set; }
public long GoodsId { get; set; }
}
}

View File

@ -17,6 +17,6 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("goodsId")]
[System.Text.Json.Serialization.JsonPropertyName("goodsId")]
public int GoodsId { get; set; }
public long GoodsId { get; set; }
}
}

View File

@ -17,6 +17,6 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("goodsId")]
[System.Text.Json.Serialization.JsonPropertyName("goodsId")]
public int GoodsId { get; set; }
public long GoodsId { get; set; }
}
}

View File

@ -17,7 +17,7 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("goodsId")]
[System.Text.Json.Serialization.JsonPropertyName("goodsId")]
public int GoodsId { get; set; }
public long GoodsId { get; set; }
/// <summary>
/// 获取或设置是否上架。

View File

@ -17,6 +17,6 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("goodsId")]
[System.Text.Json.Serialization.JsonPropertyName("goodsId")]
public int GoodsId { get; set; }
public long GoodsId { get; set; }
}
}

View File

@ -16,7 +16,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("goodsId")]
[System.Text.Json.Serialization.JsonPropertyName("goodsId")]
public int GoodsId { get; set; }
public long GoodsId { get; set; }
}
}

View File

@ -14,7 +14,7 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("record_id")]
[System.Text.Json.Serialization.JsonPropertyName("record_id")]
public int RecordId { get; set; }
public long RecordId { get; set; }
/// <summary>
/// 获取或设置反馈用户唯一标识。

View File

@ -18,7 +18,7 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("goods_id")]
[System.Text.Json.Serialization.JsonPropertyName("goods_id")]
public int GoodsId { get; set; }
public long GoodsId { get; set; }
/// <summary>
/// 获取或设置商品名称。

View File

@ -12,7 +12,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("product_id")]
[System.Text.Json.Serialization.JsonPropertyName("product_id")]
public int ProductId { get; set; }
public long ProductId { get; set; }
/// <summary>
/// 获取或设置设备 ID 列表。

View File

@ -68,7 +68,7 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("appeal_record_id")]
[System.Text.Json.Serialization.JsonPropertyName("appeal_record_id")]
public int AppealRecordId { get; set; } = default!;
public long AppealRecordId { get; set; } = default!;
/// <summary>
/// 获取或设置申诉次数。

View File

@ -17,7 +17,7 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("draft_id")]
[System.Text.Json.Serialization.JsonPropertyName("draft_id")]
public int DraftId { get; set; }
public long DraftId { get; set; }
/// <summary>
/// 获取或设置模板类型。

View File

@ -14,7 +14,7 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("draft_id")]
[System.Text.Json.Serialization.JsonPropertyName("draft_id")]
public int DraftId { get; set; }
public long DraftId { get; set; }
/// <summary>
/// 获取或设置用户自定义版本号。

View File

@ -0,0 +1,11 @@
{
"ToUserName": "gh_*",
"FromUserName": "OpenID",
"CreateTime": 1662480000,
"MsgType": "event",
"Event": "channels_ec_aftersale_update",
"finder_shop_aftersale_status_update": {
"status": "USER_WAIT_RETURN",
"after_sale_order_id": "1234567"
}
}

View File

@ -0,0 +1,4 @@
{
"after_sale_order_id": "1768034782998651",
"address_id": "123"
}

View File

@ -0,0 +1,5 @@
{
"begin_create_time": 1658911158,
"end_create_time": 1658912158,
"next_key": "THE_NEXT_KEY"
}

View File

@ -0,0 +1,16 @@
{
"errcode": 0,
"errmsg": "ok",
"after_sale_order_id_list": [
"1934164653012121",
"1934161104780121",
"1934886755899121",
"1934380526967121",
"1934588095124121",
"1934923837729121",
"1934806194319121",
"1934790256816121"
],
"has_more": true,
"next_key": "THE_NEXT_KEY_NEW"
}

View File

@ -0,0 +1,42 @@
{
"errcode": 0,
"after_sale_order": {
"after_sale_order_id": "123456",
"status": "MERCHANT_REFUND_SUCCESS",
"openid": "OPENID",
"order_id": "1768683047558651",
"product_info": {
"product_id": "3286",
"sku_id": "4740",
"count": 1
},
"details": {
"desc": "1234",
"receive_product": true,
"cancel_time": 0,
"prove_imgs": [],
"tel_number": ""
},
"refund_info": {
"amount": 11
},
"return_info": {
"waybill_id": "",
"delivery_id": "",
"delivery_name": ""
},
"merchant_upload_info": {
"reject_reason": "",
"refund_certificates": []
},
"create_time": 1591319454,
"update_time": 1612754444,
"reason": "NO_LONGER_WANT",
"refund_resp": {
"code": "",
"ret": 0,
"message": ""
},
"type": "REFUND"
}
}

View File

@ -0,0 +1,4 @@
{
"after_sale_order_id": "1768715750567651",
"reject_reason": "123"
}

View File

@ -0,0 +1,5 @@
{
"after_sale_order_id": "1768715750567651",
"refund_certificates": ["media_id1", "media_id2"],
"desc": "DESC"
}