feat(wxapi): 新增视频号小店优惠券相关接口

This commit is contained in:
Fu Diwei 2022-11-03 23:10:40 +08:00
parent c9b5dd08a2
commit d196a57fe8
69 changed files with 1332 additions and 44 deletions

View File

@ -11,7 +11,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Events
public class AftersaleOrder
{
/// <summary>
/// 获取或设置售后单
/// 获取或设置售后单 ID
/// </summary>
[Newtonsoft.Json.JsonProperty("after_sale_order_id")]
[System.Text.Json.Serialization.JsonPropertyName("after_sale_order_id")]

View File

@ -0,0 +1,49 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Events
{
/// <summary>
/// <para>表示 EVENT.channels_ec_coupon_receive 事件的数据。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/channels/API/aftersale/ec_callback/channels_ec_aftersale_update.html </para>
/// </summary>
public class ChannelsECCouponReceiveEvent : WechatApiEvent, WechatApiEvent.Serialization.IJsonSerializable, WechatApiEvent.Serialization.IXmlSerializable
{
public static class Types
{
public class UserCoupon
{
/// <summary>
/// 获取或设置用户优惠券 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("user_coupon_id")]
[System.Text.Json.Serialization.JsonPropertyName("user_coupon_id")]
[System.Xml.Serialization.XmlElement("user_coupon_id")]
public string UserCouponId { get; set; } = default!;
/// <summary>
/// 获取或设置优惠券 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_id")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_id")]
[System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
[System.Xml.Serialization.XmlElement("coupon_id")]
public long CouponId { get; set; }
/// <summary>
/// 获取或设置领券时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("receive_time")]
[System.Text.Json.Serialization.JsonPropertyName("receive_time")]
[System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
[System.Xml.Serialization.XmlElement("receive_time")]
public long ReceiveTimestamp { get; set; }
}
}
/// <summary>
/// 获取或设置用户优惠券信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("receive_info")]
[System.Text.Json.Serialization.JsonPropertyName("receive_info")]
[System.Xml.Serialization.XmlElement("receive_info")]
public Types.UserCoupon UserCoupon { get; set; } = default!;
}
}

View File

@ -11,7 +11,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Events
public class Order
{
/// <summary>
/// 获取或设置订单
/// 获取或设置订单 ID
/// </summary>
[Newtonsoft.Json.JsonProperty("order_id")]
[System.Text.Json.Serialization.JsonPropertyName("order_id")]

View File

@ -11,7 +11,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Events
public class Order
{
/// <summary>
/// 获取或设置订单
/// 获取或设置订单 ID
/// </summary>
[Newtonsoft.Json.JsonProperty("order_id")]
[System.Text.Json.Serialization.JsonPropertyName("order_id")]

View File

@ -11,7 +11,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Events
public class Order
{
/// <summary>
/// 获取或设置订单
/// 获取或设置订单 ID
/// </summary>
[Newtonsoft.Json.JsonProperty("order_id")]
[System.Text.Json.Serialization.JsonPropertyName("order_id")]

View File

@ -11,7 +11,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Events
public class Order
{
/// <summary>
/// 获取或设置订单
/// 获取或设置订单 ID
/// </summary>
[Newtonsoft.Json.JsonProperty("order_id")]
[System.Text.Json.Serialization.JsonPropertyName("order_id")]

View File

@ -27,7 +27,7 @@
public long OrderId { get; set; }
/// <summary>
/// 获取或设置用户 OpenId。
/// 获取或设置用户 OpenId。
/// </summary>
[Newtonsoft.Json.JsonProperty("openid")]
[System.Text.Json.Serialization.JsonPropertyName("openid")]

View File

@ -833,6 +833,148 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
}
#endregion
#region ECCoupon
/// <summary>
/// <para>异步调用 [POST] /channels/ec/coupon/create 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/channels/API/coupon/create.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ChannelsECCouponCreateResponse> ExecuteChannelsECCouponCreateAsync(this WechatApiClient client, Models.ChannelsECCouponCreateRequest 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, "channels", "ec", "coupon", "create")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.ChannelsECCouponCreateResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /channels/ec/coupon/update 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/channels/API/coupon/update.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ChannelsECCouponUpdateResponse> ExecuteChannelsECCouponUpdateAsync(this WechatApiClient client, Models.ChannelsECCouponUpdateRequest 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, "channels", "ec", "coupon", "update")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.ChannelsECCouponUpdateResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /channels/ec/coupon/update_status 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/channels/API/coupon/update_status.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ChannelsECCouponUpdateStatusResponse> ExecuteChannelsECCouponUpdateStatusAsync(this WechatApiClient client, Models.ChannelsECCouponUpdateStatusRequest 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, "channels", "ec", "coupon", "update_status")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.ChannelsECCouponUpdateStatusResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /channels/ec/coupon/get 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/channels/API/coupon/get.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ChannelsECCouponGetResponse> ExecuteChannelsECCouponGetAsync(this WechatApiClient client, Models.ChannelsECCouponGetRequest 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, "channels", "ec", "coupon", "get")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.ChannelsECCouponGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /channels/ec/coupon/get_list 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/channels/API/coupon/get_list.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ChannelsECCouponGetListResponse> ExecuteChannelsECCouponGetListAsync(this WechatApiClient client, Models.ChannelsECCouponGetListRequest 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, "channels", "ec", "coupon", "get_list")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.ChannelsECCouponGetListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /channels/ec/coupon/get_user_coupon_list 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/channels/API/coupon/get_user_coupon_list.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ChannelsECCouponGetUserCouponListResponse> ExecuteChannelsECCouponGetUserCouponListAsync(this WechatApiClient client, Models.ChannelsECCouponGetUserCouponListRequest 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, "channels", "ec", "coupon", "get_user_coupon_list")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.ChannelsECCouponGetUserCouponListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /channels/ec/coupon/get_user_coupon 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/channels/API/coupon/get_user_coupon.html </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ChannelsECCouponGetUserCouponResponse> ExecuteChannelsECCouponGetUserCouponAsync(this WechatApiClient client, Models.ChannelsECCouponGetUserCouponRequest 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, "channels", "ec", "coupon", "get_user_coupon")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.ChannelsECCouponGetUserCouponResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
#region ECWindow
/// <summary>
/// <para>异步调用 [POST] /channels/ec/window/product/add 接口。</para>

View File

@ -0,0 +1,216 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/coupon/create 接口的请求。</para>
/// </summary>
public class ChannelsECCouponCreateRequest : WechatApiRequest, IInferable<ChannelsECCouponCreateRequest, ChannelsECCouponCreateResponse>
{
public static class Types
{
public class Discount
{
public static class Types
{
public class DiscountCondidtion
{
/// <summary>
/// 获取或设置商品数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("product_cnt")]
[System.Text.Json.Serialization.JsonPropertyName("product_cnt")]
public int? ProductCount { get; set; }
/// <summary>
/// 获取或设置商品 ID 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("product_ids")]
[System.Text.Json.Serialization.JsonPropertyName("product_ids")]
public IList<long>? ProductIdList { get; set; }
/// <summary>
/// 获取或设置商品价格(单位:分)。
/// </summary>
[Newtonsoft.Json.JsonProperty("product_price")]
[System.Text.Json.Serialization.JsonPropertyName("product_price")]
public int? ProductPrice { get; set; }
}
}
/// <summary>
/// 获取或设置优惠条件信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("discount_condition")]
[System.Text.Json.Serialization.JsonPropertyName("discount_condition")]
public Types.DiscountCondidtion? DiscountCondidtion { get; set; }
/// <summary>
/// 获取或设置满减金额(单位:分)。
/// </summary>
[Newtonsoft.Json.JsonProperty("discount_fee")]
[System.Text.Json.Serialization.JsonPropertyName("discount_fee")]
public int? DiscountFee { get; set; }
/// <summary>
/// 获取或设置折扣数值范围100010000
/// </summary>
[Newtonsoft.Json.JsonProperty("discount_num")]
[System.Text.Json.Serialization.JsonPropertyName("discount_num")]
public int? DiscountNumber { get; set; }
}
public class Extra
{
/// <summary>
/// 获取或设置领取后跳转的商品 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("jump_product_id")]
[System.Text.Json.Serialization.JsonPropertyName("jump_product_id")]
public long? JumpProductId { get; set; }
/// <summary>
/// 获取或设置备注。
/// </summary>
[Newtonsoft.Json.JsonProperty("notes")]
[System.Text.Json.Serialization.JsonPropertyName("notes")]
public string? Notes { get; set; }
/// <summary>
/// 获取或设置有效时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("valid_time")]
[System.Text.Json.Serialization.JsonPropertyName("valid_time")]
public long ValidTimestamp { get; set; }
/// <summary>
/// 获取或设置失效时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("invalid_time")]
[System.Text.Json.Serialization.JsonPropertyName("invalid_time")]
public long InvalidTimestamp { get; set; }
}
public class Promotion
{
/// <summary>
/// 获取或设置推广类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("promote_type")]
[System.Text.Json.Serialization.JsonPropertyName("promote_type")]
public int PromoteType { get; set; }
}
public class Reception
{
/// <summary>
/// 获取或设置单人限领数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("limit_num_one_person")]
[System.Text.Json.Serialization.JsonPropertyName("limit_num_one_person")]
public int? LimitPerUser { get; set; }
/// <summary>
/// 获取或设置领取总数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("total_num")]
[System.Text.Json.Serialization.JsonPropertyName("total_num")]
public int? TotalCount { get; set; }
/// <summary>
/// 获取或设置领取开始时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("start_time")]
[System.Text.Json.Serialization.JsonPropertyName("start_time")]
public long? StartTimestamp { get; set; }
/// <summary>
/// 获取或设置领取结束时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("end_time")]
[System.Text.Json.Serialization.JsonPropertyName("end_time")]
public long? EndTimestamp { get; set; }
}
public class Validity
{
/// <summary>
/// 获取或设置有效期类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("valid_type")]
[System.Text.Json.Serialization.JsonPropertyName("valid_type")]
public int ValidType { get; set; }
/// <summary>
/// 获取或设置相对生效天数。
/// </summary>
[Newtonsoft.Json.JsonProperty("valid_day_num")]
[System.Text.Json.Serialization.JsonPropertyName("valid_day_num")]
public int? ValidDays { get; set; }
/// <summary>
/// 获取或设置绝对生效开始时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("start_time")]
[System.Text.Json.Serialization.JsonPropertyName("start_time")]
public long? StartTimestamp { get; set; }
/// <summary>
/// 获取或设置绝对生效结束时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("end_time")]
[System.Text.Json.Serialization.JsonPropertyName("end_time")]
public long? EndTimestamp { get; set; }
}
}
/// <summary>
/// 获取或设置优惠券类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("type")]
[System.Text.Json.Serialization.JsonPropertyName("type")]
public int Type { get; set; }
/// <summary>
/// 获取或设置优惠券名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("name")]
[System.Text.Json.Serialization.JsonPropertyName("name")]
public string Name { get; set; } = string.Empty;
/// <summary>
/// 获取或设置优惠信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("discount_info")]
[System.Text.Json.Serialization.JsonPropertyName("discount_info")]
public Types.Discount Discount { get; set; } = new Types.Discount();
/// <summary>
/// 获取或设置扩展信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("ext_info")]
[System.Text.Json.Serialization.JsonPropertyName("ext_info")]
public Types.Extra? Extra { get; set; }
/// <summary>
/// 获取或设置推广信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("promote_info")]
[System.Text.Json.Serialization.JsonPropertyName("promote_info")]
public Types.Promotion? Promotion { get; set; }
/// <summary>
/// 获取或设置接收信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("receive_info")]
[System.Text.Json.Serialization.JsonPropertyName("receive_info")]
public Types.Reception? Reception { get; set; }
/// <summary>
/// 获取或设置有效期信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("valid_info")]
[System.Text.Json.Serialization.JsonPropertyName("valid_info")]
public Types.Validity Validity { get; set; } = new Types.Validity();
}
}

View File

@ -0,0 +1,29 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/coupon/create 接口的响应。</para>
/// </summary>
public class ChannelsECCouponCreateResponse : WechatApiResponse
{
public static class Types
{
public class Data
{
/// <summary>
/// 获取或设置优惠券 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_id")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_id")]
[System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
public long CouponId { get; set; }
}
}
/// <summary>
/// 获取或设置返回数据。
/// </summary>
[Newtonsoft.Json.JsonProperty("data")]
[System.Text.Json.Serialization.JsonPropertyName("data")]
public Types.Data Data { get; set; } = default!;
}
}

View File

@ -0,0 +1,38 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/coupon/get_list 接口的请求。</para>
/// </summary>
public class ChannelsECCouponGetListRequest : WechatApiRequest, IInferable<ChannelsECCouponGetListRequest, ChannelsECCouponGetListResponse>
{
/// <summary>
/// 获取或设置优惠券状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("status")]
[System.Text.Json.Serialization.JsonPropertyName("status")]
public int? Status { get; set; }
/// <summary>
/// 获取或设置翻页标记。
/// </summary>
[Newtonsoft.Json.JsonProperty("page_ctx")]
[System.Text.Json.Serialization.JsonPropertyName("page_ctx")]
public string? Cursor { get; set; }
/// <summary>
/// 获取或设置分页页数(从 1 开始)。
/// <para>默认值1</para>
/// </summary>
[Newtonsoft.Json.JsonProperty("page")]
[System.Text.Json.Serialization.JsonPropertyName("page")]
public int Page { get; set; } = 1;
/// <summary>
/// 获取或设置分页每页数量。
/// <para>默认值10</para>
/// </summary>
[Newtonsoft.Json.JsonProperty("page_size")]
[System.Text.Json.Serialization.JsonPropertyName("page_size")]
public int Limit { get; set; } = 10;
}
}

View File

@ -0,0 +1,43 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/coupon/get_list 接口的响应。</para>
/// </summary>
public class ChannelsECCouponGetListResponse : WechatApiResponse
{
public static class Types
{
public class Coupon
{
/// <summary>
/// 获取或设置优惠券 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_id")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_id")]
[System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
public long CouponId { get; set; }
}
}
/// <summary>
/// 获取或设置优惠券列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupons")]
[System.Text.Json.Serialization.JsonPropertyName("coupons")]
public Types.Coupon[] CouponList { get; set; } = default!;
/// <summary>
/// 获取或设置翻页标记。
/// </summary>
[Newtonsoft.Json.JsonProperty("page_ctx")]
[System.Text.Json.Serialization.JsonPropertyName("page_ctx")]
public string? NextCursor { get; set; }
/// <summary>
/// 获取或设置总数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("total_num")]
[System.Text.Json.Serialization.JsonPropertyName("total_num")]
public int TotalCount { get; set; }
}
}

View File

@ -0,0 +1,17 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/coupon/get 接口的请求。</para>
/// </summary>
public class ChannelsECCouponGetRequest : WechatApiRequest, IInferable<ChannelsECCouponGetRequest, ChannelsECCouponGetResponse>
{
/// <summary>
/// 获取或设置优惠券 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_id")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_id")]
public long CouponId { get; set; }
}
}

View File

@ -0,0 +1,185 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/coupon/get 接口的响应。</para>
/// </summary>
public class ChannelsECCouponGetResponse : WechatApiResponse
{
public static class Types
{
public class Coupon
{
public static class Types
{
public class CouponDetail
{
public static class Types
{
public class Discount : ChannelsECCouponCreateRequest.Types.Discount
{
public static new class Types
{
public class DiscountCondidtion : ChannelsECCouponCreateRequest.Types.Discount.Types.DiscountCondidtion
{
/// <summary>
/// 获取或设置商品 ID 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("product_ids")]
[System.Text.Json.Serialization.JsonPropertyName("product_ids")]
public new long[]? ProductIdList { get; set; }
}
}
/// <summary>
/// 获取或设置优惠条件信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("discount_condition")]
[System.Text.Json.Serialization.JsonPropertyName("discount_condition")]
public new Types.DiscountCondidtion? DiscountCondidtion { get; set; }
}
public class Extra : ChannelsECCouponCreateRequest.Types.Extra
{
}
public class Promotion : ChannelsECCouponCreateRequest.Types.Promotion
{
}
public class Reception : ChannelsECCouponCreateRequest.Types.Reception
{
}
public class Validity : ChannelsECCouponCreateRequest.Types.Validity
{
}
}
/// <summary>
/// 获取或设置优惠券名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("name")]
[System.Text.Json.Serialization.JsonPropertyName("name")]
public string Name { get; set; } = default!;
/// <summary>
/// 获取或设置优惠信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("discount_info")]
[System.Text.Json.Serialization.JsonPropertyName("discount_info")]
public Types.Discount Discount { get; set; } = default!;
/// <summary>
/// 获取或设置扩展信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("ext_info")]
[System.Text.Json.Serialization.JsonPropertyName("ext_info")]
public Types.Extra? Extra { get; set; }
/// <summary>
/// 获取或设置推广信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("promote_info")]
[System.Text.Json.Serialization.JsonPropertyName("promote_info")]
public Types.Promotion? Promotion { get; set; }
/// <summary>
/// 获取或设置接收信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("receive_info")]
[System.Text.Json.Serialization.JsonPropertyName("receive_info")]
public Types.Reception? Reception { get; set; }
/// <summary>
/// 获取或设置有效期信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("valid_info")]
[System.Text.Json.Serialization.JsonPropertyName("valid_info")]
public Types.Validity Validity { get; set; } = default!;
}
public class CouponStock
{
/// <summary>
/// 获取或设置剩余量。
/// </summary>
[Newtonsoft.Json.JsonProperty("issued_num")]
[System.Text.Json.Serialization.JsonPropertyName("issued_num")]
public int IssuedCount { get; set; }
/// <summary>
/// 获取或设置领用量。
/// </summary>
[Newtonsoft.Json.JsonProperty("receive_num")]
[System.Text.Json.Serialization.JsonPropertyName("receive_num")]
public int ReceivedCount { get; set; }
/// <summary>
/// 获取或设置已用量。
/// </summary>
[Newtonsoft.Json.JsonProperty("used_num")]
[System.Text.Json.Serialization.JsonPropertyName("used_num")]
public int UsedCount { get; set; }
}
}
/// <summary>
/// 获取或设置优惠券 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_id")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_id")]
[System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
public long CouponId { get; set; }
/// <summary>
/// 获取或设置优惠券类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("type")]
[System.Text.Json.Serialization.JsonPropertyName("type")]
public int Type { get; set; }
/// <summary>
/// 获取或设置优惠券状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("status")]
[System.Text.Json.Serialization.JsonPropertyName("status")]
public int Status { get; set; }
/// <summary>
/// 获取或设置优惠券详细信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_info")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_info")]
public Types.CouponDetail CouponDetail { get; set; } = default!;
/// <summary>
/// 获取或设置优惠券库存信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("stock_info")]
[System.Text.Json.Serialization.JsonPropertyName("stock_info")]
public Types.CouponStock CouponStock { get; set; } = default!;
/// <summary>
/// 获取或设置更新时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("update_time")]
[System.Text.Json.Serialization.JsonPropertyName("update_time")]
public long UpdateTimestamp { get; set; }
/// <summary>
/// 获取或设置创建时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("create_time")]
[System.Text.Json.Serialization.JsonPropertyName("create_time")]
public long CreateTimestamp { get; set; }
}
}
/// <summary>
/// 获取或设置优惠券信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon")]
[System.Text.Json.Serialization.JsonPropertyName("coupon")]
public Types.Coupon Coupon { get; set; } = default!;
}
}

View File

@ -0,0 +1,45 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/coupon/get_user_coupon_list 接口的请求。</para>
/// </summary>
public class ChannelsECCouponGetUserCouponListRequest : WechatApiRequest, IInferable<ChannelsECCouponGetUserCouponListRequest, ChannelsECCouponGetUserCouponListResponse>
{
/// <summary>
/// 获取或设置用户 OpenId。
/// </summary>
[Newtonsoft.Json.JsonProperty("openid")]
[System.Text.Json.Serialization.JsonPropertyName("openid")]
public string OpenId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置优惠券状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("status")]
[System.Text.Json.Serialization.JsonPropertyName("status")]
public int? Status { get; set; }
/// <summary>
/// 获取或设置翻页标记。
/// </summary>
[Newtonsoft.Json.JsonProperty("page_ctx")]
[System.Text.Json.Serialization.JsonPropertyName("page_ctx")]
public string? Cursor { get; set; }
/// <summary>
/// 获取或设置分页页数(从 1 开始)。
/// <para>默认值1</para>
/// </summary>
[Newtonsoft.Json.JsonProperty("page")]
[System.Text.Json.Serialization.JsonPropertyName("page")]
public int Page { get; set; } = 1;
/// <summary>
/// 获取或设置分页每页数量。
/// <para>默认值10</para>
/// </summary>
[Newtonsoft.Json.JsonProperty("page_size")]
[System.Text.Json.Serialization.JsonPropertyName("page_size")]
public int Limit { get; set; } = 10;
}
}

View File

@ -0,0 +1,50 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/coupon/get_user_coupon_list 接口的响应。</para>
/// </summary>
public class ChannelsECCouponGetUserCouponListResponse : WechatApiResponse
{
public static class Types
{
public class UserCoupon
{
/// <summary>
/// 获取或设置用户优惠券 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("user_coupon_id")]
[System.Text.Json.Serialization.JsonPropertyName("user_coupon_id")]
public string UserCouponId { get; set; } = default!;
/// <summary>
/// 获取或设置优惠券 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_id")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_id")]
[System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
public long CouponId { get; set; }
}
}
/// <summary>
/// 获取或设置用户优惠券列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("user_coupon_list")]
[System.Text.Json.Serialization.JsonPropertyName("user_coupon_list")]
public Types.UserCoupon[] UserCouponList { get; set; } = default!;
/// <summary>
/// 获取或设置翻页标记。
/// </summary>
[Newtonsoft.Json.JsonProperty("page_ctx")]
[System.Text.Json.Serialization.JsonPropertyName("page_ctx")]
public string? NextCursor { get; set; }
/// <summary>
/// 获取或设置总数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("total_num")]
[System.Text.Json.Serialization.JsonPropertyName("total_num")]
public int TotalCount { get; set; }
}
}

View File

@ -0,0 +1,24 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/coupon/get_user_coupon 接口的请求。</para>
/// </summary>
public class ChannelsECCouponGetUserCouponRequest : WechatApiRequest, IInferable<ChannelsECCouponGetUserCouponRequest, ChannelsECCouponGetUserCouponResponse>
{
/// <summary>
/// 获取或设置用户 OpenId。
/// </summary>
[Newtonsoft.Json.JsonProperty("openid")]
[System.Text.Json.Serialization.JsonPropertyName("openid")]
public string OpenId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置用户优惠券 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("user_coupon_id")]
[System.Text.Json.Serialization.JsonPropertyName("user_coupon_id")]
public string CouponId { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,120 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/coupon/get_user_coupon 接口的响应。</para>
/// </summary>
public class ChannelsECCouponGetUserCouponResponse : WechatApiResponse
{
public static class Types
{
public class UserCoupon
{
public static class Types
{
public class Extra
{
/// <summary>
/// 获取或设置核销时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("use_time")]
[System.Text.Json.Serialization.JsonPropertyName("use_time")]
public long UseTimestamp { get; set; }
}
}
/// <summary>
/// 获取或设置用户优惠券 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("user_coupon_id")]
[System.Text.Json.Serialization.JsonPropertyName("user_coupon_id")]
public string UserCouponId { get; set; } = default!;
/// <summary>
/// 获取或设置优惠券 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_id")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_id")]
[System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
public long CouponId { get; set; }
/// <summary>
/// 获取或设置优惠券状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("status")]
[System.Text.Json.Serialization.JsonPropertyName("status")]
public int Status { get; set; }
/// <summary>
/// 获取或设置创建时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("create_time")]
[System.Text.Json.Serialization.JsonPropertyName("create_time")]
public long CreateTimestamp { get; set; }
/// <summary>
/// 获取或设置更新时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("update_time")]
[System.Text.Json.Serialization.JsonPropertyName("update_time")]
public long UpdateTimestamp { get; set; }
/// <summary>
/// 获取或设置有效期开始时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("start_time")]
[System.Text.Json.Serialization.JsonPropertyName("start_time")]
public long ValidityStartTimestamp { get; set; }
/// <summary>
/// 获取或设置有效期结束时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("end_time")]
[System.Text.Json.Serialization.JsonPropertyName("end_time")]
public long ValidityEndTimestamp { get; set; }
/// <summary>
/// 获取或设置扩展信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("ext_info")]
[System.Text.Json.Serialization.JsonPropertyName("ext_info")]
public Types.Extra? Extra { get; set; }
/// <summary>
/// 获取或设置使用的订单 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("order_id")]
[System.Text.Json.Serialization.JsonPropertyName("order_id")]
[System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
public long? OrderId { get; set; }
/// <summary>
/// 获取或设置优惠金额(单位:分)。
/// </summary>
[Newtonsoft.Json.JsonProperty("discount_fee")]
[System.Text.Json.Serialization.JsonPropertyName("discount_fee")]
public int? DiscountFee { get; set; }
}
}
/// <summary>
/// 获取或设置用户 OpenId。
/// </summary>
[Newtonsoft.Json.JsonProperty("openid")]
[System.Text.Json.Serialization.JsonPropertyName("openid")]
public string OpenId { get; set; } = default!;
/// <summary>
/// 获取或设置用户 UnionId。
/// </summary>
[Newtonsoft.Json.JsonProperty("unionid")]
[System.Text.Json.Serialization.JsonPropertyName("unionid")]
public string? UnionId { get; set; }
/// <summary>
/// 获取或设置用户优惠券信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("user_coupon")]
[System.Text.Json.Serialization.JsonPropertyName("user_coupon")]
public Types.UserCoupon UserCoupon { get; set; } = default!;
}
}

View File

@ -0,0 +1,102 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/coupon/update 接口的请求。</para>
/// </summary>
public class ChannelsECCouponUpdateRequest : WechatApiRequest, IInferable<ChannelsECCouponUpdateRequest, ChannelsECCouponUpdateResponse>
{
public static class Types
{
public class Discount : ChannelsECCouponCreateRequest.Types.Discount
{
public static new class Types
{
public class DiscountCondidtion : ChannelsECCouponCreateRequest.Types.Discount.Types.DiscountCondidtion
{
}
}
/// <summary>
/// 获取或设置优惠条件信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("discount_condition")]
[System.Text.Json.Serialization.JsonPropertyName("discount_condition")]
public new Types.DiscountCondidtion? DiscountCondidtion { get; set; }
}
public class Extra : ChannelsECCouponCreateRequest.Types.Extra
{
}
public class Promotion : ChannelsECCouponCreateRequest.Types.Promotion
{
}
public class Reception : ChannelsECCouponCreateRequest.Types.Reception
{
}
public class Validity : ChannelsECCouponCreateRequest.Types.Validity
{
}
}
/// <summary>
/// 获取或设置优惠券 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_id")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_id")]
public long CouponId { get; set; }
/// <summary>
/// 获取或设置优惠券类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("type")]
[System.Text.Json.Serialization.JsonPropertyName("type")]
public int Type { get; set; }
/// <summary>
/// 获取或设置优惠券名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("name")]
[System.Text.Json.Serialization.JsonPropertyName("name")]
public string Name { get; set; } = string.Empty;
/// <summary>
/// 获取或设置优惠信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("discount_info")]
[System.Text.Json.Serialization.JsonPropertyName("discount_info")]
public Types.Discount Discount { get; set; } = new Types.Discount();
/// <summary>
/// 获取或设置扩展信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("ext_info")]
[System.Text.Json.Serialization.JsonPropertyName("ext_info")]
public Types.Extra? Extra { get; set; }
/// <summary>
/// 获取或设置推广信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("promote_info")]
[System.Text.Json.Serialization.JsonPropertyName("promote_info")]
public Types.Promotion? Promotion { get; set; }
/// <summary>
/// 获取或设置接收信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("receive_info")]
[System.Text.Json.Serialization.JsonPropertyName("receive_info")]
public Types.Reception? Reception { get; set; }
/// <summary>
/// 获取或设置有效期信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("valid_info")]
[System.Text.Json.Serialization.JsonPropertyName("valid_info")]
public Types.Validity Validity { get; set; } = new Types.Validity();
}
}

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/coupon/update 接口的响应。</para>
/// </summary>
public class ChannelsECCouponUpdateResponse : WechatApiResponse
{
}
}

View File

@ -0,0 +1,24 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/coupon/update_status 接口的请求。</para>
/// </summary>
public class ChannelsECCouponUpdateStatusRequest : WechatApiRequest, IInferable<ChannelsECCouponUpdateStatusRequest, ChannelsECCouponUpdateStatusResponse>
{
/// <summary>
/// 获取或设置优惠券 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_id")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_id")]
public long CouponId { get; set; }
/// <summary>
/// 获取或设置优惠券状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("status")]
[System.Text.Json.Serialization.JsonPropertyName("status")]
public int Status { get; set; }
}
}

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /channels/ec/coupon/update_status 接口的响应。</para>
/// </summary>
public class ChannelsECCouponUpdateStatusResponse : WechatApiResponse
{
}
}

