feat(wxapi): 新增小程序联盟小程序推广订单明细查询接口

This commit is contained in:
fudiwei 2022-12-01 23:15:30 +08:00
parent 60a395fb6e
commit 3116e90cea
8 changed files with 659 additions and 110 deletions

View File

@ -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
/// <summary>
/// <para>异步调用 [POST] /union/promoter/open_account/bind 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/union/access-guidelines/promoter/api/customized-userinfo.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.UnionPromoterOpenAccountBindResponse> 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<Models.UnionPromoterOpenAccountBindResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [GET] /union/promoter/open_account/get 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/union/access-guidelines/promoter/api/customized-userinfo.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.UnionPromoterOpenAccountGetResponse> 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<Models.UnionPromoterOpenAccountGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /union/promoter/open_account/add_customize_info 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/union/access-guidelines/promoter/api/customized-userinfo.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.UnionPromoterOpenAccountAddCustomizeInfoResponse> 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<Models.UnionPromoterOpenAccountAddCustomizeInfoResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /union/promoter/open_account/del_customize_info 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/union/access-guidelines/promoter/api/customized-userinfo.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.UnionPromoterOpenAccountDeleteCustomizeInfoResponse> 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<Models.UnionPromoterOpenAccountDeleteCustomizeInfoResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [GET] /union/promoter/open_account/get_customize_info 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/union/access-guidelines/promoter/api/customized-userinfo.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.UnionPromoterOpenAccountGetCustomizeInfoResponse> 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<Models.UnionPromoterOpenAccountGetCustomizeInfoResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
#region OpenProduct
/// <summary>
/// <para>异步调用 [GET] /union/promoter/open_product/list 接口。</para>
@ -536,108 +639,5 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
return await client.SendRequestWithJsonAsync<Models.UnionPromoterTargetApplyStatusResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
#region OpenAccount
/// <summary>
/// <para>异步调用 [POST] /union/promoter/open_account/bind 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/union/access-guidelines/promoter/api/customized-userinfo.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.UnionPromoterOpenAccountBindResponse> 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<Models.UnionPromoterOpenAccountBindResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [GET] /union/promoter/open_account/get 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/union/access-guidelines/promoter/api/customized-userinfo.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.UnionPromoterOpenAccountGetResponse> 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<Models.UnionPromoterOpenAccountGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /union/promoter/open_account/add_customize_info 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/union/access-guidelines/promoter/api/customized-userinfo.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.UnionPromoterOpenAccountAddCustomizeInfoResponse> 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<Models.UnionPromoterOpenAccountAddCustomizeInfoResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /union/promoter/open_account/del_customize_info 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/union/access-guidelines/promoter/api/customized-userinfo.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.UnionPromoterOpenAccountDeleteCustomizeInfoResponse> 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<Models.UnionPromoterOpenAccountDeleteCustomizeInfoResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [GET] /union/promoter/open_account/get_customize_info 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/union/access-guidelines/promoter/api/customized-userinfo.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.UnionPromoterOpenAccountGetCustomizeInfoResponse> 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<Models.UnionPromoterOpenAccountGetCustomizeInfoResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
}
}

View File

@ -70,5 +70,71 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
return await client.SendRequestWithJsonAsync<Models.UnionShopOpenDeleteCommissionResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
#region Order
/// <summary>
/// <para>异步调用 [GET] /union/shop/order/search_normal_order 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/union/custom_component/api/shop/order-info.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.UnionShopOrderSearchNormalOrderResponse> 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<Models.UnionShopOrderSearchNormalOrderResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
}
}

View File

@ -1,4 +1,4 @@
using System;
using System;
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
@ -278,7 +278,6 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("orderList")]
[System.Text.Json.Serialization.JsonPropertyName("orderList")]
public Types.Order[] OrderList { get; set; } = default!;
}
}

View File

@ -1,4 +1,4 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [GET] /union/promoter/order/search_normal_order 接口的响应。</para>
@ -286,7 +286,6 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("orderList")]
[System.Text.Json.Serialization.JsonPropertyName("orderList")]
public Types.Order[] OrderList { get; set; } = default!;
/// <summary>

View File

@ -1,4 +1,4 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [GET] /union/promoter/order/search 接口的响应。</para>
@ -17,7 +17,6 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("orderList")]
[System.Text.Json.Serialization.JsonPropertyName("orderList")]
public Types.Order[] OrderList { get; set; } = default!;
/// <summary>

View File

