feat(wxapi): 新增自定义交易组件按推广员或分享者获取订单相关接口

This commit is contained in:
Fu Diwei
2021-09-18 14:33:31 +08:00
parent 07c3d4d5b9
commit 877c998e48
10 changed files with 427 additions and 0 deletions

View File

@@ -485,6 +485,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
/// <summary>
/// <para>异步调用 [POST] /shop/scene/check 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/API/order/check_scene.html </para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/ministore/minishopopencomponent2/API/order/check_scene.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -505,6 +506,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
/// <summary>
/// <para>异步调用 [POST] /shop/order/add 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/API/order/add_order.html </para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/ministore/minishopopencomponent2/API/order/add_order.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -525,6 +527,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
/// <summary>
/// <para>异步调用 [POST] /shop/order/pay 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/API/order/pay_order.html </para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/ministore/minishopopencomponent2/API/order/pay_order.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -545,6 +548,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
/// <summary>
/// <para>异步调用 [POST] /shop/order/get 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/framework/ministore/minishopopencomponent2/API/order/get_order.html </para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/ministore/minishopopencomponent2/API/order/get_order.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
@@ -561,6 +565,46 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
return await client.SendRequestWithJsonAsync<Models.ShopOrderGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /shop/order/get_list_by_finder 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/ministore/minishopopencomponent2/API/order/get_order_list_by_finder.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ShopOrderGetListByFinderResponse> ExecuteShopOrderGetListByFinderAsync(this WechatApiClient client, Models.ShopOrderGetListByFinderRequest 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, "shop", "order", "get_list_by_finder")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.ShopOrderGetListByFinderResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /shop/order/get_list_by_sharer 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/ministore/minishopopencomponent2/API/order/get_order_list_by_sharer.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ShopOrderGetListBySharerResponse> ExecuteShopOrderGetListBySharerAsync(this WechatApiClient client, Models.ShopOrderGetListBySharerRequest 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, "shop", "order", "get_list_by_sharer")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.ShopOrderGetListBySharerResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
#region Delivery

View File

@@ -0,0 +1,57 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /shop/order/get_list_by_finder 接口的请求。</para>
/// </summary>
public class ShopOrderGetListByFinderRequest : WechatApiRequest
{
/// <summary>
/// 获取或设置支付时间的开始时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("start_pay_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularNullableDateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("start_pay_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularNullableDateTimeOffsetConverter))]
public DateTimeOffset? StartPayTime { get; set; }
/// <summary>
/// 获取或设置支付时间的结束时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("end_pay_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularNullableDateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("end_pay_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularNullableDateTimeOffsetConverter))]
public DateTimeOffset? EndPayTime { get; set; }
/// <summary>
/// 获取或设置推广员用户名。
/// </summary>
[Newtonsoft.Json.JsonProperty("finder_username")]
[System.Text.Json.Serialization.JsonPropertyName("finder_username")]
public string? FinderUsername { get; set; }
/// <summary>
/// 获取或设置推广员备注。
/// </summary>
[Newtonsoft.Json.JsonProperty("finder_remark")]
[System.Text.Json.Serialization.JsonPropertyName("finder_remark")]
public string? FinderRemark { get; set; }
/// <summary>
/// 获取或设置分页页数(从 1 开始)。
/// </summary>
[Newtonsoft.Json.JsonProperty("page")]
[System.Text.Json.Serialization.JsonPropertyName("page")]
public int Page { get; set; } = 1;
/// <summary>
/// 获取或设置分页每页数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("page_size")]
[System.Text.Json.Serialization.JsonPropertyName("page_size")]
public int Limit { get; set; } = 10;
}
}

View File

@@ -0,0 +1,32 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /shop/order/get_list_by_finder 接口的响应。</para>
/// </summary>
public class ShopOrderGetListByFinderResponse : WechatApiResponse
{
public static class Types
{
public class Order : ShopOrderGetResponse.Types.Order
{
}
}
/// <summary>
/// 获取或设置订单列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("orders")]
[System.Text.Json.Serialization.JsonPropertyName("orders")]
public Types.Order[] OrderList { get; set; } = default!;
/// <summary>
/// 获取或设置订单总数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("total_num")]
[System.Text.Json.Serialization.JsonPropertyName("total_num")]
public int TotalCount { get; set; }
}
}

View File

@@ -0,0 +1,50 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /shop/order/get_list_by_sharer 接口的请求。</para>
/// </summary>
public class ShopOrderGetListBySharerRequest : WechatApiRequest
{
/// <summary>
/// 获取或设置支付时间的开始时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("start_pay_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularNullableDateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("start_pay_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularNullableDateTimeOffsetConverter))]
public DateTimeOffset? StartPayTime { get; set; }
/// <summary>
/// 获取或设置支付时间的结束时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("end_pay_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularNullableDateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("end_pay_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularNullableDateTimeOffsetConverter))]
public DateTimeOffset? EndPayTime { get; set; }
/// <summary>
/// 获取或设置分享者的 OpenId。
/// </summary>
[Newtonsoft.Json.JsonProperty("sharer_openid")]
[System.Text.Json.Serialization.JsonPropertyName("sharer_openid")]
public string? SharerOpenId { get; set; }
/// <summary>
/// 获取或设置分页页数(从 1 开始)。
/// </summary>
[Newtonsoft.Json.JsonProperty("page")]
[System.Text.Json.Serialization.JsonPropertyName("page")]
public int Page { get; set; } = 1;
/// <summary>
/// 获取或设置分页每页数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("page_size")]
[System.Text.Json.Serialization.JsonPropertyName("page_size")]
public int Limit { get; set; } = 10;
}
}