View File

@ -74,7 +74,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("notes")]
[System.Text.Json.Serialization.JsonPropertyName("notes")]
public string? Remark { get; set; }
public string? Notes { get; set; }
/// <summary>
/// 获取或设置有效时间戳。
@ -122,7 +122,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("total_num")]
[System.Text.Json.Serialization.JsonPropertyName("total_num")]
public int? TotalNumber { get; set; }
public int? TotalCount { get; set; }
/// <summary>
/// 获取或设置领取开始时间戳。

View File

@ -14,7 +14,7 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_id")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_id")]
public int CouponId { get; set; }
public long CouponId { get; set; }
}
}

View File

@ -10,6 +10,6 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_id")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_id")]
public int CouponId { get; set; }
public long CouponId { get; set; }
}
}

View File

@ -82,7 +82,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("notes")]
[System.Text.Json.Serialization.JsonPropertyName("notes")]
public string? Remark { get; set; }
public string? Notes { get; set; }
/// <summary>
/// 获取或设置有效时间戳。
@ -133,7 +133,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("total_num")]
[System.Text.Json.Serialization.JsonPropertyName("total_num")]
public int? TotalNumber { get; set; }
public int? TotalCount { get; set; }
/// <summary>
/// 获取或设置领取开始时间戳。
@ -263,7 +263,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_id")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_id")]
public int CouponId { get; set; }
public long CouponId { get; set; }
/// <summary>
/// 获取或设置优惠券类型。

