From 820bf185e3f982f73c92ff5dc860824846a22f9d Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Mon, 7 Apr 2025 20:36:32 +0800 Subject: [PATCH] =?UTF-8?q?feat(wxapi):=20=E6=96=B0=E5=A2=9E=E5=BE=AE?= =?UTF-8?q?=E4=BF=A1=E5=B0=8F=E5=BA=97=E7=BE=A4=E7=A4=BC=E7=89=A9=E8=B6=85?= =?UTF-8?q?=E6=97=B6=E8=87=AA=E5=8A=A8=E9=80=80=E5=94=AE=E5=90=8E=E5=8D=95?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EC/ChannelsECAftersaleUpdateEvent.cs | 4 +- .../ChannelsECPresentAftersaleUpdateEvent.cs | 52 ++++++ ...echatApiClientExecuteChannelsExtensions.cs | 48 ++++++ ...elsECAftersaleGetAftersaleOrderResponse.cs | 7 + ...AftersaleGetPresentAftersaleListRequest.cs | 29 ++++ ...ftersaleGetPresentAftersaleListResponse.cs | 29 ++++ ...ftersaleGetPresentAftersaleOrderRequest.cs | 15 ++ ...tersaleGetPresentAftersaleOrderResponse.cs | 153 ++++++++++++++++++ ...ChannelsECPresentAftersaleUpdateEvent.json | 12 ++ ...tersaleGetPresentAftersaleListRequest.json | 5 + ...ersaleGetPresentAftersaleListResponse.json | 16 ++ ...ersaleGetPresentAftersaleOrderRequest.json | 3 + ...rsaleGetPresentAftersaleOrderResponse.json | 49 ++++++ 13 files changed, 420 insertions(+), 2 deletions(-) create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECPresentAftersaleUpdateEvent.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECAftersale/Present/ChannelsECAftersaleGetPresentAftersaleListRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECAftersale/Present/ChannelsECAftersaleGetPresentAftersaleListResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECAftersale/Present/ChannelsECAftersaleGetPresentAftersaleOrderRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECAftersale/Present/ChannelsECAftersaleGetPresentAftersaleOrderResponse.cs create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECPresentAftersaleUpdateEvent.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECAftersale/Present/ChannelsECAftersaleGetPresentAftersaleListRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECAftersale/Present/ChannelsECAftersaleGetPresentAftersaleListResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECAftersale/Present/ChannelsECAftersaleGetPresentAftersaleOrderRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECAftersale/Present/ChannelsECAftersaleGetPresentAftersaleOrderResponse.json diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECAftersaleUpdateEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECAftersaleUpdateEvent.cs index 319dd37a..18d394a6 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECAftersaleUpdateEvent.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECAftersaleUpdateEvent.cs @@ -4,7 +4,8 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Events /// 表示 EVENT.channels_ec_aftersale_update 事件的数据。 /// /// REF:
- /// + ///
+ /// ///
/// public class ChannelsECAftersaleUpdateEvent : WechatApiEvent @@ -22,7 +23,6 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Events [System.Xml.Serialization.XmlElement("after_sale_order_id")] public long AftersaleOrderId { get; set; } - /// /// 获取或设置订单 ID。 /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECPresentAftersaleUpdateEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECPresentAftersaleUpdateEvent.cs new file mode 100644 index 00000000..7e44d629 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/Channels/EC/ChannelsECPresentAftersaleUpdateEvent.cs @@ -0,0 +1,52 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Events +{ + /// + /// 表示 EVENT.channels_ec_present_aftersale_update 事件的数据。 + /// + /// REF:
+ /// + ///
+ ///
+ public class ChannelsECPresentAftersaleUpdateEvent : WechatApiEvent + { + public static class Types + { + public class AftersaleOrder + { + /// + /// 获取或设置售后单 ID。 + /// + [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; } + + /// + /// 获取或设置订单 ID。 + /// + [Newtonsoft.Json.JsonProperty("order_id")] + [System.Text.Json.Serialization.JsonPropertyName("order_id")] + [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] + [System.Xml.Serialization.XmlElement("order_id")] + public long OrderId { get; set; } + + /// + /// 获取或设置售后单状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + [System.Xml.Serialization.XmlElement("status")] + public string Status { get; set; } = default!; + } + } + + /// + /// 获取或设置售后单信息。 + /// + [Newtonsoft.Json.JsonProperty("finder_shop_present_aftersale_status_update")] + [System.Text.Json.Serialization.JsonPropertyName("finder_shop_present_aftersale_status_update")] + [System.Xml.Serialization.XmlElement("finder_shop_present_aftersale_status_update")] + public Types.AftersaleOrder AftersaleOrder { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs index 20847953..11eeda5c 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs @@ -274,6 +274,54 @@ namespace SKIT.FlurlHttpClient.Wechat.Api } #endregion + #region ECAftersale/Present + /// + /// 异步调用 [POST] /channels/ec/aftersale/getpresentaftersalelist 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteChannelsECAftersaleGetPresentAftersaleListAsync(this WechatApiClient client, Models.ChannelsECAftersaleGetPresentAftersaleListRequest 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", "getpresentaftersalelist") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [POST] /channels/ec/aftersale/getpresentaftersaleorder 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteChannelsECAftersaleGetPresentAftersaleOrderAsync(this WechatApiClient client, Models.ChannelsECAftersaleGetPresentAftersaleOrderRequest 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", "getpresentaftersaleorder") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + #endregion + #region ECAftersale/Reason /// /// 异步调用 [POST] /channels/ec/aftersale/reason/get 接口。 diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECAftersale/ChannelsECAftersaleGetAftersaleOrderResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECAftersale/ChannelsECAftersaleGetAftersaleOrderResponse.cs index d2407be8..925d1b20 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECAftersale/ChannelsECAftersaleGetAftersaleOrderResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECAftersale/ChannelsECAftersaleGetAftersaleOrderResponse.cs @@ -345,6 +345,13 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models [System.Text.Json.Serialization.JsonPropertyName("openid")] public string OpenId { get; set; } = default!; + /// + /// 获取或设置买家用户 UnionId。 + /// + [Newtonsoft.Json.JsonProperty("unionid")] + [System.Text.Json.Serialization.JsonPropertyName("unionid")] + public string? UnionId { get; set; } + /// /// 获取或设置退款原因。 /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECAftersale/Present/ChannelsECAftersaleGetPresentAftersaleListRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECAftersale/Present/ChannelsECAftersaleGetPresentAftersaleListRequest.cs new file mode 100644 index 00000000..9835dfc3 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECAftersale/Present/ChannelsECAftersaleGetPresentAftersaleListRequest.cs @@ -0,0 +1,29 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/aftersale/getpresentaftersalelist 接口的请求。 + /// + public class ChannelsECAftersaleGetPresentAftersaleListRequest : WechatApiRequest, IInferable + { + /// + /// 获取或设置创建时间开始时间戳。 + /// + [Newtonsoft.Json.JsonProperty("begin_create_time")] + [System.Text.Json.Serialization.JsonPropertyName("begin_create_time")] + public long StartCreateTimestamp { get; set; } + + /// + /// 获取或设置创建时间结束时间戳。 + /// + [Newtonsoft.Json.JsonProperty("end_create_time")] + [System.Text.Json.Serialization.JsonPropertyName("end_create_time")] + public long EndCreateTimestamp { get; set; } + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonProperty("next_key")] + [System.Text.Json.Serialization.JsonPropertyName("next_key")] + public string? Cursor { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECAftersale/Present/ChannelsECAftersaleGetPresentAftersaleListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECAftersale/Present/ChannelsECAftersaleGetPresentAftersaleListResponse.cs new file mode 100644 index 00000000..db304e38 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECAftersale/Present/ChannelsECAftersaleGetPresentAftersaleListResponse.cs @@ -0,0 +1,29 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/aftersale/getpresentaftersalelist 接口的响应。 + /// + public class ChannelsECAftersaleGetPresentAftersaleListResponse : WechatApiResponse + { + /// + /// 获取或设置售后单 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("after_sale_order_id_list")] + [System.Text.Json.Serialization.JsonPropertyName("after_sale_order_id_list")] + public string[] AftersaleOrderIdList { get; set; } = default!; + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonProperty("next_key")] + [System.Text.Json.Serialization.JsonPropertyName("next_key")] + public string? NextCursor { get; set; } + + /// + /// 获取或设置是否还有更多。 + /// + [Newtonsoft.Json.JsonProperty("has_more")] + [System.Text.Json.Serialization.JsonPropertyName("has_more")] + public bool HasMore { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECAftersale/Present/ChannelsECAftersaleGetPresentAftersaleOrderRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECAftersale/Present/ChannelsECAftersaleGetPresentAftersaleOrderRequest.cs new file mode 100644 index 00000000..748e1e33 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECAftersale/Present/ChannelsECAftersaleGetPresentAftersaleOrderRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/aftersale/getpresentaftersaleorder 接口的请求。 + /// + public class ChannelsECAftersaleGetPresentAftersaleOrderRequest : WechatApiRequest, IInferable + { + /// + /// 获取或设置售后单 ID。 + /// + [Newtonsoft.Json.JsonProperty("after_sale_order_id")] + [System.Text.Json.Serialization.JsonPropertyName("after_sale_order_id")] + public string AftersaleOrderId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECAftersale/Present/ChannelsECAftersaleGetPresentAftersaleOrderResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECAftersale/Present/ChannelsECAftersaleGetPresentAftersaleOrderResponse.cs new file mode 100644 index 00000000..efcb3cdd --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECAftersale/Present/ChannelsECAftersaleGetPresentAftersaleOrderResponse.cs @@ -0,0 +1,153 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/aftersale/getpresentaftersaleorder 接口的响应。 + /// + public class ChannelsECAftersaleGetPresentAftersaleOrderResponse : WechatApiResponse + { + public static class Types + { + public class AftersaleOrder + { + public static class Types + { + public class Order + { + public static class Types + { + public class Product + { + /// + /// 获取或设置商品 ID。 + /// + [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; } + + /// + /// 获取或设置 SKU ID。 + /// + [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; } + + /// + /// 获取或设置商品数量。 + /// + [Newtonsoft.Json.JsonProperty("count")] + [System.Text.Json.Serialization.JsonPropertyName("count")] + public int Count { get; set; } + + /// + /// 获取或设置退款信息。 + /// + [Newtonsoft.Json.JsonProperty("refund_info")] + [System.Text.Json.Serialization.JsonPropertyName("refund_info")] + public Refund? Refund { get; set; } + } + } + + /// + /// 获取或设置订单 ID。 + /// + [Newtonsoft.Json.JsonProperty("order_id")] + [System.Text.Json.Serialization.JsonPropertyName("order_id")] + public string OrderId { get; set; } = default!; + + /// + /// 获取或设置退款信息。 + /// + [Newtonsoft.Json.JsonProperty("refund_info")] + [System.Text.Json.Serialization.JsonPropertyName("refund_info")] + public Refund? Refund { get; set; } + + /// + /// 获取或设置商品列表。 + /// + [Newtonsoft.Json.JsonProperty("product_info_list")] + [System.Text.Json.Serialization.JsonPropertyName("product_info_list")] + public Types.Product[] ProductList { get; set; } = default!; + } + + public class Refund : ChannelsECAftersaleGetAftersaleOrderResponse.Types.AftersaleOrder.Types.Refund + { + } + } + + /// + /// 获取或设置售后单 ID。 + /// + [Newtonsoft.Json.JsonProperty("after_sale_order_id")] + [System.Text.Json.Serialization.JsonPropertyName("after_sale_order_id")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))] + public string AftersaleOrderId { get; set; } = default!; + + /// + /// 获取或设置礼物订单 ID。 + /// + [Newtonsoft.Json.JsonProperty("present_order_id")] + [System.Text.Json.Serialization.JsonPropertyName("present_order_id")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))] + public string PresentOrderId { get; set; } = default!; + + /// + /// 获取或设置售后单状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public string Status { get; set; } = default!; + + /// + /// 获取或设置买家用户 OpenId。 + /// + [Newtonsoft.Json.JsonProperty("openid")] + [System.Text.Json.Serialization.JsonPropertyName("openid")] + public string OpenId { get; set; } = default!; + + /// + /// 获取或设置买家用户 UnionId。 + /// + [Newtonsoft.Json.JsonProperty("unionid")] + [System.Text.Json.Serialization.JsonPropertyName("unionid")] + public string? UnionId { get; set; } + + /// + /// 获取或设置订单信息列表。 + /// + [Newtonsoft.Json.JsonProperty("order_info_list")] + [System.Text.Json.Serialization.JsonPropertyName("order_info_list")] + public Types.Order[] OrderList { get; set; } = default!; + + /// + /// 获取或设置退款信息。 + /// + [Newtonsoft.Json.JsonProperty("refund_info")] + [System.Text.Json.Serialization.JsonPropertyName("refund_info")] + public Types.Refund? Refund { get; set; } + + /// + /// 获取或设置更新时间戳。 + /// + [Newtonsoft.Json.JsonProperty("update_time")] + [System.Text.Json.Serialization.JsonPropertyName("update_time")] + public long UpdateTimestamp { get; set; } + + /// + /// 获取或设置创建时间戳。 + /// + [Newtonsoft.Json.JsonProperty("create_time")] + [System.Text.Json.Serialization.JsonPropertyName("create_time")] + public long CreateTimestamp { get; set; } + } + } + + /// + /// 获取或设置售后单信息。 + /// + [Newtonsoft.Json.JsonProperty("after_sale_order")] + [System.Text.Json.Serialization.JsonPropertyName("after_sale_order")] + public Types.AftersaleOrder AftersaleOrder { get; set; } = default!; + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECPresentAftersaleUpdateEvent.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECPresentAftersaleUpdateEvent.json new file mode 100644 index 00000000..50d44041 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/Channels/EC/ChannelsECPresentAftersaleUpdateEvent.json @@ -0,0 +1,12 @@ +{ + "ToUserName": "gh_*", + "FromUserName": "OpenID", + "CreateTime": 1662480000, + "MsgType": "event", + "Event": "channels_ec_present_aftersale_update", + "finder_shop_present_aftersale_status_update": { + "status": "PLATFORM_REFUNDING", + "after_sale_order_id": "1234567", + "order_id": "12345" + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECAftersale/Present/ChannelsECAftersaleGetPresentAftersaleListRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECAftersale/Present/ChannelsECAftersaleGetPresentAftersaleListRequest.json new file mode 100644 index 00000000..b6657fe3 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECAftersale/Present/ChannelsECAftersaleGetPresentAftersaleListRequest.json @@ -0,0 +1,5 @@ +{ + "begin_create_time": 1658911158, + "end_create_time": 1658912158, + "next_key": "THE_NEXT_KEY" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECAftersale/Present/ChannelsECAftersaleGetPresentAftersaleListResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECAftersale/Present/ChannelsECAftersaleGetPresentAftersaleListResponse.json new file mode 100644 index 00000000..e1a87553 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECAftersale/Present/ChannelsECAftersaleGetPresentAftersaleListResponse.json @@ -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" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECAftersale/Present/ChannelsECAftersaleGetPresentAftersaleOrderRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECAftersale/Present/ChannelsECAftersaleGetPresentAftersaleOrderRequest.json new file mode 100644 index 00000000..70e17a11 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECAftersale/Present/ChannelsECAftersaleGetPresentAftersaleOrderRequest.json @@ -0,0 +1,3 @@ +{ + "after_sale_order_id": "6000000000000001" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECAftersale/Present/ChannelsECAftersaleGetPresentAftersaleOrderResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECAftersale/Present/ChannelsECAftersaleGetPresentAftersaleOrderResponse.json new file mode 100644 index 00000000..19d1f551 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECAftersale/Present/ChannelsECAftersaleGetPresentAftersaleOrderResponse.json @@ -0,0 +1,49 @@ +{ + "errcode": 0, + "after_sale_order": { + "after_sale_order_id": "6000000000000001", + "present_order_id": "4200000000000001", + "status": "MERCHANT_REFUND_SUCCESS", + "openid": "OPENID", + "unionid": "UNIONID", + "create_time": 1591319454, + "update_time": 1612754444, + "refund_info": { + "amount": 100 + }, + "order_info_list": [ + { + "order_id": "3700000000000001", + "refund_info": { + "amount": 51 + }, + "product_info_list": [ + { + "product_id": "1111", + "sku_id": "2222", + "count": 1, + "refund_info": { + "amount": 51 + } + } + ] + }, + { + "order_id": "3700000000000002", + "refund_info": { + "amount": 49 + }, + "product_info_list": [ + { + "product_id": "3333", + "sku_id": "4444", + "count": 1, + "refund_info": { + "amount": 49 + } + } + ] + } + ] + } +}