View File

@@ -0,0 +1,32 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /shop/order/get_list_by_sharer 接口的响应。</para>
/// </summary>
public class ShopOrderGetListBySharerResponse : WechatApiResponse
{
public static class Types
{
public class Order : ShopOrderGetResponse.Types.Order
{
}
}
/// <summary>
/// 获取或设置订单列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("orders")]
[System.Text.Json.Serialization.JsonPropertyName("orders")]
public Types.Order[] OrderList { get; set; } = default!;
/// <summary>
/// 获取或设置订单总数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("total_num")]
[System.Text.Json.Serialization.JsonPropertyName("total_num")]
public int TotalCount { get; set; }
}
}

View File

@@ -61,6 +61,34 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
[Newtonsoft.Json.JsonProperty("sale_price")]
[System.Text.Json.Serialization.JsonPropertyName("sale_price")]
public int SalePrice { get; set; }
/// <summary>
/// 获取或设置均摊价格(单位:分)。
/// </summary>
[Newtonsoft.Json.JsonProperty("real_price")]
[System.Text.Json.Serialization.JsonPropertyName("real_price")]
public int RealPrice { get; set; }
/// <summary>
/// 获取或设置小程序商品页面标题。
/// </summary>
[Newtonsoft.Json.JsonProperty("title")]
[System.Text.Json.Serialization.JsonPropertyName("title")]
public string Title { get; set; } = default!;
/// <summary>
/// 获取或设置小程序商品页面路径。
/// </summary>
[Newtonsoft.Json.JsonProperty("path")]
[System.Text.Json.Serialization.JsonPropertyName("path")]
public string PagePath { get; set; } = default!;
/// <summary>
/// 获取或设置商品头图 URL。
/// </summary>
[Newtonsoft.Json.JsonProperty("head_image")]
[System.Text.Json.Serialization.JsonPropertyName("head_image")]
public string HeadImageUrl { get; set; } = default!;
}
public class Payment
@@ -72,6 +100,13 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
[System.Text.Json.Serialization.JsonPropertyName("pay_method")]
public string PayMethod { get; set; } = default!;
/// <summary>
/// 获取或设置支付方式类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("pay_method_type")]
[System.Text.Json.Serialization.JsonPropertyName("pay_method_type")]
public int PayMethodType { get; set; }
/// <summary>
/// 获取或设置预支付单号。
/// </summary>
@@ -188,6 +223,46 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
[System.Text.Json.Serialization.JsonPropertyName("delivery_list")]
public Types.DeliveryDetail[]? DeliveryDetailList { get; set; }
}
public class Promotion
{
/// <summary>
/// 获取或设置推广员用户名。
/// </summary>
[Newtonsoft.Json.JsonProperty("finder_username")]
[System.Text.Json.Serialization.JsonPropertyName("finder_username")]
public string? FinderUsername { get; set; }
/// <summary>
/// 获取或设置推广员昵称。
/// </summary>
[Newtonsoft.Json.JsonProperty("finder_nickname")]
[System.Text.Json.Serialization.JsonPropertyName("finder_nickname")]
public string? FinderNickname { get; set; }
/// <summary>
/// 获取或设置推广员备注。
/// </summary>
[Newtonsoft.Json.JsonProperty("finder_remark")]
[System.Text.Json.Serialization.JsonPropertyName("finder_remark")]
public string? FinderRemark { get; set; }
/// <summary>
/// 获取或设置分享者的 OpenId。
/// </summary>
[Newtonsoft.Json.JsonProperty("sharer_openid")]
[System.Text.Json.Serialization.JsonPropertyName("sharer_openid")]
public string? SharerOpenId { get; set; }
/// <summary>
/// 获取或设置直播开始时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("live_start_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularNullableDateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("live_start_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularNullableDateTimeOffsetConverter))]
public DateTimeOffset? LiveStartTime { get; set; }
}
}
/// <summary>
@@ -224,6 +299,13 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
[Newtonsoft.Json.JsonProperty("delivery_detail")]
[System.Text.Json.Serialization.JsonPropertyName("delivery_detail")]
public Types.Delivery? Delivery { get; set; }
/// <summary>
/// 获取或设置推广信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("promotion_info")]
[System.Text.Json.Serialization.JsonPropertyName("promotion_info")]
public Types.Promotion? Promotion { get; set; }
}
}