View File

@ -6,7 +6,7 @@
public class ProductCouponGetUserRequest : WechatApiRequest, IInferable<ProductCouponGetUserRequest, ProductCouponGetUserResponse>
{
/// <summary>
/// 获取或设置用户 OpenId。
/// 获取或设置用户 OpenId。
/// </summary>
[Newtonsoft.Json.JsonProperty("openid")]
[System.Text.Json.Serialization.JsonPropertyName("openid")]

View File

@ -31,7 +31,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_id")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_id")]
public int CouponId { get; set; }
public long CouponId { get; set; }
/// <summary>
/// 获取或设置优惠券状态。

View File

@ -10,10 +10,10 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_id")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_id")]
public int CouponId { get; set; }
public long CouponId { get; set; }
/// <summary>
/// 获取或设置用户 OpenId。
/// 获取或设置用户 OpenId。
/// </summary>
[Newtonsoft.Json.JsonProperty("openid")]
[System.Text.Json.Serialization.JsonPropertyName("openid")]

View File

@ -33,7 +33,7 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_id")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_id")]
public int CouponId { get; set; }
public long CouponId { get; set; }
/// <summary>
/// 获取或设置优惠券名称。

View File

@ -10,7 +10,7 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_id")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_id")]
public int CouponId { get; set; }
public long CouponId { get; set; }
/// <summary>
/// 获取或设置优惠券状态。

