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

This commit is contained in:
Fu Diwei 2022-06-19 22:05:16 +08:00
parent f9b7e0a765
commit 870f5b339b
4 changed files with 527 additions and 0 deletions

View File

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

View File

@ -0,0 +1,117 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [GET] /union/promoter/order/search_normal_order 接口的请求。</para>
/// </summary>
public class UnionPromoterOrderSearchNormalOrderRequest : WechatApiRequest, IInferable<UnionPromoterOrderSearchNormalOrderRequest, UnionPromoterOrderSearchNormalOrderResponse>
{
/// <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>
/// 获取或设置订单号。
/// </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,299 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [GET] /union/promoter/order/search_normal_order 接口的响应。</para>
/// </summary>
public class UnionPromoterOrderSearchNormalOrderResponse : WechatApiResponse
{
public static class Types
{
public class Order
{
public static class Types
{
public class OrderDetail
{
public static class Types
{
public class Shop
{
/// <summary>
/// 获取或设置小程序昵称。
/// </summary>
[Newtonsoft.Json.JsonProperty("nickname")]
[System.Text.Json.Serialization.JsonPropertyName("nickname")]
public string Nickname { get; set; } = default!;
/// <summary>
/// 获取或设置小程序 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("appid")]
[System.Text.Json.Serialization.JsonPropertyName("appid")]
public string AppId { get; set; } = default!;
/// <summary>
/// 获取或设置小程序原始 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("username")]
[System.Text.Json.Serialization.JsonPropertyName("username")]
public string Username { get; set; } = default!;
}
}
/// <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("shopInfo")]
[System.Text.Json.Serialization.JsonPropertyName("shopInfo")]
public Types.Shop Shop { get; set; } = default!;
/// <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 Promotion
{
/// <summary>
/// 获取或设置推广位 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("promotionSourcePid")]
[System.Text.Json.Serialization.JsonPropertyName("promotionSourcePid")]
public string PromotionId { get; set; } = default!;
/// <summary>
/// 获取或设置推广位 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("promotionSourceName")]
[System.Text.Json.Serialization.JsonPropertyName("promotionSourceName")]
public string SourceName { get; set; } = default!;
}
}
/// <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>
/// 获取或设置商品数量。
/// </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("promotionInfo")]
[System.Text.Json.Serialization.JsonPropertyName("promotionInfo")]
public Types.Promotion? Promotion { 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,50 @@
{
"errcode": 0,
"errmsg": "ok",
"total": 1,
"orderList": [
{
"orderInfo": {
"orderId": "2010887254486876164",
"outOrderId": "1000010000100200",
"transactionId": "893921061043139",
"payTime": 1629450566,
"orderPrice": 28,
"freight": 0,
"discountedPrice": 0,
"additionalPrice": 0,
"additionalRemarks": "",
"status": 20,
"shopInfo": {
"nickname": "测试小程序",
"username": "gh_6e10896a3",
"appid": "wx539e0b4872f1"
},
"createTime": 1629450491,
"statusUpdateTime": null,
"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": 9,
"productCnt": 2,
"productId": "411622998",
"outProductId": "1625194252000",
"skuId": "350263118",
"outSkuId": "1625194251990",
"ratio": 9000,
"commissionValue": 14,
"commissionStatus": "COMMISSION_SHOP_WAIT_DEDUCTION",
"commissionStatusUpdateTime": 1629450992,
"promotionInfo": {
"promotionSourcePid": "o1HGp5LzEFLWDuQpPcpahurEZ2m0_12662",
"promotionSourceName": "这里"
}
}
]
}
]
}