diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/WxaSecOrder/TradeManageOrderSettlementEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/WxaSecOrder/TradeManageOrderSettlementEvent.cs index c06ec4ca..c65c4c23 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/WxaSecOrder/TradeManageOrderSettlementEvent.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/WxaSecOrder/TradeManageOrderSettlementEvent.cs @@ -45,13 +45,5 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Events [System.Text.Json.Serialization.JsonPropertyName("settlement_time")] [System.Xml.Serialization.XmlElement("settlement_time", IsNullable = true)] public long? SettlementTimestamp { get; set; } - - /// - /// 获取或设置消息文本内容。 - /// - [Newtonsoft.Json.JsonProperty("msg")] - [System.Text.Json.Serialization.JsonPropertyName("msg")] - [System.Xml.Serialization.XmlElement("msg", IsNullable = true)] - public string? Message { get; set; } } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs index c1c3b681..23be464f 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteChannelsExtensions.cs @@ -4153,6 +4153,43 @@ namespace SKIT.FlurlHttpClient.Wechat.Api return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } + + /// + /// 异步调用 [POST] /channels/ec/open/upload 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteChannelsECOpenUploadAsync(this WechatApiClient client, Models.ChannelsECOpenUploadRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + if (request.FileName is null) + request.FileName = Guid.NewGuid().ToString("N").ToLower() + ".png"; + + if (request.FileContentType is null) + request.FileContentType = MimeTypes.GetMimeMapping(request.FileName!); + + IFlurlRequest flurlReq = client + .CreateFlurlRequest(request, HttpMethod.Post, "channels", "ec", "open", "upload") + .SetQueryParam("access_token", request.AccessToken); + + if (request.UploadType == 0) + { + using var httpContent = Utilities.HttpContentBuilder.BuildWithFile(fileName: request.FileName, fileBytes: request.FileBytes!, fileContentType: request.FileContentType, formDataName: "file"); + return await client.SendFlurlRequestAsync(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken).ConfigureAwait(false); + } + else + { + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + } #endregion #region ECOrder @@ -4567,6 +4604,77 @@ namespace SKIT.FlurlHttpClient.Wechat.Api } #endregion + #region ECOrder/PresentOrder + /// + /// 异步调用 [POST] /channels/ec/order/presentorder/create 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteChannelsECOrderPresentOrderCreateAsync(this WechatApiClient client, Models.ChannelsECOrderPresentOrderCreateRequest 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", "create") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /channels/ec/order/presentorderlist/get 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteChannelsECOrderPresentOrderListGetAsync(this WechatApiClient client, Models.ChannelsECOrderPresentOrderListGetRequest 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", "presentorderlist", "get") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /channels/ec/order/presentorder/get 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteChannelsECOrderPresentOrderGetAsync(this WechatApiClient client, Models.ChannelsECOrderPresentOrderGetRequest 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", "get") + .SetQueryParam("access_token", request.AccessToken); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + #endregion + #region ECOrder/PreshipmentChangeSKU /// /// 异步调用 [POST] /channels/ec/order/preshipmentchangesku/approve 接口。 diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOpen/ChannelsECOpenUploadRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOpen/ChannelsECOpenUploadRequest.cs new file mode 100644 index 00000000..5363070d --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOpen/ChannelsECOpenUploadRequest.cs @@ -0,0 +1,50 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/open/upload 接口的请求。 + /// + public class ChannelsECOpenUploadRequest : WechatApiRequest, IInferable + { + /// + /// 获取或设置用户的 OpenId。 + /// + [Newtonsoft.Json.JsonProperty("openid")] + [System.Text.Json.Serialization.JsonPropertyName("openid")] + public string OpenId { get; set; } = string.Empty; + + /// + /// 获取或设置返回数据类型。 + /// + [Newtonsoft.Json.JsonProperty("upload_type")] + [System.Text.Json.Serialization.JsonPropertyName("upload_type")] + public int UploadType { get; set; } + + /// + /// 获取或设置文件字节数组。与字段 二选一。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public byte[]? FileBytes { get; set; } + + /// + /// 获取或设置文件名。如果不指定将由系统自动生成。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string? FileName { get; set; } + + /// + /// 获取或设置文件 Conent-Type。如果不指定将由系统自动生成。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string? FileContentType { get; set; } + + /// + /// 获取或设置文件 URL。与字段 二选一。 + /// + [Newtonsoft.Json.JsonProperty("file_url")] + [System.Text.Json.Serialization.JsonPropertyName("file_url")] + public string? FileUrl { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOpen/ChannelsECOpenUploadResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOpen/ChannelsECOpenUploadResponse.cs new file mode 100644 index 00000000..f2584090 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOpen/ChannelsECOpenUploadResponse.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/open/upload 接口的响应。 + /// + public class ChannelsECOpenUploadResponse : WechatApiResponse + { + /// + /// 获取或设置 MediaId。 + /// + [Newtonsoft.Json.JsonProperty("media_id")] + [System.Text.Json.Serialization.JsonPropertyName("media_id")] + public string MediaId { get; set; } = default!; + } +} 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 new file mode 100644 index 00000000..fc74a1ca --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderCreateRequest.cs @@ -0,0 +1,74 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/order/presentorder/create 接口的请求。 + /// + public class ChannelsECOrderPresentOrderCreateRequest : WechatApiRequest, IInferable + { + public static class Types + { + public class AuditItem + { + /// + /// 获取或设置审核项名称。 + /// + [Newtonsoft.Json.JsonProperty("item_name")] + [System.Text.Json.Serialization.JsonPropertyName("item_name")] + public string ItemName { get; set; } = string.Empty; + + /// + /// 获取或设置审核项值。 + /// + [Newtonsoft.Json.JsonProperty("item_value")] + [System.Text.Json.Serialization.JsonPropertyName("item_value")] + public string ItemValue { get; set; } = string.Empty; + } + } + + /// + /// 获取或设置活动 ID。 + /// + [Newtonsoft.Json.JsonProperty("activity_id")] + [System.Text.Json.Serialization.JsonPropertyName("activity_id")] + public string ActivityId { get; set; } = string.Empty; + + /// + /// 获取或设置用户的 OpenId。 + /// + [Newtonsoft.Json.JsonProperty("openid")] + [System.Text.Json.Serialization.JsonPropertyName("openid")] + public string OpenId { get; set; } = string.Empty; + + /// + /// 获取或设置合作小店 AppId。 + /// + [Newtonsoft.Json.JsonProperty("shop_appid")] + [System.Text.Json.Serialization.JsonPropertyName("shop_appid")] + public string ShopAppId { get; set; } = string.Empty; + + /// + /// 获取或设置祝福语。 + /// + [Newtonsoft.Json.JsonProperty("wishmessage")] + [System.Text.Json.Serialization.JsonPropertyName("wishmessage")] + public string? WishMessage { get; set; } + + /// + /// 获取或设置商品 ID。 + /// + [Newtonsoft.Json.JsonProperty("product_id")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberConverter))] + [System.Text.Json.Serialization.JsonPropertyName("product_id")] + [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)] + public long ProductId { get; set; } + + /// + /// 获取或设置 SKU ID。 + /// + [Newtonsoft.Json.JsonProperty("sku_id")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberConverter))] + [System.Text.Json.Serialization.JsonPropertyName("sku_id")] + [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)] + public long SKUId { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderCreateResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderCreateResponse.cs new file mode 100644 index 00000000..a667bed2 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderCreateResponse.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/order/presentorder/create 接口的响应。 + /// + public class ChannelsECOrderPresentOrderCreateResponse : WechatApiResponse + { + /// + /// 获取或设置礼物订单 ID。 + /// + [Newtonsoft.Json.JsonProperty("present_order_id")] + [System.Text.Json.Serialization.JsonPropertyName("present_order_id")] + public string PresentOrderId { get; set; } = default!; + } +} 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 new file mode 100644 index 00000000..7b4c6f7b --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderGetRequest.cs @@ -0,0 +1,22 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/order/presentorder/get 接口的请求。 + /// + public class ChannelsECOrderPresentOrderGetRequest : WechatApiRequest, IInferable + { + /// + /// 获取或设置礼物订单 ID。 + /// + [Newtonsoft.Json.JsonProperty("present_order_id")] + [System.Text.Json.Serialization.JsonPropertyName("present_order_id")] + public string PresentOrderId { get; set; } = string.Empty; + + /// + /// 获取或设置用户的 OpenId。 + /// + [Newtonsoft.Json.JsonProperty("open_id")] + [System.Text.Json.Serialization.JsonPropertyName("open_id")] + public string? OpenId { get; set; } + } +} 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 new file mode 100644 index 00000000..e1de1acf --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderGetResponse.cs @@ -0,0 +1,116 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/order/presentorder/get 接口的响应。 + /// + public class ChannelsECOrderPresentOrderGetResponse : WechatApiResponse + { + public static class Types + { + public class PresentOrder + { + public static class Types + { + public class ECGiftInfo + { + public static class Types + { + public class GiftList + { + /// + /// 获取或设置礼品列表。 + /// + [Newtonsoft.Json.JsonProperty("gift")] + [System.Text.Json.Serialization.JsonPropertyName("gift")] + public GiftItem[] Items { get; set; } = default!; + } + + public class GiftItem + { + /// + /// 获取或设置礼物订单 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 PresentOrderId { get; set; } = default!; + + /// + /// 获取或设置礼物状态。 + /// + [Newtonsoft.Json.JsonProperty("giftstatus")] + [System.Text.Json.Serialization.JsonPropertyName("giftstatus")] + public int GiftStatus { get; set; } + + /// + /// 获取或设置祝福语。 + /// + [Newtonsoft.Json.JsonProperty("wishmessage")] + [System.Text.Json.Serialization.JsonPropertyName("wishmessage")] + public string? WishMessage { get; set; } + + /// + /// 获取或设置过期时间戳。 + /// + [Newtonsoft.Json.JsonProperty("expired_time")] + [System.Text.Json.Serialization.JsonPropertyName("expired_time")] + public long? ExpireTimestamp { get; set; } + } + } + + /// + /// 获取或设置礼品列表。 + /// + [Newtonsoft.Json.JsonProperty("gifts")] + [System.Text.Json.Serialization.JsonPropertyName("gifts")] + public Types.GiftList GiftList { get; set; } = default!; + + /// + /// 获取或设置用户视角类型。 + /// + [Newtonsoft.Json.JsonProperty("user_type")] + [System.Text.Json.Serialization.JsonPropertyName("user_type")] + public int UserType { get; set; } + + /// + /// 获取或设置祝福语。 + /// + [Newtonsoft.Json.JsonProperty("wishmessage")] + [System.Text.Json.Serialization.JsonPropertyName("wishmessage")] + public string? WishMessage { get; set; } + } + } + + /// + /// 获取或设置礼物信息。 + /// + [Newtonsoft.Json.JsonProperty("ecsgift")] + [System.Text.Json.Serialization.JsonPropertyName("ecsgift")] + public Types.ECGiftInfo ECGiftInfo { get; set; } = default!; + + /// + /// 获取或设置是否不能收礼。 + /// + [Newtonsoft.Json.JsonProperty("cannot_receive")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))] + [System.Text.Json.Serialization.JsonPropertyName("cannot_receive")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))] + public bool IsCannotReceive { get; set; } + + /// + /// 获取或设置不能收礼原因。 + /// + [Newtonsoft.Json.JsonProperty("cannot_receive_tips")] + [System.Text.Json.Serialization.JsonPropertyName("cannot_receive_tips")] + public string? CannotReceiveTips { get; set; } + } + } + + /// + /// 获取或设置礼物订单信息。 + /// + [Newtonsoft.Json.JsonProperty("present_order_info")] + [System.Text.Json.Serialization.JsonPropertyName("present_order_info")] + public Types.PresentOrder PresentOrder { get; set; } = default!; + } +} 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 new file mode 100644 index 00000000..7d1ded37 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderListGetRequest.cs @@ -0,0 +1,58 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/order/presentorderlist/get 接口的请求。 + /// + public class ChannelsECOrderPresentOrderListGetRequest : 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; } + + /// + /// 获取或设置创建订单时间范围。 + /// + [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/PresentOrder/ChannelsECOrderPresentOrderListGetResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderListGetResponse.cs new file mode 100644 index 00000000..a7a04cb1 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderListGetResponse.cs @@ -0,0 +1,43 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /channels/ec/order/presentorderlist/get 接口的响应。 + /// + public class ChannelsECOrderPresentOrderListGetResponse : 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")] + public string[] OrderIdList { 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/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOpen/ChannelsECOpenUploadRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOpen/ChannelsECOpenUploadRequest.json new file mode 100644 index 00000000..1a09f72f --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOpen/ChannelsECOpenUploadRequest.json @@ -0,0 +1,4 @@ +{ + "openid": "xxx", + "file_url": "xxx" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOpen/ChannelsECOpenUploadResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOpen/ChannelsECOpenUploadResponse.json new file mode 100644 index 00000000..ff0e2e13 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOpen/ChannelsECOpenUploadResponse.json @@ -0,0 +1,5 @@ +{ + "errcode": 0, + "errmsg": "成功", + "media_id": "892AERDPD2323" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderCreateRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderCreateRequest.json new file mode 100644 index 00000000..f0666eee --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderCreateRequest.json @@ -0,0 +1,8 @@ +{ + "activity_id": "22123", + "openid": "oDiTs6x9ccP19TfQH5OvKOWeXAeo", + "shop_appid": "wxxxxxxxxxxxxxxxxx", + "wishmessage": "祝福你", + "product_id": "10000239729501", + "sku_id": "3623160014" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderCreateResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderCreateResponse.json new file mode 100644 index 00000000..18472a1f --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderCreateResponse.json @@ -0,0 +1,5 @@ +{ + "errcode": 0, + "errmsg": "ok", + "present_order_id": "4226341196275658752" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderGetRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderGetRequest.json new file mode 100644 index 00000000..0278895e --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderGetRequest.json @@ -0,0 +1,4 @@ +{ + "present_order_id": "4226341196275658752", + "open_id": "OPENID" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderGetResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderGetResponse.json new file mode 100644 index 00000000..157ef254 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderGetResponse.json @@ -0,0 +1,18 @@ +{ + "errcode": 0, + "errmsg": "ok", + "present_order_info": { + "ecsgift": { + "gifts": { + "gift": [ + { + "order_id": 4226341196275658752, + "wishmessage": "祝福你", + "giftstatus": 0 + } + ] + }, + "user_type": 1 + } + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderListGetRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderListGetRequest.json new file mode 100644 index 00000000..37f69318 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderListGetRequest.json @@ -0,0 +1,10 @@ +{ + "shop_appid": "wxxxxxxxxxxxxxxxxx", + "open_id": "OPENID", + "create_time_range": { + "start_time": "1749007175", + "end_time": "1749008175" + }, + "page_size": 10, + "next_key": "THE_NEXT_KEY" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderListGetResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderListGetResponse.json new file mode 100644 index 00000000..a1804812 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/Channels/ECOrder/PresentOrder/ChannelsECOrderPresentOrderListGetResponse.json @@ -0,0 +1,10 @@ +{ + "errcode": 0, + "errmsg": "ok", + "present_order_list": [ + { + "present_order_id": "4226341196275658752", + "order_id": [ "3805363027490897920", "3805363027490897924" ] + } + ] +}