View File

@ -394,7 +394,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
public Types.AftersaleDetail? AftersaleDetail { get; set; }
/// <summary>
/// 获取或设置用户 OpenId。
/// 获取或设置用户 OpenId。
/// </summary>
[Newtonsoft.Json.JsonProperty("openid")]
[System.Text.Json.Serialization.JsonPropertyName("openid")]

View File

@ -57,7 +57,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
public string PagePath { get; set; } = string.Empty;
/// <summary>
/// 获取或设置用户 OpenId。
/// 获取或设置用户 OpenId。
/// </summary>
[Newtonsoft.Json.JsonProperty("openid")]
[System.Text.Json.Serialization.JsonPropertyName("openid")]

View File

@ -20,7 +20,7 @@
public string? OutOrderId { get; set; }
/// <summary>
/// 获取或设置用户 OpenId。
/// 获取或设置用户 OpenId。
/// </summary>
[Newtonsoft.Json.JsonProperty("openid")]
[System.Text.Json.Serialization.JsonPropertyName("openid")]

View File

@ -67,7 +67,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
public string PagePath { get; set; } = default!;
/// <summary>
/// 获取或设置用户 OpenId。
/// 获取或设置用户 OpenId。
/// </summary>
[Newtonsoft.Json.JsonProperty("openid")]
[System.Text.Json.Serialization.JsonPropertyName("openid")]