@ -0,0 +1,124 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [GET] /union/shop/order/search_normal_order 接口的请求。</para>
/// </summary>
public class UnionShopOrderSearchNormalOrderRequest : WechatApiRequest, IInferable<UnionShopOrderSearchNormalOrderRequest, UnionShopOrderSearchNormalOrderResponse>
{
/// <summary>
/// 获取或设置分页起始位置。
/// <para>默认值0</para>
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public int Offset { get; set; } = 0;
/// <summary>
/// 获取或设置分页每页数量。
/// <para>默认值10</para>
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public int Limit { get; set; } = 10;
/// <summary>
/// 获取或设置关键词。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string? Query { get; set; }
/// <summary>
/// 获取或设置推客 AppId。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string? AllianceAppId { get; set; }
/// <summary>
/// 获取或设置订单号。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public long? OrderId { get; set; }
/// <summary>
/// 获取或设置商家自定义订单号。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string? OutOrderId { get; set; }
/// <summary>
/// 获取或设置商家自定义订单号列表。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public IList<string>? OutOrderIdList { get; set; }
/// <summary>
/// 获取或设置微信支付交易单号。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string? TransactionId { get; set; }
/// <summary>
/// 获取或设置微信支付交易单号列表。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public IList<string>? TransactionIdList { get; set; }
/// <summary>
/// 获取或设置支付时间起始时间戳。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public long? StartPayTimestamp { get; set; }
/// <summary>
/// 获取或设置支付时间结束时间戳。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public long? EndPayTimestamp { get; set; }
/// <summary>
/// 获取或设置分佣状态。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string? CommissionStatus { get; set; }
/// <summary>
/// 获取或设置订单状态更新时间起始时间戳。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public long? StartStatusUpdateTimestamp { get; set; }
/// <summary>
/// 获取或设置订单状态更新时间结束时间戳。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public long? EndStatusUpdateTimestamp { get; set; }
/// <summary>
/// 获取或设置排序字段。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string? SortBy { get; set; }
/// <summary>
/// 获取或设置排序方式。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string? SortOrder { get; set; }
}
}

View File

