diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteUnionPromoterExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteUnionPromoterExtensions.cs
index 7a690b34..a2a6c5f4 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteUnionPromoterExtensions.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteUnionPromoterExtensions.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
@@ -280,6 +280,109 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
}
#endregion
+ #region OpenAccount
+ ///
+ /// 异步调用 [POST] /union/promoter/open_account/bind 接口。
+ /// REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/union/access-guidelines/promoter/api/customized-userinfo.html
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteUnionPromoterOpenAccountBindAsync(this WechatApiClient client, Models.UnionPromoterOpenAccountBindRequest 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, "union", "promoter", "open_account", "bind")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [GET] /union/promoter/open_account/get 接口。
+ /// REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/union/access-guidelines/promoter/api/customized-userinfo.html
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteUnionPromoterOpenAccountGetAsync(this WechatApiClient client, Models.UnionPromoterOpenAccountGetRequest 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.Get, "union", "promoter", "open_account", "get")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [POST] /union/promoter/open_account/add_customize_info 接口。
+ /// REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/union/access-guidelines/promoter/api/customized-userinfo.html
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteUnionPromoterOpenAccountAddCustomizeInfoAsync(this WechatApiClient client, Models.UnionPromoterOpenAccountAddCustomizeInfoRequest 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, "union", "promoter", "open_account", "add_customize_info")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [POST] /union/promoter/open_account/del_customize_info 接口。
+ /// REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/union/access-guidelines/promoter/api/customized-userinfo.html
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteUnionPromoterOpenAccountDeleteCustomizeInfoAsync(this WechatApiClient client, Models.UnionPromoterOpenAccountDeleteCustomizeInfoRequest 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, "union", "promoter", "open_account", "del_customize_info")
+ .SetQueryParam("access_token", request.AccessToken);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+
+ ///
+ /// 异步调用 [GET] /union/promoter/open_account/get_customize_info 接口。
+ /// REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/union/access-guidelines/promoter/api/customized-userinfo.html
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteUnionPromoterOpenAccountGetCustomizeInfoAsync(this WechatApiClient client, Models.UnionPromoterOpenAccountGetCustomizeInfoRequest 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.Get, "union", "promoter", "open_account", "get_customize_info")
+ .SetQueryParam("access_token", request.AccessToken)
+ .SetQueryParam("unionid", request.UnionId);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+ #endregion
+
#region OpenProduct
///
/// 异步调用 [GET] /union/promoter/open_product/list 接口。
@@ -536,108 +639,5 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
-
- #region OpenAccount
- ///
- /// 异步调用 [POST] /union/promoter/open_account/bind 接口。
- /// REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/union/access-guidelines/promoter/api/customized-userinfo.html
- ///
- ///
- ///
- ///
- ///
- public static async Task ExecuteUnionPromoterOpenAccountBindAsync(this WechatApiClient client, Models.UnionPromoterOpenAccountBindRequest 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, "union", "promoter", "open_account", "bind")
- .SetQueryParam("access_token", request.AccessToken);
-
- return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
- }
-
- ///
- /// 异步调用 [GET] /union/promoter/open_account/get 接口。
- /// REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/union/access-guidelines/promoter/api/customized-userinfo.html
- ///
- ///
- ///
- ///
- ///
- public static async Task ExecuteUnionPromoterOpenAccountGetAsync(this WechatApiClient client, Models.UnionPromoterOpenAccountGetRequest 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.Get, "union", "promoter", "open_account", "get")
- .SetQueryParam("access_token", request.AccessToken);
-
- return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
- }
-
- ///
- /// 异步调用 [POST] /union/promoter/open_account/add_customize_info 接口。
- /// REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/union/access-guidelines/promoter/api/customized-userinfo.html
- ///
- ///
- ///
- ///
- ///
- public static async Task ExecuteUnionPromoterOpenAccountAddCustomizeInfoAsync(this WechatApiClient client, Models.UnionPromoterOpenAccountAddCustomizeInfoRequest 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, "union", "promoter", "open_account", "add_customize_info")
- .SetQueryParam("access_token", request.AccessToken);
-
- return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
- }
-
- ///
- /// 异步调用 [POST] /union/promoter/open_account/del_customize_info 接口。
- /// REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/union/access-guidelines/promoter/api/customized-userinfo.html
- ///
- ///
- ///
- ///
- ///
- public static async Task ExecuteUnionPromoterOpenAccountDeleteCustomizeInfoAsync(this WechatApiClient client, Models.UnionPromoterOpenAccountDeleteCustomizeInfoRequest 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, "union", "promoter", "open_account", "del_customize_info")
- .SetQueryParam("access_token", request.AccessToken);
-
- return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
- }
-
- ///
- /// 异步调用 [GET] /union/promoter/open_account/get_customize_info 接口。
- /// REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/union/access-guidelines/promoter/api/customized-userinfo.html
- ///
- ///
- ///
- ///
- ///
- public static async Task ExecuteUnionPromoterOpenAccountGetCustomizeInfoAsync(this WechatApiClient client, Models.UnionPromoterOpenAccountGetCustomizeInfoRequest 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.Get, "union", "promoter", "open_account", "get_customize_info")
- .SetQueryParam("access_token", request.AccessToken)
- .SetQueryParam("unionid", request.UnionId);
-
- return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
- }
- #endregion
}
}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteUnionShopExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteUnionShopExtensions.cs
index c3652d30..e664b263 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteUnionShopExtensions.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteUnionShopExtensions.cs
@@ -70,5 +70,71 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
+
+ #region Order
+ ///
+ /// 异步调用 [GET] /union/shop/order/search_normal_order 接口。
+ /// REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/union/custom_component/api/shop/order-info.html
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteUnionShopOrderSearchNormalOrderAsync(this WechatApiClient client, Models.UnionShopOrderSearchNormalOrderRequest 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.Get, "union", "shop", "order", "search_normal_order")
+ .SetQueryParam("access_token", request.AccessToken)
+ .SetQueryParam("offset", request.Offset)
+ .SetQueryParam("limit", request.Limit);
+
+ if (request.Query != null)
+ flurlReq.SetQueryParam("query", request.Query);
+
+ if (request.AllianceAppId != null)
+ flurlReq.SetQueryParam("allianceAppid", request.AllianceAppId);
+
+ if (request.OrderId != null)
+ flurlReq.SetQueryParam("orderId", request.OrderId.Value);
+
+ if (request.OutOrderId != null)
+ flurlReq.SetQueryParam("outOrderId", request.OutOrderId);
+
+ if (request.OutOrderIdList != null)
+ flurlReq.SetQueryParam("outOrderIdList", string.Join(",", request.OutOrderId));
+
+ if (request.TransactionId != null)
+ flurlReq.SetQueryParam("tradeNo", request.TransactionId);
+
+ if (request.TransactionIdList != null)
+ flurlReq.SetQueryParam("transactionIdList", string.Join(",", request.TransactionIdList));
+
+ if (request.StartPayTimestamp != null)
+ flurlReq.SetQueryParam("startPayTime", request.StartPayTimestamp.Value);
+
+ if (request.EndPayTimestamp != null)
+ flurlReq.SetQueryParam("endPayTime", request.EndPayTimestamp.Value);
+
+ if (request.CommissionStatus != null)
+ flurlReq.SetQueryParam("commissionStatus", request.CommissionStatus);
+
+ if (request.StartStatusUpdateTimestamp != null)
+ flurlReq.SetQueryParam("startStatusUpdateTime", request.StartStatusUpdateTimestamp.Value);
+
+ if (request.EndStatusUpdateTimestamp != null)
+ flurlReq.SetQueryParam("endStatusUpdateTime", request.EndStatusUpdateTimestamp.Value);
+
+ if (request.SortBy != null)
+ flurlReq.SetQueryParam("sortBy", request.SortBy);
+
+ if (request.SortOrder != null)
+ flurlReq.SetQueryParam("sortOrder", request.SortOrder);
+
+ return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken);
+ }
+ #endregion
}
}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/UnionPromoter/Order/UnionPromoterOrderInfoResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/UnionPromoter/Order/UnionPromoterOrderInfoResponse.cs
index 1222dc11..ae22a2f4 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/UnionPromoter/Order/UnionPromoterOrderInfoResponse.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/UnionPromoter/Order/UnionPromoterOrderInfoResponse.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
@@ -278,7 +278,6 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
///
[Newtonsoft.Json.JsonProperty("orderList")]
[System.Text.Json.Serialization.JsonPropertyName("orderList")]
-
public Types.Order[] OrderList { get; set; } = default!;
}
}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/UnionPromoter/Order/UnionPromoterOrderSearchNormalOrderResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/UnionPromoter/Order/UnionPromoterOrderSearchNormalOrderResponse.cs
index 73204310..ac69307f 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/UnionPromoter/Order/UnionPromoterOrderSearchNormalOrderResponse.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/UnionPromoter/Order/UnionPromoterOrderSearchNormalOrderResponse.cs
@@ -1,4 +1,4 @@
-namespace SKIT.FlurlHttpClient.Wechat.Api.Models
+namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
///
/// 表示 [GET] /union/promoter/order/search_normal_order 接口的响应。
@@ -286,7 +286,6 @@
///
[Newtonsoft.Json.JsonProperty("orderList")]
[System.Text.Json.Serialization.JsonPropertyName("orderList")]
-
public Types.Order[] OrderList { get; set; } = default!;
///
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/UnionPromoter/Order/UnionPromoterOrderSearchResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/UnionPromoter/Order/UnionPromoterOrderSearchResponse.cs
index 9428ec2b..d441d736 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/UnionPromoter/Order/UnionPromoterOrderSearchResponse.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/UnionPromoter/Order/UnionPromoterOrderSearchResponse.cs
@@ -1,4 +1,4 @@
-namespace SKIT.FlurlHttpClient.Wechat.Api.Models
+namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
///
/// 表示 [GET] /union/promoter/order/search 接口的响应。
@@ -17,7 +17,6 @@
///
[Newtonsoft.Json.JsonProperty("orderList")]
[System.Text.Json.Serialization.JsonPropertyName("orderList")]
-
public Types.Order[] OrderList { get; set; } = default!;
///
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/UnionShop/Order/UnionShopOrderSearchNormalOrderRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/UnionShop/Order/UnionShopOrderSearchNormalOrderRequest.cs
new file mode 100644
index 00000000..1dda7630
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/UnionShop/Order/UnionShopOrderSearchNormalOrderRequest.cs
@@ -0,0 +1,124 @@
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.Api.Models
+{
+ ///
+ /// 表示 [GET] /union/shop/order/search_normal_order 接口的请求。
+ ///
+ public class UnionShopOrderSearchNormalOrderRequest : WechatApiRequest, IInferable
+ {
+ ///
+ /// 获取或设置分页起始位置。
+ /// 默认值:0
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public int Offset { get; set; } = 0;
+
+ ///
+ /// 获取或设置分页每页数量。
+ /// 默认值:10
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public int Limit { get; set; } = 10;
+
+ ///
+ /// 获取或设置关键词。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public string? Query { get; set; }
+
+ ///
+ /// 获取或设置推客 AppId。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public string? AllianceAppId { get; set; }
+
+ ///
+ /// 获取或设置订单号。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public long? OrderId { get; set; }
+
+ ///
+ /// 获取或设置商家自定义订单号。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public string? OutOrderId { get; set; }
+
+ ///
+ /// 获取或设置商家自定义订单号列表。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public IList? OutOrderIdList { get; set; }
+
+ ///
+ /// 获取或设置微信支付交易单号。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public string? TransactionId { get; set; }
+
+ ///
+ /// 获取或设置微信支付交易单号列表。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public IList? TransactionIdList { get; set; }
+
+ ///
+ /// 获取或设置支付时间起始时间戳。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public long? StartPayTimestamp { get; set; }
+
+ ///
+ /// 获取或设置支付时间结束时间戳。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public long? EndPayTimestamp { get; set; }
+
+ ///
+ /// 获取或设置分佣状态。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public string? CommissionStatus { get; set; }
+
+ ///
+ /// 获取或设置订单状态更新时间起始时间戳。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public long? StartStatusUpdateTimestamp { get; set; }
+
+ ///
+ /// 获取或设置订单状态更新时间结束时间戳。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public long? EndStatusUpdateTimestamp { get; set; }
+
+ ///
+ /// 获取或设置排序字段。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public string? SortBy { get; set; }
+
+ ///
+ /// 获取或设置排序方式。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public string? SortOrder { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/UnionShop/Order/UnionShopOrderSearchNormalOrderResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/UnionShop/Order/UnionShopOrderSearchNormalOrderResponse.cs
new file mode 100644
index 00000000..8d0314eb
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/UnionShop/Order/UnionShopOrderSearchNormalOrderResponse.cs
@@ -0,0 +1,288 @@
+namespace SKIT.FlurlHttpClient.Wechat.Api.Models
+{
+ ///
+ /// 表示 [GET] /union/shop/order/search_normal_order 接口的响应。
+ ///
+ public class UnionShopOrderSearchNormalOrderResponse : WechatApiResponse
+ {
+ public static class Types
+ {
+ public class Order
+ {
+ public static class Types
+ {
+ public class OrderDetail
+ {
+ ///
+ /// 获取或设置订单 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("orderId")]
+ [System.Text.Json.Serialization.JsonPropertyName("orderId")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long OrderId { get; set; }
+
+ ///
+ /// 获取或设置商家自定义订单 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("outOrderId")]
+ [System.Text.Json.Serialization.JsonPropertyName("outOrderId")]
+ public string OutOrderId { get; set; } = default!;
+
+ ///
+ /// 获取或设置微信支付交易单号。
+ ///
+ [Newtonsoft.Json.JsonProperty("transactionId")]
+ [System.Text.Json.Serialization.JsonPropertyName("transactionId")]
+ public string? TransactionId { get; set; }
+
+ ///
+ /// 获取或设置支付时间戳。
+ ///
+ [Newtonsoft.Json.JsonProperty("payTime")]
+ [System.Text.Json.Serialization.JsonPropertyName("payTime")]
+ public long? PayTimestamp { get; set; }
+
+ ///
+ /// 获取或设置创建时间戳。
+ ///
+ [Newtonsoft.Json.JsonProperty("createTime")]
+ [System.Text.Json.Serialization.JsonPropertyName("createTime")]
+ public long CreateTimestamp { get; set; }
+
+ ///
+ /// 获取或设置订单金额(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("orderPrice")]
+ [System.Text.Json.Serialization.JsonPropertyName("orderPrice")]
+ public int OrderPrice { get; set; }
+
+ ///
+ /// 获取或设置运费金额(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("freight")]
+ [System.Text.Json.Serialization.JsonPropertyName("freight")]
+ public int Freight { get; set; }
+
+ ///
+ /// 获取或设置优惠金额(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("discountedPrice")]
+ [System.Text.Json.Serialization.JsonPropertyName("discountedPrice")]
+ public int DiscountedPrice { get; set; }
+
+ ///
+ /// 获取或设置附加金额(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("additionalPrice")]
+ [System.Text.Json.Serialization.JsonPropertyName("additionalPrice")]
+ public int AdditionalPrice { get; set; }
+
+ ///
+ /// 获取或设置附加金额备注。
+ ///
+ [Newtonsoft.Json.JsonProperty("additionalRemarks")]
+ [System.Text.Json.Serialization.JsonPropertyName("additionalRemarks")]
+ public string? additionalRemarks { get; set; }
+
+ ///
+ /// 获取或设置订单状态。
+ ///
+ [Newtonsoft.Json.JsonProperty("status")]
+ [System.Text.Json.Serialization.JsonPropertyName("status")]
+ public int Status { get; set; }
+
+ ///
+ /// 获取或设置订单状态最后更新时间戳。
+ ///
+ [Newtonsoft.Json.JsonProperty("statusUpdateTime")]
+ [System.Text.Json.Serialization.JsonPropertyName("statusUpdateTime")]
+ public long? StatusUpdateTimestamp { get; set; }
+
+ ///
+ /// 获取或设置小程序页面路径。
+ ///
+ [Newtonsoft.Json.JsonProperty("path")]
+ [System.Text.Json.Serialization.JsonPropertyName("path")]
+ public string? PagePath { get; set; }
+ }
+
+ public class Product
+ {
+ public static class Types
+ {
+ public class Promoter
+ {
+ ///
+ /// 获取或设置 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!;
+ }
+
+ public class SKUAttribute
+ {
+ ///
+ /// 获取或设置属性的 Key。
+ ///
+ [Newtonsoft.Json.JsonProperty("attrKey")]
+ [System.Text.Json.Serialization.JsonPropertyName("attrKey")]
+ public string Key { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置属性的值。
+ ///
+ [Newtonsoft.Json.JsonProperty("attrValue")]
+ [System.Text.Json.Serialization.JsonPropertyName("attrValue")]
+ public string Value { get; set; } = string.Empty;
+ }
+ }
+
+ ///
+ /// 获取或设置商品 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("productId")]
+ [System.Text.Json.Serialization.JsonPropertyName("productId")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long ProductId { get; set; }
+
+ ///
+ /// 获取或设置商家自定义商品 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("outProductId")]
+ [System.Text.Json.Serialization.JsonPropertyName("outProductId")]
+ public string OutProductId { get; set; } = default!;
+
+ ///
+ /// 获取或设置 SKU ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("skuId")]
+ [System.Text.Json.Serialization.JsonPropertyName("skuId")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long SKUId { get; set; }
+
+ ///
+ /// 获取或设置商家自定义 SKU ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("outSkuId")]
+ [System.Text.Json.Serialization.JsonPropertyName("outSkuId")]
+ public string OutSKUId { get; set; } = default!;
+
+ ///
+ /// 获取或设置商品标题。
+ ///
+ [Newtonsoft.Json.JsonProperty("title")]
+ [System.Text.Json.Serialization.JsonPropertyName("title")]
+ public string Title { get; set; } = default!;
+
+ ///
+ /// 获取或设置商品头图 URL。
+ ///
+ [Newtonsoft.Json.JsonProperty("headImg")]
+ [System.Text.Json.Serialization.JsonPropertyName("headImg")]
+ public string HeadImageUrl { get; set; } = default!;
+
+ ///
+ /// 获取或设置商品原价(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("salePrice")]
+ [System.Text.Json.Serialization.JsonPropertyName("salePrice")]
+ public int SalePrice { get; set; }
+
+ ///
+ /// 获取或设置商品现价(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("realPrice")]
+ [System.Text.Json.Serialization.JsonPropertyName("realPrice")]
+ public int RealPrice { get; set; }
+
+ ///
+ /// 获取或设置 SKU 属性列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("skuAttrs")]
+ [System.Text.Json.Serialization.JsonPropertyName("skuAttrs")]
+ public Types.SKUAttribute[]? SKUAttributeList { get; set; }
+
+ ///
+ /// 获取或设置商品数量。
+ ///
+ [Newtonsoft.Json.JsonProperty("productCnt")]
+ [System.Text.Json.Serialization.JsonPropertyName("productCnt")]
+ public int ProductCount { get; set; }
+
+ ///
+ /// 获取或设置佣金比例(单位:万分之一)。
+ ///
+ [Newtonsoft.Json.JsonProperty("ratio")]
+ [System.Text.Json.Serialization.JsonPropertyName("ratio")]
+ public int CommissionRatio { get; set; }
+
+ ///
+ /// 获取或设置佣金金额(单位:分)。
+ ///
+ [Newtonsoft.Json.JsonProperty("commissionValue")]
+ [System.Text.Json.Serialization.JsonPropertyName("commissionValue")]
+ public int CommissionValue { get; set; }
+
+ ///
+ /// 获取或设置分佣状态。
+ ///
+ [Newtonsoft.Json.JsonProperty("commissionStatus")]
+ [System.Text.Json.Serialization.JsonPropertyName("commissionStatus")]
+ public string CommissionStatus { get; set; } = default!;
+
+ ///
+ /// 获取或设置分佣状态最后更新时间戳。
+ ///
+ [Newtonsoft.Json.JsonProperty("commissionStatusUpdateTime")]
+ [System.Text.Json.Serialization.JsonPropertyName("commissionStatusUpdateTime")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long? CommissionStatusUpdateTimestamp { get; set; }
+
+ ///
+ /// 获取或设置推广员信息。
+ ///
+ [Newtonsoft.Json.JsonProperty("promoterInfo")]
+ [System.Text.Json.Serialization.JsonPropertyName("promoterInfo")]
+ public Types.Promoter? Promoter { get; set; }
+ }
+ }
+
+ ///
+ /// 获取或设置订单详情。
+ ///
+ [Newtonsoft.Json.JsonProperty("orderInfo")]
+ [System.Text.Json.Serialization.JsonPropertyName("orderInfo")]
+ public Types.OrderDetail OrderDetail { get; set; }= default!;
+
+ ///
+ /// 获取或设置商品列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("productList")]
+ [System.Text.Json.Serialization.JsonPropertyName("productList")]
+ public Types.Product[] ProductList { get; set; } = default!;
+ }
+ }
+
+ ///
+ /// 获取或设置订单列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("orderList")]
+ [System.Text.Json.Serialization.JsonPropertyName("orderList")]
+ public Types.Order[] OrderList { get; set; } = default!;
+
+ ///
+ /// 获取或设置订单总数量。
+ ///
+ [Newtonsoft.Json.JsonProperty("total")]
+ [System.Text.Json.Serialization.JsonPropertyName("total")]
+ public int Total { get; set; }
+ }
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/UnionShop/Order/UnionShopOrderSearchNormalOrderResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/UnionShop/Order/UnionShopOrderSearchNormalOrderResponse.json
new file mode 100644
index 00000000..8600eb74
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/UnionShop/Order/UnionShopOrderSearchNormalOrderResponse.json
@@ -0,0 +1,74 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "total": 1,
+ "orderList": [
+ {
+ "orderInfo": {
+ "orderId": "2020966986280665096",
+ "outOrderId": "1000010000100301",
+ "transactionId": "893921061043139",
+ "payTime": 1630051304,
+ "orderPrice": 40,
+ "freight": 10,
+ "discountedPrice": 0,
+ "additionalPrice": 0,
+ "additionalRemarks": "",
+ "status": 200,
+ "createTime": 1630051290,
+ "statusUpdateTime": 0,
+ "path": "/pages/commercePlace/index"
+ },
+ "productList": [
+ {
+ "title": "219 男女同款鞋",
+ "headImg": "https://store.mp.video.tencent-cloud.com/161/20304/snscosdownload/SH/reserved/60e32624000cf9e50000000023e74f09000000a000004f50?imageView2/3/w/544",
+ "salePrice": 10,
+ "realPrice": 10,
+ "productCnt": 2,
+ "productId": "411628841",
+ "outProductId": "1625138165000",
+ "outSkuId": "411628841",
+ "skuAttrs": [],
+ "ratio": 8800,
+ "commissionValue": 17,
+ "commissionStatus": "COMMISSION_SHOP_FINISH_DEDUCTION",
+ "commissionStatusUpdateTime": 1630932191,
+ "promoterInfo": {
+ "appId": "wx1cea54f8a2094",
+ "nickName": "旗舰店"
+ }
+ },
+ {
+ "title": "219 男女同款鞋",
+ "headImg": "https://store.mp.video.tencent-cloud.com/161/20304/snscosdownload/SH/reserved/60e32624000cf9e50000000023e74f09000000a000004f50?imageView2/3/w/544",
+ "salePrice": 1,
+ "realPrice": 10,
+ "productCnt": 2,
+ "productId": "411622998",
+ "outProductId": "1625194252000",
+ "skuId": "350263118",
+ "outSkuId": "1625194251990",
+ "skuAttrs": [
+ {
+ "attrKey": "选择颜色",
+ "attrValue": "红蓝主机"
+ },
+ {
+ "attrKey": "选择套装",
+ "attrValue": "主机+保护套"
+ }
+ ],
+ "ratio": 9000,
+ "commissionValue": 0,
+ "commissionStatus": "COMMISSION_PAY_CANCEL",
+ "commissionStatusUpdateTime": 1630058665,
+ "promoterInfo": {
+ "appId": "wx1cea54f8a2094",
+ "nickName": "旗舰店"
+ }
+ }
+ ]
+ }
+ ]
+}