View File

@ -13,7 +13,7 @@
public string OutOrderId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置用户 OpenId。
/// 获取或设置用户 OpenId。
/// </summary>
[Newtonsoft.Json.JsonProperty("openid")]
[System.Text.Json.Serialization.JsonPropertyName("openid")]

View File

@ -20,7 +20,7 @@
public string OutAftersaleOrderId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置用户 OpenId。
/// 获取或设置用户 OpenId。
/// </summary>
[Newtonsoft.Json.JsonProperty("openid")]
[System.Text.Json.Serialization.JsonPropertyName("openid")]

View File

@ -179,7 +179,7 @@
/// </summary>
[Newtonsoft.Json.JsonProperty("total_num")]
[System.Text.Json.Serialization.JsonPropertyName("total_num")]
public int TotalNumber { get; set; }
public int TotalCount { get; set; }
/// <summary>
/// 获取或设置领取开始时间戳。

View File

@ -20,7 +20,7 @@
public string? OutOrderId { get; set; }
/// <summary>
/// 获取或设置用户 OpenId。
/// 获取或设置用户 OpenId。
/// </summary>
[Newtonsoft.Json.JsonProperty("openid")]
[System.Text.Json.Serialization.JsonPropertyName("openid")]

View File

@ -77,7 +77,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
public string? OutOrderId { get; set; }
/// <summary>
/// 获取或设置用户 OpenId。
/// 获取或设置用户 OpenId。
/// </summary>
[Newtonsoft.Json.JsonProperty("openid")]
[System.Text.Json.Serialization.JsonPropertyName("openid")]