@ -0,0 +1,288 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [GET] /union/shop/order/search_normal_order 接口的响应。</para>
/// </summary>
public class UnionShopOrderSearchNormalOrderResponse : WechatApiResponse
{
public static class Types
{
public class Order
{
public static class Types
{
public class OrderDetail
{
/// <summary>
/// 获取或设置订单 ID。
/// </summary>
[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; }
/// <summary>
/// 获取或设置商家自定义订单 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("outOrderId")]
[System.Text.Json.Serialization.JsonPropertyName("outOrderId")]
public string OutOrderId { get; set; } = default!;
/// <summary>
/// 获取或设置微信支付交易单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("transactionId")]
[System.Text.Json.Serialization.JsonPropertyName("transactionId")]
public string? TransactionId { get; set; }
/// <summary>
/// 获取或设置支付时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("payTime")]
[System.Text.Json.Serialization.JsonPropertyName("payTime")]
public long? PayTimestamp { get; set; }
/// <summary>
/// 获取或设置创建时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("createTime")]
[System.Text.Json.Serialization.JsonPropertyName("createTime")]
public long CreateTimestamp { get; set; }
/// <summary>
/// 获取或设置订单金额(单位:分)。
/// </summary>
[Newtonsoft.Json.JsonProperty("orderPrice")]
[System.Text.Json.Serialization.JsonPropertyName("orderPrice")]
public int OrderPrice { get; set; }
/// <summary>
/// 获取或设置运费金额(单位:分)。
/// </summary>
[Newtonsoft.Json.JsonProperty("freight")]
[System.Text.Json.Serialization.JsonPropertyName("freight")]
public int Freight { get; set; }
/// <summary>
/// 获取或设置优惠金额(单位:分)。
/// </summary>
[Newtonsoft.Json.JsonProperty("discountedPrice")]
[System.Text.Json.Serialization.JsonPropertyName("discountedPrice")]
public int DiscountedPrice { get; set; }
/// <summary>
/// 获取或设置附加金额(单位:分)。
/// </summary>
[Newtonsoft.Json.JsonProperty("additionalPrice")]
[System.Text.Json.Serialization.JsonPropertyName("additionalPrice")]
public int AdditionalPrice { get; set; }
/// <summary>
/// 获取或设置附加金额备注。
/// </summary>
[Newtonsoft.Json.JsonProperty("additionalRemarks")]
[System.Text.Json.Serialization.JsonPropertyName("additionalRemarks")]
public string? additionalRemarks { get; set; }
/// <summary>
/// 获取或设置订单状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("status")]
[System.Text.Json.Serialization.JsonPropertyName("status")]
public int Status { get; set; }
/// <summary>
/// 获取或设置订单状态最后更新时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("statusUpdateTime")]
[System.Text.Json.Serialization.JsonPropertyName("statusUpdateTime")]
public long? StatusUpdateTimestamp { get; set; }
/// <summary>
/// 获取或设置小程序页面路径。
/// </summary>
[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
{
/// <summary>
/// 获取或设置 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("appId")]
[System.Text.Json.Serialization.JsonPropertyName("appId")]
public string AppId { get; set; } = default!;
/// <summary>
/// 获取或设置昵称。
/// </summary>
[Newtonsoft.Json.JsonProperty("nickName")]
[System.Text.Json.Serialization.JsonPropertyName("nickName")]
public string Nickname { get; set; } = default!;
}
public class SKUAttribute
{
/// <summary>
/// 获取或设置属性的 Key。
/// </summary>
[Newtonsoft.Json.JsonProperty("attrKey")]
[System.Text.Json.Serialization.JsonPropertyName("attrKey")]
public string Key { get; set; } = string.Empty;
/// <summary>
/// 获取或设置属性的值。
/// </summary>
[Newtonsoft.Json.JsonProperty("attrValue")]
[System.Text.Json.Serialization.JsonPropertyName("attrValue")]
public string Value { get; set; } = string.Empty;
}
}
/// <summary>
/// 获取或设置商品 ID。
/// </summary>
[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; }
/// <summary>
/// 获取或设置商家自定义商品 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("outProductId")]
[System.Text.Json.Serialization.JsonPropertyName("outProductId")]
public string OutProductId { get; set; } = default!;
/// <summary>
/// 获取或设置 SKU ID。
/// </summary>
[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; }
/// <summary>
/// 获取或设置商家自定义 SKU ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("outSkuId")]
[System.Text.Json.Serialization.JsonPropertyName("outSkuId")]
public string OutSKUId { get; set; } = default!;
/// <summary>
/// 获取或设置商品标题。
/// </summary>
[Newtonsoft.Json.JsonProperty("title")]
[System.Text.Json.Serialization.JsonPropertyName("title")]
public string Title { get; set; } = default!;
/// <summary>
/// 获取或设置商品头图 URL。
/// </summary>
[Newtonsoft.Json.JsonProperty("headImg")]
[System.Text.Json.Serialization.JsonPropertyName("headImg")]
public string HeadImageUrl { get; set; } = default!;
/// <summary>
/// 获取或设置商品原价(单位:分)。
/// </summary>
[Newtonsoft.Json.JsonProperty("salePrice")]
[System.Text.Json.Serialization.JsonPropertyName("salePrice")]
public int SalePrice { get; set; }
/// <summary>
/// 获取或设置商品现价(单位:分)。
/// </summary>
[Newtonsoft.Json.JsonProperty("realPrice")]
[System.Text.Json.Serialization.JsonPropertyName("realPrice")]
public int RealPrice { get; set; }
/// <summary>
/// 获取或设置 SKU 属性列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("skuAttrs")]
[System.Text.Json.Serialization.JsonPropertyName("skuAttrs")]
public Types.SKUAttribute[]? SKUAttributeList { get; set; }
/// <summary>
/// 获取或设置商品数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("productCnt")]
[System.Text.Json.Serialization.JsonPropertyName("productCnt")]
public int ProductCount { get; set; }
/// <summary>
/// 获取或设置佣金比例(单位:万分之一)。
/// </summary>
[Newtonsoft.Json.JsonProperty("ratio")]
[System.Text.Json.Serialization.JsonPropertyName("ratio")]
public int CommissionRatio { get; set; }
/// <summary>
/// 获取或设置佣金金额(单位:分)。
/// </summary>
[Newtonsoft.Json.JsonProperty("commissionValue")]
[System.Text.Json.Serialization.JsonPropertyName("commissionValue")]
public int CommissionValue { get; set; }
/// <summary>
/// 获取或设置分佣状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("commissionStatus")]
[System.Text.Json.Serialization.JsonPropertyName("commissionStatus")]
public string CommissionStatus { get; set; } = default!;
/// <summary>
/// 获取或设置分佣状态最后更新时间戳。
/// </summary>
[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; }
/// <summary>
/// 获取或设置推广员信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("promoterInfo")]
[System.Text.Json.Serialization.JsonPropertyName("promoterInfo")]
public Types.Promoter? Promoter { get; set; }
}
}
/// <summary>
/// 获取或设置订单详情。
/// </summary>
[Newtonsoft.Json.JsonProperty("orderInfo")]
[System.Text.Json.Serialization.JsonPropertyName("orderInfo")]
public Types.OrderDetail OrderDetail { get; set; }= default!;
/// <summary>
/// 获取或设置商品列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("productList")]
[System.Text.Json.Serialization.JsonPropertyName("productList")]
public Types.Product[] ProductList { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置订单列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("orderList")]
[System.Text.Json.Serialization.JsonPropertyName("orderList")]
public Types.Order[] OrderList { get; set; } = default!;
/// <summary>
/// 获取或设置订单总数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("total")]
[System.Text.Json.Serialization.JsonPropertyName("total")]
public int Total { get; set; }
}
}

View File

@ -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": "旗舰店"
}
}
]
}
]
}