mirror of
https://gitee.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat.git
synced 2025-09-20 02:29:40 +08:00
feat(wxapi): 新增小程序联盟商品佣金设置相关接口
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
using System;
|
||||
using System.Net.Http;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Flurl;
|
||||
using Flurl.Http;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.Api
|
||||
{
|
||||
public static class WechatApiClientExecuteUnionShopExtensions
|
||||
{
|
||||
#region Open
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /union/shop/open/set_commission 接口。</para>
|
||||
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/union/custom_component/api/shop/set_commission.html </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.UnionShopOpenSetCommissionResponse> ExecuteUnionShopOpenSetCommissionAsync(this WechatApiClient client, Models.UnionShopOpenSetCommissionRequest 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", "shop", "open", "set_commission")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.UnionShopOpenSetCommissionResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /union/shop/open/get_commission 接口。</para>
|
||||
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/union/custom_component/api/shop/set_commission.html </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.UnionShopOpenGetCommissionResponse> ExecuteUnionShopOpenGetCommissionAsync(this WechatApiClient client, Models.UnionShopOpenGetCommissionRequest 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", "shop", "open", "get_commission")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.UnionShopOpenGetCommissionResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /union/shop/open/delete_commission 接口。</para>
|
||||
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/union/custom_component/api/shop/set_commission.html </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.UnionShopOpenDeleteCommissionResponse> ExecuteUnionShopOpenDeleteCommissionAsync(this WechatApiClient client, Models.UnionShopOpenDeleteCommissionRequest 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", "shop", "open", "delete_commission")
|
||||
.SetQueryParam("access_token", request.AccessToken);
|
||||
|
||||
return await client.SendRequestWithJsonAsync<Models.UnionShopOpenDeleteCommissionResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
@@ -1,4 +1,4 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
|
||||
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /union/promoter/target/plan_info 接口的响应。</para>
|
||||
@@ -254,7 +254,6 @@
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("commissionRatio")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("commissionRatio")]
|
||||
|
||||
public int CommissionRatio { get; set; }
|
||||
|
||||
/// <summary>
|
||||
|
@@ -0,0 +1,37 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /union/shop/open/delete_commission 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class UnionShopOpenDeleteCommissionRequest : WechatApiRequest, IInferable<UnionShopOpenDeleteCommissionRequest, UnionShopOpenDeleteCommissionResponse>
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class Product
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置商品 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("productId")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("productId")]
|
||||
public long? ProductId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商家自定义商品 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("outProductId")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("outProductId")]
|
||||
public string? OutProductId { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商品列表。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("key")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("key")]
|
||||
public IList<Types.Product> ProductList { get; set; } = new List<Types.Product>();
|
||||
}
|
||||
}
|
@@ -0,0 +1,9 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /union/shop/open/delete_commission 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class UnionShopOpenDeleteCommissionResponse : WechatApiResponse
|
||||
{
|
||||
}
|
||||
}
|
@@ -0,0 +1,37 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /union/shop/open/get_commission 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class UnionShopOpenGetCommissionRequest : WechatApiRequest, IInferable<UnionShopOpenGetCommissionRequest, UnionShopOpenGetCommissionResponse>
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class Product
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置商品 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("productId")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("productId")]
|
||||
public long? ProductId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商家自定义商品 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("outProductId")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("outProductId")]
|
||||
public string? OutProductId { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商品列表。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("key")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("key")]
|
||||
public IList<Types.Product> ProductList { get; set; } = new List<Types.Product>();
|
||||
}
|
||||
}
|
@@ -0,0 +1,63 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /union/shop/open/get_commission 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class UnionShopOpenGetCommissionResponse : WechatApiResponse
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class Result
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置商品 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("productId")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("productId")]
|
||||
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>
|
||||
/// 获取或设置是否是佣金商品。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("isCommissionProduct")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("isCommissionProduct")]
|
||||
public bool IsCommissionProduct { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置佣金率(单位:万分之一)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("commissionRatio")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("commissionRatio")]
|
||||
public int? CommissionRatio { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置待生效佣金率(单位:万分之一)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("nextCommissionRatio")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("nextCommissionRatio")]
|
||||
public int? NextCommissionRatio { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置生效时间戳。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("effectiveTime")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("effectiveTime")]
|
||||
public long? EffectiveTimestamp { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置结果列表。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("result")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("result")]
|
||||
public Types.Result[] ResultList { get; set; } = default!;
|
||||
}
|
||||
}
|
@@ -0,0 +1,44 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /union/shop/open/set_commission 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class UnionShopOpenSetCommissionRequest : WechatApiRequest, IInferable<UnionShopOpenSetCommissionRequest, UnionShopOpenSetCommissionResponse>
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class Product
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置商品 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("productId")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("productId")]
|
||||
public long? ProductId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商家自定义商品 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("outProductId")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("outProductId")]
|
||||
public string? OutProductId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置佣金率(单位:万分之一)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("commissionRatio")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("commissionRatio")]
|
||||
public int CommissionRatio { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商品列表。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("key")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("key")]
|
||||
public IList<Types.Product> ProductList { get; set; } = new List<Types.Product>();
|
||||
}
|
||||
}
|
@@ -0,0 +1,9 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /union/shop/open/set_commission 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class UnionShopOpenSetCommissionResponse : WechatApiResponse
|
||||
{
|
||||
}
|
||||
}
|
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"key": [
|
||||
{
|
||||
"productId": 411330134,
|
||||
"outProductId": "1234566"
|
||||
}
|
||||
]
|
||||
}
|
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"key": [
|
||||
{
|
||||
"productId": 411330134,
|
||||
"outProductId": "1234566"
|
||||
}
|
||||
]
|
||||
}
|
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"errcode": 0,
|
||||
"errmsg": "ok",
|
||||
"result": [
|
||||
{
|
||||
"productId": "411330134",
|
||||
"outProductId": "1234566",
|
||||
"isCommissionProduct": false
|
||||
}
|
||||
]
|
||||
}
|
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"key": [
|
||||
{
|
||||
"productId": 411330134,
|
||||
"outProductId": "1234566"
|
||||
}
|
||||
]
|
||||
}
|
Reference in New Issue
Block a user