View File

@ -73,7 +73,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
public string? OutAftersaleOrderId { get; set; }
/// <summary>
/// 获取或设置用户 OpenId。
/// 获取或设置用户 OpenId。
/// </summary>
[Newtonsoft.Json.JsonProperty("openid")]
[System.Text.Json.Serialization.JsonPropertyName("openid")]

View File

@ -20,7 +20,7 @@
public string? OutAftersaleOrderId { get; set; }
/// <summary>
/// 获取或设置用户 OpenId。
/// 获取或设置用户 OpenId。
/// </summary>
[Newtonsoft.Json.JsonProperty("openid")]
[System.Text.Json.Serialization.JsonPropertyName("openid")]

View File

@ -29,7 +29,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
public string? OutAftersaleOrderId { get; set; }
/// <summary>
/// 获取或设置用户 OpenId。
/// 获取或设置用户 OpenId。
/// </summary>
[Newtonsoft.Json.JsonProperty("openid")]
[System.Text.Json.Serialization.JsonPropertyName("openid")]

View File

@ -20,7 +20,7 @@
public string? OutAftersaleOrderId { get; set; }
/// <summary>
/// 获取或设置用户 OpenId。
/// 获取或设置用户 OpenId。
/// </summary>
[Newtonsoft.Json.JsonProperty("openid")]
[System.Text.Json.Serialization.JsonPropertyName("openid")]

