diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs index c567718c..494e6e83 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs @@ -634,6 +634,56 @@ namespace SKIT.FlurlHttpClient.Wechat.Api #endregion #endregion + #region ECB2C + #region ECB2C/Activity + /// + /// 异步调用 [POST] /channels/ec/b2c/activity/list/promoter/get 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteChannelsECB2CActivityListPromoterGetAsync(this WechatApiClient client, Models.ChannelsECB2CActivityListPromoterGetRequest 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", "b2c", "activity", "list", "promoter", "get") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + + /// + /// 异步调用 [POST] /channels/ec/b2c/activity/info/promoter/get 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteChannelsECB2CActivityInfoPromoterGetAsync(this WechatApiClient client, Models.ChannelsECB2CActivityInfoPromoterGetRequest 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", "b2c", "activity", "info", "promoter", "get") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + #endregion + #endregion + #region ECBasics /// /// 异步调用 [GET] /channels/ec/basics/info/get 接口。 @@ -5132,6 +5182,54 @@ namespace SKIT.FlurlHttpClient.Wechat.Api #endregion #endregion + #region ECOrder/Present + /// + /// 异步调用 [POST] /channels/ec/order/presentlist/get 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteChannelsECOrderPresentListGetAsync(this WechatApiClient client, Models.ChannelsECOrderPresentListGetRequest 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", "presentlist", "get") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /channels/ec/order/present/get 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteChannelsECOrderPresentGetAsync(this WechatApiClient client, Models.ChannelsECOrderPresentGetRequest 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", "present", "get") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #endregion + #region ECOrder/PresentOrder /// /// 异步调用 [POST] /channels/ec/order/presentorder/create 接口。 @@ -5167,6 +5265,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api /// /// /// + [Obsolete("相关接口或字段于 2025-12-08 下线。")] public static async Task ExecuteChannelsECOrderPresentOrderListGetAsync(this WechatApiClient client, Models.ChannelsECOrderPresentOrderListGetRequest request, CancellationToken cancellationToken = default) { if (client is null) throw new ArgumentNullException(nameof(client)); @@ -5190,6 +5289,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api /// /// /// + [Obsolete("相关接口或字段于 2025-12-08 下线。")] public static async Task ExecuteChannelsECOrderPresentOrderGetAsync(this WechatApiClient client, Models.ChannelsECOrderPresentOrderGetRequest request, CancellationToken cancellationToken = default) { if (client is null) throw new ArgumentNullException(nameof(client)); @@ -5201,6 +5301,29 @@ namespace SKIT.FlurlHttpClient.Wechat.Api return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } + + /// + /// 异步调用 [POST] /channels/ec/order/presentorder/receiver/set 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteChannelsECOrderPresentOrderReceiverSetAsync(this WechatApiClient client, Models.ChannelsECOrderPresentOrderReceiverSetRequest 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", "presentorder", "receiver", "set") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } #endregion #region ECOrder/PreshipmentChangeSKU @@ -5273,6 +5396,31 @@ namespace SKIT.FlurlHttpClient.Wechat.Api return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } #endregion + + #region ECOrder/ReceiverOrder + /// + /// 异步调用 [POST] /channels/ec/order/receiverorderlist/get 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteChannelsECOrderReceiverOrderListGetAsync(this WechatApiClient client, Models.ChannelsECOrderReceiverOrderListGetRequest 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", "presentlist", "get") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #endregion #endregion #region ECProduct @@ -8604,7 +8752,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } #endregion - + #region ECWindow /// /// 异步调用 [POST] /channels/ec/window/product/add 接口。 diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECAftersale/GuaranteeOrder/ChannelsECAftersaleSearchGuaranteeOrderResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECAftersale/GuaranteeOrder/ChannelsECAftersaleSearchGuaranteeOrderResponse.cs index c39d7756..e49272d9 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECAftersale/GuaranteeOrder/ChannelsECAftersaleSearchGuaranteeOrderResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECAftersale/GuaranteeOrder/ChannelsECAftersaleSearchGuaranteeOrderResponse.cs @@ -13,6 +13,24 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models { public class ProductInfo { + /// + /// 获取或设置商品 ID。 + /// + [Newtonsoft.Json.JsonProperty("product_id")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))] + [System.Text.Json.Serialization.JsonPropertyName("product_id")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))] + public long? ProductId { get; set; } + + /// + /// 获取或设置 SKU ID。 + /// + [Newtonsoft.Json.JsonProperty("sku_id")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))] + [System.Text.Json.Serialization.JsonPropertyName("sku_id")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))] + public long? SKUId { get; set; } + /// /// 获取或设置商品名称。 /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECB2C/Activity/ChannelsECB2CActivityInfoPromoterGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECB2C/Activity/ChannelsECB2CActivityInfoPromoterGetRequest.cs new file mode 100644 index 00000000..51a951f9 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECB2C/Activity/ChannelsECB2CActivityInfoPromoterGetRequest.cs @@ -0,0 +1,22 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/b2c/activity/info/promoter/get 接口的请求。 + /// + public class ChannelsECB2CActivityInfoPromoterGetRequest : WechatApiRequest, IInferable + { + /// + /// 获取或设置小店 AppId。 + /// + [Newtonsoft.Json.JsonProperty("shop_appid")] + [System.Text.Json.Serialization.JsonPropertyName("shop_appid")] + public string ShopAppId { get; set; } = string.Empty; + + /// + /// 获取或设置活动 ID。 + /// + [Newtonsoft.Json.JsonProperty("activity_id")] + [System.Text.Json.Serialization.JsonPropertyName("activity_id")] + public long ActivityId { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECB2C/Activity/ChannelsECB2CActivityInfoPromoterGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECB2C/Activity/ChannelsECB2CActivityInfoPromoterGetResponse.cs new file mode 100644 index 00000000..beb9a665 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECB2C/Activity/ChannelsECB2CActivityInfoPromoterGetResponse.cs @@ -0,0 +1,183 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/b2c/activity/info/promoter/get 接口的响应。 + /// + public class ChannelsECB2CActivityInfoPromoterGetResponse : WechatApiResponse + { + public static class Types + { + public class Activity + { + public static class Types + { + public class ActivityInfo + { + public static class Types + { + public class BasicInfo + { + public static class Types + { + public class ShopInfo + { + /// + /// 获取或设置小店 AppId。 + /// + [Newtonsoft.Json.JsonProperty("appid")] + [System.Text.Json.Serialization.JsonPropertyName("appid")] + public string AppId { get; set; } = default!; + + /// + /// 获取或设置小店名称。 + /// + [Newtonsoft.Json.JsonProperty("nickname")] + [System.Text.Json.Serialization.JsonPropertyName("nickname")] + public string Nickname { get; set; } = default!; + } + } + + /// + /// 获取或设置活动开始时间戳。 + /// + [Newtonsoft.Json.JsonProperty("activity_start_time")] + [System.Text.Json.Serialization.JsonPropertyName("activity_start_time")] + public long ActivityStartTimestamp { get; set; } + + /// + /// 获取或设置活动结束时间戳。 + /// + [Newtonsoft.Json.JsonProperty("activity_end_time")] + [System.Text.Json.Serialization.JsonPropertyName("activity_end_time")] + public long ActivityEndTimestamp { get; set; } + + /// + /// 获取或设置店铺信息。 + /// + [Newtonsoft.Json.JsonProperty("shop_info")] + [System.Text.Json.Serialization.JsonPropertyName("shop_info")] + public Types.ShopInfo ShopInfo { get; set; } = default!; + } + + public class PrizeInfo + { + public static class Types + { + public class ProductInfo + { + /// + /// 获取或设置商品 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; } + + /// + /// 获取或设置商品名称。 + /// + [Newtonsoft.Json.JsonProperty("product_name")] + [System.Text.Json.Serialization.JsonPropertyName("product_name")] + public string ProductName { get; set; } = default!; + + /// + /// 获取或设置商品图片 URL。 + /// + [Newtonsoft.Json.JsonProperty("product_img_url")] + [System.Text.Json.Serialization.JsonPropertyName("product_img_url")] + public string ProductImageUrl { get; set; } = default!; + + /// + /// 获取或设置 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; } + + /// + /// 获取或设置 SKU 名称。 + /// + [Newtonsoft.Json.JsonProperty("sku_name")] + [System.Text.Json.Serialization.JsonPropertyName("sku_name")] + public string SKUName { get; set; } = default!; + + /// + /// 获取或设置售卖单价(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("price")] + [System.Text.Json.Serialization.JsonPropertyName("price")] + public int Price { get; set; } + + /// + /// 获取或设置活动总库存。 + /// + [Newtonsoft.Json.JsonProperty("stock_num")] + [System.Text.Json.Serialization.JsonPropertyName("stock_num")] + public int Stock { get; set; } + + /// + /// 获取或设置活动剩余库存。 + /// + [Newtonsoft.Json.JsonProperty("can_use_stock_num")] + [System.Text.Json.Serialization.JsonPropertyName("can_use_stock_num")] + public int StockCanUsed { get; set; } + } + } + + /// + /// 获取或设置商品信息列表。 + /// + [Newtonsoft.Json.JsonProperty("product_info_list")] + [System.Text.Json.Serialization.JsonPropertyName("product_info_list")] + public Types.ProductInfo[] ProductInfoList { get; set; } = default!; + } + } + + /// + /// 获取或设置活动基础信息。 + /// + [Newtonsoft.Json.JsonProperty("basic_info")] + [System.Text.Json.Serialization.JsonPropertyName("basic_info")] + public Types.BasicInfo BasicInfo { get; set; } = default!; + + /// + /// 获取或设置活动礼物商品信息。 + /// + [Newtonsoft.Json.JsonProperty("prize_info")] + [System.Text.Json.Serialization.JsonPropertyName("prize_info")] + public Types.PrizeInfo PrizeInfo { get; set; } = default!; + } + } + + /// + /// 获取或设置活动 ID。 + /// + [Newtonsoft.Json.JsonProperty("activity_id")] + [System.Text.Json.Serialization.JsonPropertyName("activity_id")] + public long ActivityId { get; set; } + + /// + /// 获取或设置活动状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int Status { get; set; } + + /// + /// 获取或设置活动信息。 + /// + [Newtonsoft.Json.JsonProperty("info")] + [System.Text.Json.Serialization.JsonPropertyName("info")] + public Types.ActivityInfo ActivityInfo { get; set; } = default!; + } + } + + /// + /// 获取或设置活动信息。 + /// + [Newtonsoft.Json.JsonProperty("activity")] + [System.Text.Json.Serialization.JsonPropertyName("activity")] + public Types.Activity Activity { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECB2C/Activity/ChannelsECB2CActivityListPromoterGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECB2C/Activity/ChannelsECB2CActivityListPromoterGetRequest.cs new file mode 100644 index 00000000..dbadcf91 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECB2C/Activity/ChannelsECB2CActivityListPromoterGetRequest.cs @@ -0,0 +1,37 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/b2c/activity/list/promoter/get 接口的请求。 + /// + public class ChannelsECB2CActivityListPromoterGetRequest : WechatApiRequest, IInferable + { + /// + /// 获取或设置小店 AppId。 + /// + [Newtonsoft.Json.JsonProperty("shop_appid")] + [System.Text.Json.Serialization.JsonPropertyName("shop_appid")] + public string? ShopAppId { get; set; } + + /// + /// 获取或设置活动状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int? Status { get; set; } + + /// + /// 获取或设置分页起始位置。 + /// + [Newtonsoft.Json.JsonProperty("offset")] + [System.Text.Json.Serialization.JsonPropertyName("offset")] + public int Offset { get; set; } + + /// + /// 获取或设置分页每页数量。 + /// 默认值:100 + /// + [Newtonsoft.Json.JsonProperty("limit")] + [System.Text.Json.Serialization.JsonPropertyName("limit")] + public int Limit { get; set; } = 100; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECB2C/Activity/ChannelsECB2CActivityListPromoterGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECB2C/Activity/ChannelsECB2CActivityListPromoterGetResponse.cs new file mode 100644 index 00000000..e29394e8 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECB2C/Activity/ChannelsECB2CActivityListPromoterGetResponse.cs @@ -0,0 +1,57 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/b2c/activity/list/promoter/get 接口的响应。 + /// + public class ChannelsECB2CActivityListPromoterGetResponse : WechatApiResponse + { + public static class Types + { + public class Activity + { + /// + /// 获取或设置小店 AppId。 + /// + [Newtonsoft.Json.JsonProperty("shop_appid")] + [System.Text.Json.Serialization.JsonPropertyName("shop_appid")] + public string ShopAppId { get; set; } = default!; + + /// + /// 获取或设置小店名称。 + /// + [Newtonsoft.Json.JsonProperty("shop_nickname")] + [System.Text.Json.Serialization.JsonPropertyName("shop_nickname")] + public string ShopName { get; set; } = default!; + + /// + /// 获取或设置活动 ID。 + /// + [Newtonsoft.Json.JsonProperty("activity_id")] + [System.Text.Json.Serialization.JsonPropertyName("activity_id")] + [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] + public long ActivityId { get; set; } + + /// + /// 获取或设置活动状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int Status { get; set; } + } + } + + /// + /// 获取或设置活动列表。 + /// + [Newtonsoft.Json.JsonProperty("list")] + [System.Text.Json.Serialization.JsonPropertyName("list")] + public Types.Activity[] ActivityList { get; set; } = default!; + + /// + /// 获取或设置总数量。 + /// + [Newtonsoft.Json.JsonProperty("total_num")] + [System.Text.Json.Serialization.JsonPropertyName("total_num")] + public int TotalCount { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/Present/ChannelsECOrderPresentGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/Present/ChannelsECOrderPresentGetRequest.cs new file mode 100644 index 00000000..cd862bae --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/Present/ChannelsECOrderPresentGetRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/order/present/get 接口的请求。 + /// + public class ChannelsECOrderPresentGetRequest : WechatApiRequest, IInferable + { + /// + /// 获取或设置礼物订单 ID。 + /// + [Newtonsoft.Json.JsonProperty("present_order_id")] + [System.Text.Json.Serialization.JsonPropertyName("present_order_id")] + public string PresentOrderId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/Present/ChannelsECOrderPresentGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/Present/ChannelsECOrderPresentGetResponse.cs new file mode 100644 index 00000000..53fa28f2 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/Present/ChannelsECOrderPresentGetResponse.cs @@ -0,0 +1,138 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/order/present/get 接口的响应。 + /// + public class ChannelsECOrderPresentGetResponse : WechatApiResponse + { + public static class Types + { + public class PresentOrder + { + public static class Types + { + public class PresentDetail + { + public static class Types + { + public class PriceInfo + { + /// + /// 获取或设置价格(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("order_price")] + [System.Text.Json.Serialization.JsonPropertyName("order_price")] + public int Price { get; set; } + } + + public class PayInfo + { + /// + /// 获取或设置支付时间戳。 + /// + [Newtonsoft.Json.JsonProperty("pay_time")] + [System.Text.Json.Serialization.JsonPropertyName("pay_time")] + public long PayTimestamp { get; set; } + } + } + + /// + /// 获取或设置价格信息。 + /// + [Newtonsoft.Json.JsonProperty("price_info")] + [System.Text.Json.Serialization.JsonPropertyName("price_info")] + public Types.PriceInfo? PriceInfo { get; set; } + + /// + /// 获取或设置支付信息。 + /// + [Newtonsoft.Json.JsonProperty("pay_info")] + [System.Text.Json.Serialization.JsonPropertyName("pay_info")] + public Types.PayInfo? PayInfo { get; set; } + + /// + /// 获取或设置祝福语。 + /// + [Newtonsoft.Json.JsonProperty("wishmessage")] + [System.Text.Json.Serialization.JsonPropertyName("wishmessage")] + public string? WishMessage { get; set; } + } + + public class SubOrder + { + /// + /// 获取或设置子单订单 ID。 + /// + [Newtonsoft.Json.JsonProperty("order_id")] + [System.Text.Json.Serialization.JsonPropertyName("order_id")] + public string OrderId { get; set; } = default!; + + /// + /// 获取或设置收礼者 OpenId。 + /// + [Newtonsoft.Json.JsonProperty("openid")] + [System.Text.Json.Serialization.JsonPropertyName("openid")] + public string OpenId { get; set; } = default!; + + /// + /// 获取或设置子单订单状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int Status { get; set; } + } + } + + /// + /// 获取或设置礼物订单 ID。 + /// + [Newtonsoft.Json.JsonProperty("present_order_id")] + [System.Text.Json.Serialization.JsonPropertyName("present_order_id")] + public string PresentOrderId { get; set; } = default!; + + /// + /// 获取或设置是否付款。 + /// + [Newtonsoft.Json.JsonProperty("is_b2c_free_present")] + [System.Text.Json.Serialization.JsonPropertyName("is_b2c_free_present")] + public bool IsB2CFreePresent { get; set; } + + /// + /// 获取或设置礼物详情。 + /// + [Newtonsoft.Json.JsonProperty("present_detail")] + [System.Text.Json.Serialization.JsonPropertyName("present_detail")] + public Types.PresentDetail PresentDetail { get; set; } = default!; + + /// + /// 获取或设置子单列表。 + /// + [Newtonsoft.Json.JsonProperty("sub_order_list")] + [System.Text.Json.Serialization.JsonPropertyName("sub_order_list")] + public Types.SubOrder[] SubOrderList { get; set; } = default!; + + /// + /// 获取或设置关联活动 ID。 + /// + [Newtonsoft.Json.JsonProperty("activity_id")] + [System.Text.Json.Serialization.JsonPropertyName("activity_id")] + [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] + public long? ActivityId { get; set; } + + /// + /// 获取或设置创建时间戳。 + /// + [Newtonsoft.Json.JsonProperty("create_time")] + [System.Text.Json.Serialization.JsonPropertyName("create_time")] + public long CreateTimestamp { get; set; } + } + } + + /// + /// 获取或设置礼物订单信息。 + /// + [Newtonsoft.Json.JsonProperty("present")] + [System.Text.Json.Serialization.JsonPropertyName("present")] + public Types.PresentOrder PresentOrder { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/Present/ChannelsECOrderPresentListGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/Present/ChannelsECOrderPresentListGetRequest.cs new file mode 100644 index 00000000..0e73e6e0 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/Present/ChannelsECOrderPresentListGetRequest.cs @@ -0,0 +1,51 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/order/presentlist/get 接口的请求。 + /// + public class ChannelsECOrderPresentListGetRequest : WechatApiRequest, IInferable + { + public static class Types + { + public class TimeRange : ChannelsECOrderListGetRequest.Types.TimeRange + { + } + } + + /// + /// 获取或设置合作小店 AppId。 + /// + [Newtonsoft.Json.JsonProperty("shop_appid")] + [System.Text.Json.Serialization.JsonPropertyName("shop_appid")] + public string ShopAppId { get; set; } = string.Empty; + + /// + /// 获取或设置创建订单时间范围。 + /// + [Newtonsoft.Json.JsonProperty("create_time_range")] + [System.Text.Json.Serialization.JsonPropertyName("create_time_range")] + public Types.TimeRange? CreateTimeRange { get; set; } + + /// + /// 获取或设置更新订单时间范围。 + /// + [Newtonsoft.Json.JsonProperty("update_time_range")] + [System.Text.Json.Serialization.JsonPropertyName("update_time_range")] + public Types.TimeRange? UpdateTimeRange { get; set; } + + /// + /// 获取或设置分页每页数量。 + /// 默认值:10 + /// + [Newtonsoft.Json.JsonProperty("page_size")] + [System.Text.Json.Serialization.JsonPropertyName("page_size")] + public int Limit { get; set; } = 10; + + /// + /// 获取或设置翻页标记。 + /// + [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/ECOrder/Present/ChannelsECOrderPresentListGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/Present/ChannelsECOrderPresentListGetResponse.cs new file mode 100644 index 00000000..15b92d55 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/Present/ChannelsECOrderPresentListGetResponse.cs @@ -0,0 +1,36 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/order/presentlist/get 接口的响应。 + /// + public class ChannelsECOrderPresentListGetResponse : WechatApiResponse + { + public static class Types + { + public class PresentOrder + { + /// + /// 获取或设置礼物订单 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("present_order_list")] + [System.Text.Json.Serialization.JsonPropertyName("present_order_list")] + public Types.PresentOrder[] PresentOrderList { get; set; } = default!; + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonProperty("next_key")] + [System.Text.Json.Serialization.JsonPropertyName("next_key")] + public string? NextCursor { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderCreateRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderCreateRequest.cs index fc74a1ca..74af6ab2 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderCreateRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderCreateRequest.cs @@ -25,6 +25,13 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models } } + /// + /// 获取或设置请求幂等 ID。 + /// + [Newtonsoft.Json.JsonProperty("idempotent_id")] + [System.Text.Json.Serialization.JsonPropertyName("idempotent_id")] + public string? IdempotentId { get; set; } + /// /// 获取或设置活动 ID。 /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderGetRequest.cs index 7b4c6f7b..db3e2cba 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderGetRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderGetRequest.cs @@ -1,8 +1,11 @@ +using System; + namespace SKIT.FlurlHttpClient.Wechat.Api.Models { /// /// 表示 [POST] /channels/ec/order/presentorder/get 接口的请求。 /// + [Obsolete("相关接口或字段于 2025-12-08 下线。")] public class ChannelsECOrderPresentOrderGetRequest : WechatApiRequest, IInferable { /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderGetResponse.cs index e1de1acf..25592b40 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderGetResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderGetResponse.cs @@ -1,8 +1,11 @@ +using System; + namespace SKIT.FlurlHttpClient.Wechat.Api.Models { /// /// 表示 [POST] /channels/ec/order/presentorder/get 接口的响应。 /// + [Obsolete("相关接口或字段于 2025-12-08 下线。")] public class ChannelsECOrderPresentOrderGetResponse : WechatApiResponse { public static class Types diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderListGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderListGetRequest.cs index 7d1ded37..95e7e3d3 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderListGetRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderListGetRequest.cs @@ -1,8 +1,11 @@ +using System; + namespace SKIT.FlurlHttpClient.Wechat.Api.Models { /// /// 表示 [POST] /channels/ec/order/presentorderlist/get 接口的请求。 /// + [Obsolete("相关接口或字段于 2025-12-08 下线。")] public class ChannelsECOrderPresentOrderListGetRequest : WechatApiRequest, IInferable { public static class Types diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderListGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderListGetResponse.cs index a7a04cb1..71a2b0e5 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderListGetResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderListGetResponse.cs @@ -1,8 +1,11 @@ +using System; + namespace SKIT.FlurlHttpClient.Wechat.Api.Models { /// /// 表示 [POST] /channels/ec/order/presentorderlist/get 接口的响应。 /// + [Obsolete("相关接口或字段于 2025-12-08 下线。")] public class ChannelsECOrderPresentOrderListGetResponse : WechatApiResponse { public static class Types @@ -18,7 +21,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models public string PresentOrderId { get; set; } = default!; /// - /// 获取或设置订单 ID 列表。 + /// 获取或设置子单订单 ID 列表。 /// [Newtonsoft.Json.JsonProperty("order_id")] [System.Text.Json.Serialization.JsonPropertyName("order_id")] diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderReceiverSetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderReceiverSetRequest.cs new file mode 100644 index 00000000..20fd919f --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderReceiverSetRequest.cs @@ -0,0 +1,44 @@ +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/order/presentorder/receiver/set 接口的请求。 + /// + public class ChannelsECOrderPresentOrderReceiverSetRequest : WechatApiRequest, IInferable + { + public static class Types + { + public class SubOrder + { + /// + /// 获取或设置子单订单 ID。 + /// + [Newtonsoft.Json.JsonProperty("order_id")] + [System.Text.Json.Serialization.JsonPropertyName("order_id")] + public string OrderId { get; set; } = string.Empty; + + /// + /// 获取或设置收礼者 OpenId。 + /// + [Newtonsoft.Json.JsonProperty("openid")] + [System.Text.Json.Serialization.JsonPropertyName("openid")] + public string OpenId { get; set; } = string.Empty; + } + } + + /// + /// 获取或设置礼物订单 ID。 + /// + [Newtonsoft.Json.JsonProperty("present_order_id")] + [System.Text.Json.Serialization.JsonPropertyName("present_order_id")] + public string PresentOrderId { get; set; } = string.Empty; + + /// + /// 获取或设置子单列表。 + /// + [Newtonsoft.Json.JsonProperty("sub_order_list")] + [System.Text.Json.Serialization.JsonPropertyName("sub_order_list")] + public IList SubOrderList { get; set; } = new List(); + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderReceiverSetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderReceiverSetResponse.cs new file mode 100644 index 00000000..978659ed --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderReceiverSetResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/order/presentorder/receiver/set 接口的响应。 + /// + public class ChannelsECOrderPresentOrderReceiverSetResponse : WechatApiResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/ReceiverOrder/ChannelsECOrderReceiverOrderListGetRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/ReceiverOrder/ChannelsECOrderReceiverOrderListGetRequest.cs new file mode 100644 index 00000000..88c9b0ad --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/ReceiverOrder/ChannelsECOrderReceiverOrderListGetRequest.cs @@ -0,0 +1,58 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/order/receiverorderlist/get 接口的请求。 + /// + public class ChannelsECOrderReceiverOrderListGetRequest : WechatApiRequest, IInferable + { + public static class Types + { + public class TimeRange : ChannelsECOrderListGetRequest.Types.TimeRange + { + } + } + + /// + /// 获取或设置合作小店 AppId。 + /// + [Newtonsoft.Json.JsonProperty("shop_appid")] + [System.Text.Json.Serialization.JsonPropertyName("shop_appid")] + public string ShopAppId { get; set; } = string.Empty; + + /// + /// 获取或设置收礼者 OpenId。 + /// + [Newtonsoft.Json.JsonProperty("open_id")] + [System.Text.Json.Serialization.JsonPropertyName("open_id")] + public string OpenId { get; set; } = string.Empty; + + /// + /// 获取或设置创建订单时间范围。 + /// + [Newtonsoft.Json.JsonProperty("create_time_range")] + [System.Text.Json.Serialization.JsonPropertyName("create_time_range")] + public Types.TimeRange? CreateTimeRange { get; set; } + + /// + /// 获取或设置更新订单时间范围。 + /// + [Newtonsoft.Json.JsonProperty("update_time_range")] + [System.Text.Json.Serialization.JsonPropertyName("update_time_range")] + public Types.TimeRange? UpdateTimeRange { get; set; } + + /// + /// 获取或设置分页每页数量。 + /// 默认值:10 + /// + [Newtonsoft.Json.JsonProperty("page_size")] + [System.Text.Json.Serialization.JsonPropertyName("page_size")] + public int Limit { get; set; } = 10; + + /// + /// 获取或设置翻页标记。 + /// + [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/ECOrder/ReceiverOrder/ChannelsECOrderReceiverOrderListGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/ReceiverOrder/ChannelsECOrderReceiverOrderListGetResponse.cs new file mode 100644 index 00000000..c93154ef --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/ReceiverOrder/ChannelsECOrderReceiverOrderListGetResponse.cs @@ -0,0 +1,44 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/order/receiverorderlist/get 接口的响应。 + /// + public class ChannelsECOrderReceiverOrderListGetResponse : WechatApiResponse + { + public static class Types + { + public class PresentOrder + { + /// + /// 获取或设置礼物订单 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!; + + /// + /// 获取或设置子单订单 ID。 + /// + [Newtonsoft.Json.JsonProperty("order_id")] + [System.Text.Json.Serialization.JsonPropertyName("order_id")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))] + public string OrderIdList { get; set; } = default!; + } + } + + /// + /// 获取或设置礼物订单列表。 + /// + [Newtonsoft.Json.JsonProperty("order_list")] + [System.Text.Json.Serialization.JsonPropertyName("order_list")] + public Types.PresentOrder[] PresentOrderList { get; set; } = default!; + + /// + /// 获取或设置翻页标记。 + /// + [Newtonsoft.Json.JsonProperty("next_key")] + [System.Text.Json.Serialization.JsonPropertyName("next_key")] + public string? NextCursor { get; set; } + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECB2C/Activity/ChannelsECB2CActivityInfoPromoterGetRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECB2C/Activity/ChannelsECB2CActivityInfoPromoterGetRequest.json new file mode 100644 index 00000000..e4807ba9 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECB2C/Activity/ChannelsECB2CActivityInfoPromoterGetRequest.json @@ -0,0 +1,4 @@ +{ + "shop_appid": "wxxxxxxxxxxxxxxxxx", + "activity_id": "111" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECB2C/Activity/ChannelsECB2CActivityInfoPromoterGetResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECB2C/Activity/ChannelsECB2CActivityInfoPromoterGetResponse.json new file mode 100644 index 00000000..f537080b --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECB2C/Activity/ChannelsECB2CActivityInfoPromoterGetResponse.json @@ -0,0 +1,32 @@ +{ + "errcode": 0, + "errmsg": "ok", + "activity": { + "activity_id": "111", + "info": { + "basic_info": { + "activity_start_time": "1745856000", + "activity_end_time": "1746028800", + "shop_info": { + "nickname": "小店昵称", + "appid": "wxxxxxxxxxxxxxxxxx" + } + }, + "prize_info": { + "product_info_list": [ + { + "product_id": "111111111111111", + "sku_id": "2222222222", + "product_img_url": "https://res.wx.qq.com/op_res/1UTAKQSOJopJ5uMwT8EKEWPgJ1RjiMm8XC93FVwJ6GZlPmfXBjqkwVz8QvO985FR-IWAdYj1sMsaVYdl4jEwUA", + "product_name": "商品名称", + "sku_name": "商品sku名称", + "price": "10", + "stock_num": "10", + "can_use_stock_num": "10" + } + ] + } + }, + "status": 1 + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECB2C/Activity/ChannelsECB2CActivityListPromoterGetRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECB2C/Activity/ChannelsECB2CActivityListPromoterGetRequest.json new file mode 100644 index 00000000..02b69f19 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECB2C/Activity/ChannelsECB2CActivityListPromoterGetRequest.json @@ -0,0 +1,4 @@ +{ + "offset": 0, + "limit": 100 +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECB2C/Activity/ChannelsECB2CActivityListPromoterGetResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECB2C/Activity/ChannelsECB2CActivityListPromoterGetResponse.json new file mode 100644 index 00000000..8d596527 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECB2C/Activity/ChannelsECB2CActivityListPromoterGetResponse.json @@ -0,0 +1,17 @@ +{ + "errcode": 0, + "errmsg": "ok", + "list": [ + { + "shop_appid": "wxxxxxxxxxxxxxxxxx", + "shop_nickname": "小店昵称", + "activity_id": "111" + }, + { + "shop_appid": "wxxxxxxxxxxxxxxxxx", + "shop_nickname": "小店昵称", + "activity_id": "222" + } + ], + "total_num": 2 +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/Present/ChannelsECOrderPresentGetRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/Present/ChannelsECOrderPresentGetRequest.json new file mode 100644 index 00000000..58d3c3b8 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/Present/ChannelsECOrderPresentGetRequest.json @@ -0,0 +1,3 @@ +{ + "present_order_id": "4232433395290081234" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/Present/ChannelsECOrderPresentGetResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/Present/ChannelsECOrderPresentGetResponse.json new file mode 100644 index 00000000..5d3901fd --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/Present/ChannelsECOrderPresentGetResponse.json @@ -0,0 +1,30 @@ +{ + "errcode": 0, + "errmsg": "ok", + "present": { + "present_order_id": "4232433395290081234", + "create_time": 1763713709, + "present_detail": { + "price_info": { + "order_price": 100 + }, + "pay_info": { + "pay_time": 1763715605 + }, + "wishmessage": "大家一起来抽奖" + }, + "sub_order_list": [ + { + "order_id": "3732433407897635321", + "openid": "oDiTs6_jRMfM4lualWTODbwt42kB", + "status": 30 + }, + { + "order_id": "3732433407896586753", + "status": 12 + } + ], + "is_b2c_free_present": false, + "activity_id": "3002981" + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/Present/ChannelsECOrderPresentListGetRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/Present/ChannelsECOrderPresentListGetRequest.json new file mode 100644 index 00000000..4eb5e6f7 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/Present/ChannelsECOrderPresentListGetRequest.json @@ -0,0 +1,9 @@ +{ + "shop_appid": "wx21b9c6e52edfe3a1", + "create_time_range": { + "start_time": 1749007175, + "end_time": 1749008175 + }, + "page_size": 10, + "next_key": "CPestckGEPeVxckGGAAgACgAMAA4gKbYu/HiyeYzQJ7JuskA" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/Present/ChannelsECOrderPresentListGetResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/Present/ChannelsECOrderPresentListGetResponse.json new file mode 100644 index 00000000..c37dc9c4 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/Present/ChannelsECOrderPresentListGetResponse.json @@ -0,0 +1,10 @@ +{ + "errcode": 0, + "errmsg": "ok", + "present_order_list": [ + { + "present_order_id": "4226341196275651234" + } + ], + "next_key": "CPestckGEPeVxckGGAAgACgAMAA4gKbYu/HiyeYzQJ7JuskA" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderReceiverSetRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderReceiverSetRequest.json new file mode 100644 index 00000000..c97aedeb --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderReceiverSetRequest.json @@ -0,0 +1,9 @@ +{ + "present_order_id": "4232433395290081234", + "sub_order_list": [ + { + "order_id": "3732433407897635328", + "openid": "omT_t0BEynCijuylUpZCaAAZp0a6" + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/ReceiverOrder/ChannelsECOrderReceiverOrderListGetRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/ReceiverOrder/ChannelsECOrderReceiverOrderListGetRequest.json new file mode 100644 index 00000000..dcaf63f3 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/ReceiverOrder/ChannelsECOrderReceiverOrderListGetRequest.json @@ -0,0 +1,9 @@ +{ + "shop_appid": "wx0d4f5ddad96dd5ea", + "page_size": 10, + "openid": "okYsb0XK3sTtyW1xteeL7LZmQM7B", + "create_time_range": { + "start_time": 1764518400, + "end_time": 1764604800 + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/ReceiverOrder/ChannelsECOrderReceiverOrderListGetResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/ReceiverOrder/ChannelsECOrderReceiverOrderListGetResponse.json new file mode 100644 index 00000000..2039c9a4 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/ReceiverOrder/ChannelsECOrderReceiverOrderListGetResponse.json @@ -0,0 +1,11 @@ +{ + "order_list": [ + { + "present_order_id": "4232682644641942011", + "order_id": "3732682646291354361" + } + ], + "errcode": 0, + "errmsg": "ok", + "next_key": "CPestckGEPeVxckGGAAgACgAMAA4gKbYu/HiyeYzQJ7JuskA" +}