View File

@ -20,7 +20,7 @@
public string? OutOrderId { get; set; }
/// <summary>
/// 获取或设置用户 OpenId。
/// 获取或设置用户 OpenId。
/// </summary>
[Newtonsoft.Json.JsonProperty("openid")]
[System.Text.Json.Serialization.JsonPropertyName("openid")]

View File

@ -20,7 +20,7 @@
public string? OutOrderId { get; set; }
/// <summary>
/// 获取或设置用户 OpenId。
/// 获取或设置用户 OpenId。
/// </summary>
[Newtonsoft.Json.JsonProperty("openid")]
[System.Text.Json.Serialization.JsonPropertyName("openid")]

View File

@ -20,7 +20,7 @@
public string? OutOrderId { get; set; }
/// <summary>
/// 获取或设置用户 OpenId。
/// 获取或设置用户 OpenId。
/// </summary>
[Newtonsoft.Json.JsonProperty("openid")]
[System.Text.Json.Serialization.JsonPropertyName("openid")]

View File

@ -22,7 +22,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
public string? OutOrderId { get; set; }
/// <summary>
/// 获取或设置用户 OpenId。
/// 获取或设置用户 OpenId。
/// </summary>
[Newtonsoft.Json.JsonProperty("openid")]
[System.Text.Json.Serialization.JsonPropertyName("openid")]

View File

@ -28,7 +28,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
}
/// <summary>
/// 获取或设置用户 OpenId。
/// 获取或设置用户 OpenId。
/// </summary>
[Newtonsoft.Json.JsonProperty("openid")]
[System.Text.Json.Serialization.JsonPropertyName("openid")]

View File

@ -42,7 +42,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
}
/// <summary>
/// 获取或设置用户 OpenId。
/// 获取或设置用户 OpenId。
/// </summary>
[Newtonsoft.Json.JsonProperty("openid")]
[System.Text.Json.Serialization.JsonPropertyName("openid")]

View File

@ -13,7 +13,7 @@
public string MerchantId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置用户 OpenId。
/// 获取或设置用户 OpenId。
/// </summary>
[Newtonsoft.Json.JsonProperty("openid")]
[System.Text.Json.Serialization.JsonPropertyName("openid")]

View File

@ -13,7 +13,7 @@
public string MerchantId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置用户 OpenId。
/// 获取或设置用户 OpenId。
/// </summary>
[Newtonsoft.Json.JsonProperty("openid")]
[System.Text.Json.Serialization.JsonPropertyName("openid")]

View File

@ -512,7 +512,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
[Newtonsoft.Json.JsonProperty("couponId")]
[System.Text.Json.Serialization.JsonPropertyName("couponId")]
[System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
public int? CouponId { get; set; }
public long? CouponId { get; set; }
/// <summary>
/// 获取或设置优惠券详细信息。

View File

@ -154,7 +154,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
public class Payer
{
/// <summary>
/// 获取或设置用户 OpenId。
/// 获取或设置用户 OpenId。
/// </summary>
[Newtonsoft.Json.JsonProperty("openid")]
[System.Text.Json.Serialization.JsonPropertyName("openid")]

View File

@ -34,7 +34,7 @@
public int? Scene { get; set; }
/// <summary>
/// 获取或设置用户 OpenId。
/// 获取或设置用户 OpenId。
/// </summary>
[Newtonsoft.Json.JsonProperty("openid")]
[System.Text.Json.Serialization.JsonPropertyName("openid")]

View File

@ -48,7 +48,7 @@
public int? Scene { get; set; }
/// <summary>
/// 获取或设置用户 OpenId。
/// 获取或设置用户 OpenId。
/// </summary>
[Newtonsoft.Json.JsonProperty("openid")]
[System.Text.Json.Serialization.JsonPropertyName("openid")]

View File

@ -0,0 +1,12 @@
{
"ToUserName": "gh_*",
"FromUserName": "OpenID",
"CreateTime": 1662480000,
"MsgType": "event",
"Event": "channels_ec_coupon_receive",
"receive_info": {
"coupon_id": "19126",
"user_coupon_id": "29730",
"receive_time": "1662480000"
}
}

View File

@ -0,0 +1,32 @@
{
"type": 2,
"name": "双十一特惠券",
"discount_info": {
"discount_condition": {
"product_cnt": 0,
"product_ids": ["1673110742", "1673110743"],
"product_price": 100
},
"discount_fee": 50,
"discount_num": 0
},
"ext_info": {
"jump_product_id": "1673110742",
"notes": "备注",
"valid_time": 1673110742,
"invalid_time": 1673110742
},
"promote_info": {
"promote_type": 1
},
"receive_info": {
"end_time": 1673110742,
"limit_num_one_person": 1,
"start_time": 1673110742,
"total_num": 100
},
"valid_info": {
"valid_day_num": 1,
"valid_type": 1
}
}

View File

@ -0,0 +1,7 @@
{
"errcode": 0,
"errmsg": "ok",
"data": {
"coupon_id": "111"
}
}

View File

@ -0,0 +1,6 @@
{
"status": 2,
"page": 1,
"page_size": 10,
"page_ctx": "THE_PAGE_CTX"
}

View File

@ -0,0 +1,11 @@
{
"errcode": 0,
"errmsg": "ok",
"coupons": [
{
"coupon_id": "123"
}
],
"total_num": 10,
"page_ctx": "THE_PAGE_CTX_NEW"
}

View File

@ -0,0 +1,3 @@
{
"coupon_id": "12639900"
}

View File

@ -0,0 +1,36 @@
{
"errcode": 0,
"coupon": {
"coupon_id": "12639900",
"type": 103,
"status": 5,
"create_time": 1594885385,
"update_time": 1594886327,
"coupon_info": {
"name": "scs",
"promote_info": {
"promote_type": 1
},
"discount_info": {
"discount_num": 9900
},
"receive_info": {
"end_time": 1673110742,
"limit_num_one_person": 1,
"start_time": 1673110742,
"total_num": 100
},
"valid_info": {
"valid_type": 1,
"valid_day_num": 0,
"start_time": 1594828800,
"end_time": 1595433600
}
},
"stock_info": {
"issued_num": 95,
"receive_num": 3,
"used_num": 2
}
}
}

View File

@ -0,0 +1,7 @@
{
"openid": "OPENID",
"status": 100,
"page": 1,
"page_size": 20,
"page_ctx": "THE_PAGE_CTX"
}

View File

@ -0,0 +1,11 @@
{
"errcode": 0,
"user_coupon_list": [
{
"user_coupon_id": "109694341",
"coupon_id": "12639900"
}
],
"total_num": 1,
"page_ctx": "THE_PAGE_CTX_NEW"
}

View File

@ -0,0 +1,4 @@
{
"openid": "OPENID",
"user_coupon_id": "109694341"
}

View File

@ -0,0 +1,19 @@
{
"errcode": 0,
"openid": "OPENID",
"unionid": "UNIONID",
"user_coupon": {
"user_coupon_id": "109694341",
"coupon_id": "12639900",
"status": 100,
"create_time": 1590768000,
"update_time": 1590811200,
"start_time": 1590832800,
"end_time": 1590840000,
"ext_info": {
"use_time": 1590836400
},
"order_id": "123",
"discount_fee": 123
}
}

View File

@ -0,0 +1,34 @@
{
"coupon_id": "111",
"type": 1,
"name": "双十二特惠券",
"discount_info": {
"discount_condition": {
"product_cnt": 2,
"product_ids": ["1673110742", "1673110743"],
"product_price": 0
},
"discount_fee": 0,
"discount_num": 5500
},
"ext_info": {
"jump_product_id": "1673110742",
"notes": "备注2",
"valid_time": 1673110742,
"invalid_time": 1673110742
},
"promote_info": {
"promote_type": 1
},
"receive_info": {
"end_time": 1673110742,
"limit_num_one_person": 1,
"start_time": 1673110742,
"total_num": 100
},
"valid_info": {
"end_time": 1673110742,
"start_time": 1673110742,
"valid_type": 2
}
}

View File

@ -0,0 +1,4 @@
{
"coupon_id": "111",
"status": 2
}