feat(tenpayv3): 新增摇一摇有优惠商品券相关接口

This commit is contained in:
Fu Diwei
2025-10-13 20:17:40 +08:00
parent c550950592
commit ec612b64b8
91 changed files with 7979 additions and 0 deletions

View File

@@ -0,0 +1,580 @@
using System;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
using Flurl.Http;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
{
using SKIT.FlurlHttpClient;
using SKIT.FlurlHttpClient.Primitives;
public static class WechatTenpayClientExecuteMarketingPartnerProductCouponExtensions
{
/// <summary>
/// <para>异步调用 [POST] /marketing/partner/product-coupon/product-coupons 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://pay.weixin.qq.com/doc/v3/partner/4015781289 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CreateMarketingPartnerProductCouponResponse> ExecuteCreateMarketingPartnerProductCouponAsync(this WechatTenpayClient client, Models.CreateMarketingPartnerProductCouponRequest 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
.CreateFlurlRequest(request, HttpMethod.Post, "marketing", "partner", "product-coupon", "product-coupons");
return await client.SendFlurlRequestAsJsonAsync<Models.CreateMarketingPartnerProductCouponResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [GET] /marketing/partner/product-coupon/product-coupons/{product_coupon_id} 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://pay.weixin.qq.com/doc/v3/partner/4015781284 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.GetMarketingPartnerProductCouponByProductCouponIdResponse> ExecuteGetMarketingPartnerProductCouponByProductCouponIdAsync(this WechatTenpayClient client, Models.GetMarketingPartnerProductCouponByProductCouponIdRequest 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
.CreateFlurlRequest(request, HttpMethod.Get, "marketing", "partner", "product-coupon", "product-coupons", request.ProductCouponId)
.SetQueryParam("brand_id", request.BrandId);
return await client.SendFlurlRequestAsJsonAsync<Models.GetMarketingPartnerProductCouponByProductCouponIdResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [PATCH] /marketing/partner/product-coupon/product-coupons/{product_coupon_id} 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://pay.weixin.qq.com/doc/v3/partner/4015781296 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.UpdateMarketingPartnerProductCouponResponse> ExecuteUpdateMarketingPartnerProductCouponAsync(this WechatTenpayClient client, Models.UpdateMarketingPartnerProductCouponRequest 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
.CreateFlurlRequest(request, new HttpMethod("PATCH"), "marketing", "partner", "product-coupon", "product-coupons", request.ProductCouponId);
return await client.SendFlurlRequestAsJsonAsync<Models.UpdateMarketingPartnerProductCouponResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [POST] /marketing/partner/product-coupon/product-coupons/{product_coupon_id}/deactivate 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://pay.weixin.qq.com/doc/v3/partner/4015781290 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.DeactivateMarketingPartnerProductCouponResponse> ExecuteDeactivateMarketingPartnerProductCouponAsync(this WechatTenpayClient client, Models.DeactivateMarketingPartnerProductCouponRequest 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
.CreateFlurlRequest(request, HttpMethod.Post, "marketing", "partner", "product-coupon", "product-coupons", request.ProductCouponId, "deactivate");
return await client.SendFlurlRequestAsJsonAsync<Models.DeactivateMarketingPartnerProductCouponResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [POST] /marketing/partner/product-coupon/media/upload-image 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://pay.weixin.qq.com/doc/v3/partner/4015781275 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.UploadMarketingPartnerProductCouponMediaImageResponse> ExecuteUploadMarketingPartnerProductCouponMediaImageAsync(this WechatTenpayClient client, Models.UploadMarketingPartnerProductCouponMediaImageRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
if (request.FileName is null)
request.FileName = Guid.NewGuid().ToString("N").ToLower() + ".png";
if (request.FileHash is null)
request.FileHash = EncodedString.ToHexString(Utilities.SHA256Utility.Hash(request.FileBytes)).Value!.ToLower();
if (request.FileContentType is null)
request.FileContentType = MimeTypes.GetMimeMapping(request.FileName!);
IFlurlRequest flurlReq = client
.CreateFlurlRequest(request, HttpMethod.Post, "marketing", "partner", "product-coupon", "media", "image-upload");
using var httpContent = Utilities.HttpContentBuilder.BuildWithFile(fileName: request.FileName, fileBytes: request.FileBytes, fileContentType: request.FileContentType, fileMetaJson: client.JsonSerializer.Serialize(request));
return await client.SendFlurlRequestAsync<Models.UploadMarketingPartnerProductCouponMediaImageResponse>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken).ConfigureAwait(false);
}
#region NotifyConfigs
/// <summary>
/// <para>异步调用 [GET] /marketing/partner/product-coupon/notify-configs 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://pay.weixin.qq.com/doc/v3/partner/4015781284 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.GetMarketingPartnerProductCouponNotifyConfigResponse> ExecuteGetMarketingPartnerProductCouponNotifyConfigAsync(this WechatTenpayClient client, Models.GetMarketingPartnerProductCouponNotifyConfigRequest 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
.CreateFlurlRequest(request, HttpMethod.Get, "marketing", "partner", "product-coupon", "notify-configs");
return await client.SendFlurlRequestAsJsonAsync<Models.GetMarketingPartnerProductCouponNotifyConfigResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [POST] /marketing/partner/product-coupon/notify-configs 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://pay.weixin.qq.com/doc/v3/partner/4015781286 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.UpdateMarketingPartnerProductCouponNotifyConfigResponse> ExecuteUpdateMarketingPartnerProductCouponNotifyConfigAsync(this WechatTenpayClient client, Models.UpdateMarketingPartnerProductCouponNotifyConfigRequest 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
.CreateFlurlRequest(request, HttpMethod.Post, "marketing", "partner", "product-coupon", "notify-configs");
return await client.SendFlurlRequestAsJsonAsync<Models.UpdateMarketingPartnerProductCouponNotifyConfigResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
#endregion
#region Stocks
/// <summary>
/// <para>异步调用 [POST] /marketing/partner/product-coupon/product-coupons/{product_coupon_id}/stocks 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://pay.weixin.qq.com/doc/v3/partner/4015781304 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CreateMarketingPartnerProductCouponStockResponse> ExecuteCreateMarketingPartnerProductCouponStockAsync(this WechatTenpayClient client, Models.CreateMarketingPartnerProductCouponStockRequest 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
.CreateFlurlRequest(request, HttpMethod.Post, "marketing", "partner", "product-coupon", "product-coupons", request.ProductCouponId, "stocks");
return await client.SendFlurlRequestAsJsonAsync<Models.CreateMarketingPartnerProductCouponStockResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [GET] /marketing/partner/product-coupon/product-coupons/{product_coupon_id}/stocks 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://pay.weixin.qq.com/doc/v3/partner/4015781553 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.QueryMarketingPartnerProductCouponStocksResponse> ExecuteQueryMarketingPartnerProductCouponStocksAsync(this WechatTenpayClient client, Models.QueryMarketingPartnerProductCouponStocksRequest 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
.CreateFlurlRequest(request, HttpMethod.Get, "marketing", "partner", "product-coupon", "product-coupons", request.ProductCouponId, "stocks")
.SetQueryParam("brand_id", request.BrandId)
.SetQueryParam("state", request.StockState)
.SetQueryParam("page_size", request.PageSize)
.SetQueryParam("page_token", request.PageToken);
return await client.SendFlurlRequestAsJsonAsync<Models.QueryMarketingPartnerProductCouponStocksResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [GET] /marketing/partner/product-coupon/product-coupons/{product_coupon_id}/stocks/{stock_id} 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://pay.weixin.qq.com/doc/v3/partner/4015781542 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.GetMarketingPartnerProductCouponStockByStockIdResponse> ExecuteGetMarketingPartnerProductCouponStockByStockIdAsync(this WechatTenpayClient client, Models.GetMarketingPartnerProductCouponStockByStockIdRequest 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
.CreateFlurlRequest(request, HttpMethod.Get, "marketing", "partner", "product-coupon", "product-coupons", request.ProductCouponId, "stocks", request.StockId)
.SetQueryParam("brand_id", request.BrandId);
return await client.SendFlurlRequestAsJsonAsync<Models.GetMarketingPartnerProductCouponStockByStockIdResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [PATCH] /marketing/partner/product-coupon/product-coupons/{product_coupon_id}/stocks/{stock_id} 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://pay.weixin.qq.com/doc/v3/partner/4015781556 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.UpdateMarketingPartnerProductCouponStockResponse> ExecuteUpdateMarketingPartnerProductCouponStockAsync(this WechatTenpayClient client, Models.UpdateMarketingPartnerProductCouponStockRequest 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
.CreateFlurlRequest(request, new HttpMethod("PATCH"), "marketing", "partner", "product-coupon", "product-coupons", request.ProductCouponId, "stocks", request.StockId);
return await client.SendFlurlRequestAsJsonAsync<Models.UpdateMarketingPartnerProductCouponStockResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [POST] /marketing/partner/product-coupon/product-coupons/{product_coupon_id}/stocks/{stock_id}/deactivate 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://pay.weixin.qq.com/doc/v3/partner/4015781532 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.DeactivateMarketingPartnerProductCouponStockResponse> ExecuteDeactivateMarketingPartnerProductCouponStockAsync(this WechatTenpayClient client, Models.DeactivateMarketingPartnerProductCouponStockRequest 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
.CreateFlurlRequest(request, HttpMethod.Post, "marketing", "partner", "product-coupon", "product-coupons", request.ProductCouponId, "stocks", request.StockId, "deactivate");
return await client.SendFlurlRequestAsJsonAsync<Models.DeactivateMarketingPartnerProductCouponStockResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [POST] /marketing/partner/product-coupon/product-coupons/{product_coupon_id}/stocks/{stock_id}/update-budget 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://pay.weixin.qq.com/doc/v3/partner/4015781561 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.UpdateMarketingPartnerProductCouponStockBudgetResponse> ExecuteUpdateMarketingPartnerProductCouponStockBudgetAsync(this WechatTenpayClient client, Models.UpdateMarketingPartnerProductCouponStockBudgetRequest 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
.CreateFlurlRequest(request, HttpMethod.Post, "marketing", "partner", "product-coupon", "product-coupons", request.ProductCouponId, "stocks", request.StockId, "update-budget");
return await client.SendFlurlRequestAsJsonAsync<Models.UpdateMarketingPartnerProductCouponStockBudgetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [POST] /marketing/partner/product-coupon/product-coupons/{product_coupon_id}/stocks/{stock_id}/upload-coupon-codes 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://pay.weixin.qq.com/doc/v3/partner/4015781572 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.UploadMarketingPartnerProductCouponStockCouponCodesResponse> ExecuteUploadMarketingPartnerProductCouponStockCouponCodesAsync(this WechatTenpayClient client, Models.UploadMarketingPartnerProductCouponStockCouponCodesRequest 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
.CreateFlurlRequest(request, HttpMethod.Post, "marketing", "partner", "product-coupon", "product-coupons", request.ProductCouponId, "stocks", request.StockId, "upload-coupon-codes");
return await client.SendFlurlRequestAsJsonAsync<Models.UploadMarketingPartnerProductCouponStockCouponCodesResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
#region /Stocks/Stores
/// <summary>
/// <para>异步调用 [POST] /marketing/partner/product-coupon/product-coupons/{product_coupon_id}/stocks/{stock_id}/associate-stores 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://pay.weixin.qq.com/doc/v3/partner/4015781302 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.AssociateMarketingPartnerProductCouponStockToStoresResponse> ExecuteAssociateMarketingPartnerProductCouponStockToStoresAsync(this WechatTenpayClient client, Models.AssociateMarketingPartnerProductCouponStockToStoresRequest 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
.CreateFlurlRequest(request, HttpMethod.Post, "marketing", "partner", "product-coupon", "product-coupons", request.ProductCouponId, "stocks", request.StockId, "associate-stores");
return await client.SendFlurlRequestAsJsonAsync<Models.AssociateMarketingPartnerProductCouponStockToStoresResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [POST] /marketing/partner/product-coupon/product-coupons/{product_coupon_id}/stocks/{stock_id}/disassociate-stores 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://pay.weixin.qq.com/doc/v3/partner/4015781537 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.DisassociateMarketingPartnerProductCouponStockFromStoresResponse> ExecuteDisassociateMarketingPartnerProductCouponStockFromStoresAsync(this WechatTenpayClient client, Models.DisassociateMarketingPartnerProductCouponStockFromStoresRequest 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
.CreateFlurlRequest(request, HttpMethod.Post, "marketing", "partner", "product-coupon", "product-coupons", request.ProductCouponId, "stocks", request.StockId, "disassociate-stores");
return await client.SendFlurlRequestAsJsonAsync<Models.DisassociateMarketingPartnerProductCouponStockFromStoresResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [GET] /marketing/partner/product-coupon/product-coupons/{product_coupon_id}/stocks/{stock_id}/associated-stores 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://pay.weixin.qq.com/doc/v3/partner/4015781546 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.QueryMarketingPartnerProductCouponStockAssociatedStoresResponse> ExecuteQueryMarketingPartnerProductCouponStockAssociatedStoresAsync(this WechatTenpayClient client, Models.QueryMarketingPartnerProductCouponStockAssociatedStoresRequest 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
.CreateFlurlRequest(request, HttpMethod.Get, "marketing", "partner", "product-coupon", "product-coupons", request.ProductCouponId, "stocks", request.StockId, "associated-stores")
.SetQueryParam("brand_id", request.BrandId)
.SetQueryParam("page_token", request.PageToken)
.SetQueryParam("page_size", request.PageSize);
return await client.SendFlurlRequestAsJsonAsync<Models.QueryMarketingPartnerProductCouponStockAssociatedStoresResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
#endregion
#endregion
#region UserCoupons
/// <summary>
/// <para>异步调用 [POST] /marketing/partner/product-coupon/users/{openid}/coupons 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://pay.weixin.qq.com/doc/v3/partner/4015781605 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.SendMarketingPartnerProductCouponUserCouponResponse> ExecuteSendMarketingPartnerProductCouponUserCouponAsync(this WechatTenpayClient client, Models.SendMarketingPartnerProductCouponUserCouponRequest 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
.CreateFlurlRequest(request, HttpMethod.Post, "marketing", "partner", "product-coupon", "users", request.OpenId, "coupons");
return await client.SendFlurlRequestAsJsonAsync<Models.SendMarketingPartnerProductCouponUserCouponResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [GET] /marketing/partner/product-coupon/users/{openid}/coupons 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://pay.weixin.qq.com/doc/v3/partner/4015781590 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.QueryMarketingPartnerProductCouponUserCouponsResponse> ExecuteQueryMarketingPartnerProductCouponUserCouponsAsync(this WechatTenpayClient client, Models.QueryMarketingPartnerProductCouponUserCouponsRequest 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
.CreateFlurlRequest(request, HttpMethod.Get, "marketing", "partner", "product-coupon", "users", request.OpenId, "coupons")
.SetQueryParam("brand_id", request.BrandId)
.SetQueryParam("product_coupon_id", request.ProductCouponId)
.SetQueryParam("stock_id", request.StockId)
.SetQueryParam("appid", request.AppId)
.SetQueryParam("coupon_state", request.CouponState)
.SetQueryParam("page_size", request.PageSize)
.SetQueryParam("page_token", request.PageToken);
return await client.SendFlurlRequestAsJsonAsync<Models.QueryMarketingPartnerProductCouponUserCouponsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [GET] /marketing/partner/product-coupon/users/{openid}/coupons/{coupon_code} 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://pay.weixin.qq.com/doc/v3/partner/4015781582 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.GetMarketingPartnerProductCouponUserCouponByCouponCodeResponse> ExecuteGetMarketingPartnerProductCouponUserCouponByCouponCodeAsync(this WechatTenpayClient client, Models.GetMarketingPartnerProductCouponUserCouponByCouponCodeRequest 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
.CreateFlurlRequest(request, HttpMethod.Get, "marketing", "partner", "product-coupon", "users", request.OpenId, "coupons", request.CouponCode)
.SetQueryParam("brand_id", request.BrandId)
.SetQueryParam("product_coupon_id", request.ProductCouponId)
.SetQueryParam("stock_id", request.StockId)
.SetQueryParam("appid", request.AppId);
return await client.SendFlurlRequestAsJsonAsync<Models.GetMarketingPartnerProductCouponUserCouponByCouponCodeResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [POST] /marketing/partner/product-coupon/users/{openid}/coupons/{coupon_code}/confirm 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://pay.weixin.qq.com/doc/v3/partner/4015781575 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ConfirmMarketingPartnerProductCouponUserCouponResponse> ExecuteConfirmMarketingPartnerProductCouponUserCouponAsync(this WechatTenpayClient client, Models.ConfirmMarketingPartnerProductCouponUserCouponRequest 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
.CreateFlurlRequest(request, HttpMethod.Post, "marketing", "partner", "product-coupon", "users", request.OpenId, "coupons", request.CouponCode, "confirm");
return await client.SendFlurlRequestAsJsonAsync<Models.ConfirmMarketingPartnerProductCouponUserCouponResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [POST] /marketing/partner/product-coupon/users/{openid}/coupons/{coupon_code}/use 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://pay.weixin.qq.com/doc/v3/partner/4015781608 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.UseMarketingPartnerProductCouponUserCouponResponse> ExecuteUseMarketingPartnerProductCouponUserCouponAsync(this WechatTenpayClient client, Models.UseMarketingPartnerProductCouponUserCouponRequest 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
.CreateFlurlRequest(request, HttpMethod.Post, "marketing", "partner", "product-coupon", "users", request.OpenId, "coupons", request.CouponCode, "use");
return await client.SendFlurlRequestAsJsonAsync<Models.UseMarketingPartnerProductCouponUserCouponResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [POST] /marketing/partner/product-coupon/users/{openid}/coupons/{coupon_code}/deactivate 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://pay.weixin.qq.com/doc/v3/partner/4015781578 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.DeactivateMarketingPartnerProductCouponUserCouponResponse> ExecuteDeactivateMarketingPartnerProductCouponUserCouponAsync(this WechatTenpayClient client, Models.DeactivateMarketingPartnerProductCouponUserCouponRequest 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
.CreateFlurlRequest(request, HttpMethod.Post, "marketing", "partner", "product-coupon", "users", request.OpenId, "coupons", request.CouponCode, "deactivate");
return await client.SendFlurlRequestAsJsonAsync<Models.DeactivateMarketingPartnerProductCouponUserCouponResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [POST] /marketing/partner/product-coupon/users/{openid}/coupons/{coupon_code}/return 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://pay.weixin.qq.com/doc/v3/partner/4015781599 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ReturnMarketingPartnerProductCouponUserCouponResponse> ExecuteReturnMarketingPartnerProductCouponUserCouponAsync(this WechatTenpayClient client, Models.ReturnMarketingPartnerProductCouponUserCouponRequest 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
.CreateFlurlRequest(request, HttpMethod.Post, "marketing", "partner", "product-coupon", "users", request.OpenId, "coupons", request.CouponCode, "return");
return await client.SendFlurlRequestAsJsonAsync<Models.ReturnMarketingPartnerProductCouponUserCouponResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
#endregion
}
}

View File

@@ -0,0 +1,293 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/product-coupon/product-coupons 接口的请求。</para>
/// </summary>
public class CreateMarketingPartnerProductCouponRequest : WechatTenpayRequest
{
public static class Types
{
public class SingleUsageInfo
{
public static class Types
{
public class NormalCoupon
{
/// <summary>
/// 获取或设置门槛金额(单位:分)。
/// </summary>
[Newtonsoft.Json.JsonProperty("threshold")]
[System.Text.Json.Serialization.JsonPropertyName("threshold")]
public int Threshold { get; set; }
/// <summary>
/// 获取或设置固定减免金额(单位:分)。
/// </summary>
[Newtonsoft.Json.JsonProperty("discount_amount")]
[System.Text.Json.Serialization.JsonPropertyName("discount_amount")]
public int DiscountAmount { get; set; }
}
public class DiscountCoupon
{
/// <summary>
/// 获取或设置门槛金额(单位:分)。
/// </summary>
[Newtonsoft.Json.JsonProperty("threshold")]
[System.Text.Json.Serialization.JsonPropertyName("threshold")]
public int Threshold { get; set; }
/// <summary>
/// 获取或设置固定减免百分比(单位:百分数)。
/// </summary>
[Newtonsoft.Json.JsonProperty("percent_off")]
[System.Text.Json.Serialization.JsonPropertyName("percent_off")]
public int PercentOff { get; set; }
}
}
/// <summary>
/// 获取或设置满减券使用规则信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("normal_coupon")]
[System.Text.Json.Serialization.JsonPropertyName("normal_coupon")]
public Types.NormalCoupon? NormalCoupon { get; set; }
/// <summary>
/// 获取或设置折扣券使用规则信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("discount_coupon")]
[System.Text.Json.Serialization.JsonPropertyName("discount_coupon")]
public Types.DiscountCoupon? DiscountCoupon { get; set; }
}
public class SequentialUsageInfo
{
/// <summary>
/// 获取或设置多次优惠规则类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("type")]
[System.Text.Json.Serialization.JsonPropertyName("type")]
public string Type { get; set; } = string.Empty;
/// <summary>
/// 获取或设置可使用次数。
/// </summary>
[Newtonsoft.Json.JsonProperty("count")]
[System.Text.Json.Serialization.JsonPropertyName("count")]
public int Count { get; set; }
/// <summary>
/// 获取或设置有效天数。
/// </summary>
[Newtonsoft.Json.JsonProperty("available_days")]
[System.Text.Json.Serialization.JsonPropertyName("available_days")]
public int? AvailableDays { get; set; }
/// <summary>
/// 获取或设置使用间隔天数。
/// </summary>
[Newtonsoft.Json.JsonProperty("interval_days")]
[System.Text.Json.Serialization.JsonPropertyName("interval_days")]
public int? IntervalDays { get; set; }
}
public class DisplayInfo
{
public static class Types
{
public class ComboPackage
{
public static class Types
{
public class Choice
{
/// <summary>
/// 获取或设置单品名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("name")]
[System.Text.Json.Serialization.JsonPropertyName("name")]
public string Name { get; set; } = string.Empty;
/// <summary>
/// 获取或设置单品图片 URL。
/// </summary>
[Newtonsoft.Json.JsonProperty("image_url")]
[System.Text.Json.Serialization.JsonPropertyName("image_url")]
public string? ImageUrl { get; set; }
/// <summary>
/// 获取或设置跳转小程序 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("mini_program_appid")]
[System.Text.Json.Serialization.JsonPropertyName("mini_program_appid")]
public string? MiniProgramAppId { get; set; }
/// <summary>
/// 获取或设置跳转小程序页面路径。
/// </summary>
[Newtonsoft.Json.JsonProperty("mini_program_path")]
[System.Text.Json.Serialization.JsonPropertyName("mini_program_path")]
public string? MiniProgramPagePath { get; set; }
/// <summary>
/// 获取或设置单品价格(单位:分)。
/// </summary>
[Newtonsoft.Json.JsonProperty("price")]
[System.Text.Json.Serialization.JsonPropertyName("price")]
public int Price { get; set; }
/// <summary>
/// 获取或设置单品数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("count")]
[System.Text.Json.Serialization.JsonPropertyName("count")]
public int Count { 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("pick_count")]
[System.Text.Json.Serialization.JsonPropertyName("pick_count")]
public int PickCount { get; set; }
/// <summary>
/// 获取或设置单品列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("choice_list")]
[System.Text.Json.Serialization.JsonPropertyName("choice_list")]
public IList<Types.Choice> ChoiceList { get; set; } = new List<Types.Choice>();
}
}
/// <summary>
/// 获取或设置商品券名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("name")]
[System.Text.Json.Serialization.JsonPropertyName("name")]
public string Name { get; set; } = string.Empty;
/// <summary>
/// 获取或设置商品图片 URL。
/// </summary>
[Newtonsoft.Json.JsonProperty("image_url")]
[System.Text.Json.Serialization.JsonPropertyName("image_url")]
public string ImageUrl { get; set; } = string.Empty;
/// <summary>
/// 获取或设置背景图片 URL。
/// </summary>
[Newtonsoft.Json.JsonProperty("background_url")]
[System.Text.Json.Serialization.JsonPropertyName("background_url")]
public string BackgroundUrl { get; set; } = string.Empty;
/// <summary>
/// 获取或设置详情图片 URL 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("detail_image_url_list")]
[System.Text.Json.Serialization.JsonPropertyName("detail_image_url_list")]
public IList<string>? DetailImageUrlList { get; set; }
/// <summary>
/// 获取或设置商品原价。
/// </summary>
[Newtonsoft.Json.JsonProperty("original_price")]
[System.Text.Json.Serialization.JsonPropertyName("original_price")]
public int? OriginalPrice { get; set; }
/// <summary>
/// 获取或设置套餐组合列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("combo_package_list")]
[System.Text.Json.Serialization.JsonPropertyName("combo_package_list")]
public IList<Types.ComboPackage>? ComboPackageList { get; set; }
}
public class StockInfo : CreateMarketingPartnerProductCouponStockRequest.Types.StockInfo
{
}
}
/// <summary>
/// 获取或设置品牌 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("brand_id")]
[System.Text.Json.Serialization.JsonPropertyName("brand_id")]
public string BrandId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置商户请求单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("out_request_no")]
[System.Text.Json.Serialization.JsonPropertyName("out_request_no")]
public string OutRequestNumebr { get; set; } = string.Empty;
/// <summary>
/// 获取或设置优惠范围。
/// </summary>
[Newtonsoft.Json.JsonProperty("scope")]
[System.Text.Json.Serialization.JsonPropertyName("scope")]
public string Scope { get; set; } = string.Empty;
/// <summary>
/// 获取或设置商品券类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("type")]
[System.Text.Json.Serialization.JsonPropertyName("type")]
public string Type { get; set; } = string.Empty;
/// <summary>
/// 获取或设置使用模式。
/// </summary>
[Newtonsoft.Json.JsonProperty("usage_mode")]
[System.Text.Json.Serialization.JsonPropertyName("usage_mode")]
public string UsageMode { get; set; } = string.Empty;
/// <summary>
/// 获取或设置单券模式信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("single_usage_info")]
[System.Text.Json.Serialization.JsonPropertyName("single_usage_info")]
public Types.SingleUsageInfo? SingleUsageInfo { get; set; }
/// <summary>
/// 获取或设置多次优惠模式信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("sequential_usage_info")]
[System.Text.Json.Serialization.JsonPropertyName("sequential_usage_info")]
public Types.SequentialUsageInfo? SequentialUsageInfo { get; set; }
/// <summary>
/// 获取或设置展示信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("display_info")]
[System.Text.Json.Serialization.JsonPropertyName("display_info")]
public Types.DisplayInfo DisplayInfo { get; set; } = new Types.DisplayInfo();
/// <summary>
/// 获取或设置外部商品 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("out_product_no")]
[System.Text.Json.Serialization.JsonPropertyName("out_product_no")]
public string? OutProductNumber { get; set; }
/// <summary>
/// 获取或设置批次信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("stock")]
[System.Text.Json.Serialization.JsonPropertyName("stock")]
public Types.StockInfo? StockInfo { get; set; }
}
}

View File

@@ -0,0 +1,22 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/product-coupon/product-coupons 接口的响应。</para>
/// </summary>
public class CreateMarketingPartnerProductCouponResponse : GetMarketingPartnerProductCouponByProductCouponIdResponse
{
public static new class Types
{
public class StockInfo : QueryMarketingPartnerProductCouponStocksResponse.Types.Stock
{
}
}
/// <summary>
/// 获取或设置批次信息1。
/// </summary>
[Newtonsoft.Json.JsonProperty("stock")]
[System.Text.Json.Serialization.JsonPropertyName("stock")]
public Types.StockInfo? StockInfo { get; set; }
}
}

View File

@@ -0,0 +1,36 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/product-coupon/product-coupons/{product_coupon_id}/deactivate 接口的请求。</para>
/// </summary>
public class DeactivateMarketingPartnerProductCouponRequest : WechatTenpayRequest
{
/// <summary>
/// 获取或设置商品券 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string ProductCouponId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置品牌 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("brand_id")]
[System.Text.Json.Serialization.JsonPropertyName("brand_id")]
public string BrandId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置商户请求单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("out_request_no")]
[System.Text.Json.Serialization.JsonPropertyName("out_request_no")]
public string OutRequestNumber { get; set; } = string.Empty;
/// <summary>
/// 获取或设置失效原因。
/// </summary>
[Newtonsoft.Json.JsonProperty("deactivate_reason")]
[System.Text.Json.Serialization.JsonPropertyName("deactivate_reason")]
public string Reason { get; set; } = string.Empty;
}
}

View File

@@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/product-coupon/product-coupons/{product_coupon_id}/deactivate 接口的响应。</para>
/// </summary>
public class DeactivateMarketingPartnerProductCouponResponse : GetMarketingPartnerProductCouponByProductCouponIdResponse
{
}
}

View File

@@ -0,0 +1,22 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [GET] /marketing/partner/product-coupon/product-coupons/{product_coupon_id} 接口的请求。</para>
/// </summary>
public class GetMarketingPartnerProductCouponByProductCouponIdRequest : WechatTenpayRequest
{
/// <summary>
/// 获取或设置商品券 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string ProductCouponId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置品牌 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string BrandId { get; set; } = string.Empty;
}
}

View File

@@ -0,0 +1,311 @@
using System;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [GET] /marketing/partner/product-coupon/product-coupons/{product_coupon_id} 接口的响应。</para>
/// </summary>
public class GetMarketingPartnerProductCouponByProductCouponIdResponse : WechatTenpayResponse
{
public static class Types
{
public class SingleUsageInfo
{
public static class Types
{
public class NormalCoupon
{
/// <summary>
/// 获取或设置门槛金额(单位:分)。
/// </summary>
[Newtonsoft.Json.JsonProperty("threshold")]
[System.Text.Json.Serialization.JsonPropertyName("threshold")]
public int Threshold { get; set; }
/// <summary>
/// 获取或设置固定减免金额(单位:分)。
/// </summary>
[Newtonsoft.Json.JsonProperty("discount_amount")]
[System.Text.Json.Serialization.JsonPropertyName("discount_amount")]
public int DiscountAmount { get; set; }
}
public class DiscountCoupon
{
/// <summary>
/// 获取或设置门槛金额(单位:分)。
/// </summary>
[Newtonsoft.Json.JsonProperty("threshold")]
[System.Text.Json.Serialization.JsonPropertyName("threshold")]
public int Threshold { get; set; }
/// <summary>
/// 获取或设置固定减免百分比(单位:百分数)。
/// </summary>
[Newtonsoft.Json.JsonProperty("percent_off")]
[System.Text.Json.Serialization.JsonPropertyName("percent_off")]
public int PercentOff { get; set; }
}
}
/// <summary>
/// 获取或设置满减券使用规则信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("normal_coupon")]
[System.Text.Json.Serialization.JsonPropertyName("normal_coupon")]
public Types.NormalCoupon? NormalCoupon { get; set; }
/// <summary>
/// 获取或设置折扣券使用规则信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("discount_coupon")]
[System.Text.Json.Serialization.JsonPropertyName("discount_coupon")]
public Types.DiscountCoupon? DiscountCoupon { get; set; }
}
public class SequentialUsageInfo
{
/// <summary>
/// 获取或设置多次优惠规则类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("type")]
[System.Text.Json.Serialization.JsonPropertyName("type")]
public string Type { get; set; } = default!;
/// <summary>
/// 获取或设置可使用次数。
/// </summary>
[Newtonsoft.Json.JsonProperty("count")]
[System.Text.Json.Serialization.JsonPropertyName("count")]
public int Count { get; set; }
/// <summary>
/// 获取或设置有效天数。
/// </summary>
[Newtonsoft.Json.JsonProperty("available_days")]
[System.Text.Json.Serialization.JsonPropertyName("available_days")]
public int? AvailableDays { get; set; }
/// <summary>
/// 获取或设置使用间隔天数。
/// </summary>
[Newtonsoft.Json.JsonProperty("interval_days")]
[System.Text.Json.Serialization.JsonPropertyName("interval_days")]
public int? IntervalDays { get; set; }
}
public class DisplayInfo
{
public static class Types
{
public class ComboPackage
{
public static class Types
{
public class Choice
{
/// <summary>
/// 获取或设置单品名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("name")]
[System.Text.Json.Serialization.JsonPropertyName("name")]
public string Name { get; set; } = default!;
/// <summary>
/// 获取或设置单品图片 URL。
/// </summary>
[Newtonsoft.Json.JsonProperty("image_url")]
[System.Text.Json.Serialization.JsonPropertyName("image_url")]
public string? ImageUrl { get; set; }
/// <summary>
/// 获取或设置跳转小程序 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("mini_program_appid")]
[System.Text.Json.Serialization.JsonPropertyName("mini_program_appid")]
public string? MiniProgramAppId { get; set; }
/// <summary>
/// 获取或设置跳转小程序页面路径。
/// </summary>
[Newtonsoft.Json.JsonProperty("mini_program_path")]
[System.Text.Json.Serialization.JsonPropertyName("mini_program_path")]
public string? MiniProgramPagePath { get; set; }
/// <summary>
/// 获取或设置单品价格(单位:分)。
/// </summary>
[Newtonsoft.Json.JsonProperty("price")]
[System.Text.Json.Serialization.JsonPropertyName("price")]
public int Price { get; set; }
/// <summary>
/// 获取或设置单品数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("count")]
[System.Text.Json.Serialization.JsonPropertyName("count")]
public int Count { get; set; }
}
}
/// <summary>
/// 获取或设置套餐名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("name")]
[System.Text.Json.Serialization.JsonPropertyName("name")]
public string Name { get; set; } = default!;
/// <summary>
/// 获取或设置可选单品数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("pick_count")]
[System.Text.Json.Serialization.JsonPropertyName("pick_count")]
public int PickCount { get; set; }
/// <summary>
/// 获取或设置单品列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("choice_list")]
[System.Text.Json.Serialization.JsonPropertyName("choice_list")]
public Types.Choice[] ChoiceList { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置商品券名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("name")]
[System.Text.Json.Serialization.JsonPropertyName("name")]
public string Name { get; set; } = default!;
/// <summary>
/// 获取或设置商品图片 URL。
/// </summary>
[Newtonsoft.Json.JsonProperty("image_url")]
[System.Text.Json.Serialization.JsonPropertyName("image_url")]
public string ImageUrl { get; set; } = default!;
/// <summary>
/// 获取或设置背景图片 URL。
/// </summary>
[Newtonsoft.Json.JsonProperty("background_url")]
[System.Text.Json.Serialization.JsonPropertyName("background_url")]
public string BackgroundUrl { get; set; } = default!;
/// <summary>
/// 获取或设置详情图片 URL 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("detail_image_url_list")]
[System.Text.Json.Serialization.JsonPropertyName("detail_image_url_list")]
public string[]? DetailImageUrlList { get; set; }
/// <summary>
/// 获取或设置商品原价。
/// </summary>
[Newtonsoft.Json.JsonProperty("original_price")]
[System.Text.Json.Serialization.JsonPropertyName("original_price")]
public int? OriginalPrice { get; set; }
/// <summary>
/// 获取或设置套餐组合列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("combo_package_list")]
[System.Text.Json.Serialization.JsonPropertyName("combo_package_list")]
public Types.ComboPackage[]? ComboPackageList { get; set; }
}
}
/// <summary>
/// 获取或设置商品券 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("product_coupon_id")]
[System.Text.Json.Serialization.JsonPropertyName("product_coupon_id")]
public string ProductCouponId { get; set; } = default!;
/// <summary>
/// 获取或设置品牌 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("brand_id")]
[System.Text.Json.Serialization.JsonPropertyName("brand_id")]
public string BrandId { get; set; } = default!;
/// <summary>
/// 获取或设置优惠范围。
/// </summary>
[Newtonsoft.Json.JsonProperty("scope")]
[System.Text.Json.Serialization.JsonPropertyName("scope")]
public string Scope { get; set; } = default!;
/// <summary>
/// 获取或设置商品券类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("type")]
[System.Text.Json.Serialization.JsonPropertyName("type")]
public string Type { get; set; } = default!;
/// <summary>
/// 获取或设置使用模式。
/// </summary>
[Newtonsoft.Json.JsonProperty("usage_mode")]
[System.Text.Json.Serialization.JsonPropertyName("usage_mode")]
public string UsageMode { get; set; } = default!;
/// <summary>
/// 获取或设置单券模式信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("single_usage_info")]
[System.Text.Json.Serialization.JsonPropertyName("single_usage_info")]
public Types.SingleUsageInfo? SingleUsageInfo { get; set; }
/// <summary>
/// 获取或设置多次优惠模式信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("sequential_usage_info")]
[System.Text.Json.Serialization.JsonPropertyName("sequential_usage_info")]
public Types.SequentialUsageInfo? SequentialUsageInfo { get; set; }
/// <summary>
/// 获取或设置展示信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("display_info")]
[System.Text.Json.Serialization.JsonPropertyName("display_info")]
public Types.DisplayInfo DisplayInfo { get; set; } = default!;
/// <summary>
/// 获取或设置外部商品 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("out_product_no")]
[System.Text.Json.Serialization.JsonPropertyName("out_product_no")]
public string? OutProductNumber { get; set; }
/// <summary>
/// 获取或设置商品券状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("state")]
[System.Text.Json.Serialization.JsonPropertyName("state")]
public string State { get; set; } = default!;
/// <summary>
/// 获取或设置失效请求单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("deactivate_request_no")]
[System.Text.Json.Serialization.JsonPropertyName("deactivate_request_no")]
public string? DeactivateOutRequestNumber { get; set; }
/// <summary>
/// 获取或设置失效时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("deactivate_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("deactivate_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
public DateTimeOffset? DeactivateTime { get; set; }
/// <summary>
/// 获取或设置失效原因。
/// </summary>
[Newtonsoft.Json.JsonProperty("deactivate_reason")]
[System.Text.Json.Serialization.JsonPropertyName("deactivate_reason")]
public string? DeactivateReason { get; set; }
}
}

View File

@@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [GET] /marketing/partner/product-coupon/notify-configs 接口的请求。</para>
/// </summary>
public class GetMarketingPartnerProductCouponNotifyConfigRequest : WechatTenpayRequest
{
}
}

View File

@@ -0,0 +1,26 @@
using System;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [GET] /marketing/partner/product-coupon/notify-configs 接口的响应。</para>
/// </summary>
public class GetMarketingPartnerProductCouponNotifyConfigResponse : WechatTenpayResponse
{
/// <summary>
/// 获取或设置回调通知地址。
/// </summary>
[Newtonsoft.Json.JsonProperty("notify_url")]
[System.Text.Json.Serialization.JsonPropertyName("notify_url")]
public string NotifyUrl { get; set; } = default!;
/// <summary>
/// 获取或设置更新时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("update_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("update_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
public DateTimeOffset UpdateTime { get; set; } = default!;
}
}

View File

@@ -0,0 +1,15 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/product-coupon/notify-configs 接口的请求。</para>
/// </summary>
public class UpdateMarketingPartnerProductCouponNotifyConfigRequest : WechatTenpayRequest
{
/// <summary>
/// 获取或设置回调通知地址。
/// </summary>
[Newtonsoft.Json.JsonProperty("notify_url")]
[System.Text.Json.Serialization.JsonPropertyName("notify_url")]
public string NotifyUrl { get; set; } = string.Empty;
}
}

View File

@@ -0,0 +1,11 @@
using System;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/product-coupon/notify-configs 接口的响应。</para>
/// </summary>
public class UpdateMarketingPartnerProductCouponNotifyConfigResponse : GetMarketingPartnerProductCouponNotifyConfigResponse
{
}
}

View File

@@ -0,0 +1,556 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/product-coupon/product-coupons/{product_coupon_id}/stocks 接口的请求。</para>
/// </summary>
public class CreateMarketingPartnerProductCouponStockRequest : WechatTenpayRequest
{
public static class Types
{
public class StockInfo
{
public static class Types
{
public class SendRule
{
/// <summary>
/// 获取或设置发放次数总上限。
/// </summary>
[Newtonsoft.Json.JsonProperty("max_count")]
[System.Text.Json.Serialization.JsonPropertyName("max_count")]
public int MaxCount { get; set; }
/// <summary>
/// 获取或设置每日发放次数上限。
/// </summary>
[Newtonsoft.Json.JsonProperty("max_count_per_day")]
[System.Text.Json.Serialization.JsonPropertyName("max_count_per_day")]
public int? MaxCountPerDay { get; set; }
/// <summary>
/// 获取或设置每个用户领取次数上限。
/// </summary>
[Newtonsoft.Json.JsonProperty("max_count_per_user")]
[System.Text.Json.Serialization.JsonPropertyName("max_count_per_user")]
public int? MaxCountPerUser { get; set; }
}
public class UsageRule
{
public static class Types
{
public class AvailablePeriod
{
public static class Types
{
public class WeeklyPeriod
{
/// <summary>
/// 获取或设置每周可用星期数列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("day_list")]
[System.Text.Json.Serialization.JsonPropertyName("day_list")]
public IList<string>? DayList { get; set; }
/// <summary>
/// 获取或设置当天可用时间段列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("day_period_list")]
[System.Text.Json.Serialization.JsonPropertyName("day_period_list")]
public IList<DayPeriod>? DayPeriodList { get; set; }
}
public class DayPeriod
{
/// <summary>
/// 获取或设置当天可用开始时间(单位:秒)。
/// </summary>
[Newtonsoft.Json.JsonProperty("begin_time")]
[System.Text.Json.Serialization.JsonPropertyName("begin_time")]
public int BeginTime { get; set; }
/// <summary>
/// 获取或设置当天可用结束时间(单位:秒)。
/// </summary>
[Newtonsoft.Json.JsonProperty("end_time")]
[System.Text.Json.Serialization.JsonPropertyName("end_time")]
public int EndTime { get; set; }
}
public class IrregularPeriod
{
/// <summary>
/// 获取或设置开始时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("begin_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("begin_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
public DateTimeOffset BeginTime { get; set; }
/// <summary>
/// 获取或设置结束时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("end_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("end_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
public DateTimeOffset EndTime { get; set; }
}
}
/// <summary>
/// 获取或设置开始时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("available_begin_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("available_begin_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
public DateTimeOffset BeginTime { get; set; }
/// <summary>
/// 获取或设置结束时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("available_end_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("available_end_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
public DateTimeOffset EndTime { get; set; }
/// <summary>
/// 获取或设置生效后 N 天内有效。
/// </summary>
[Newtonsoft.Json.JsonProperty("available_days")]
[System.Text.Json.Serialization.JsonPropertyName("available_days")]
public int? AvailableDays { get; set; }
/// <summary>
/// 获取或设置领取后 N 天开始生效。
/// </summary>
[Newtonsoft.Json.JsonProperty("wait_days_after_receive")]
[System.Text.Json.Serialization.JsonPropertyName("wait_days_after_receive")]
public int? WaitDaysAfterReceive { get; set; }
/// <summary>
/// 获取或设置每周固定可用时间信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("weekly_available_period")]
[System.Text.Json.Serialization.JsonPropertyName("weekly_available_period")]
public Types.WeeklyPeriod? WeeklyPeriod { get; set; }
/// <summary>
/// 获取或设置无规律的可用时间段信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("irregular_available_period_list")]
[System.Text.Json.Serialization.JsonPropertyName("irregular_available_period_list")]
public IList<Types.IrregularPeriod>? IrregularPeriodList { get; set; }
}
public class NormalCoupon
{
/// <summary>
/// 获取或设置门槛金额(单位:分)。
/// </summary>
[Newtonsoft.Json.JsonProperty("threshold")]
[System.Text.Json.Serialization.JsonPropertyName("threshold")]
public int Threshold { get; set; }
/// <summary>
/// 获取或设置固定减免金额(单位:分)。
/// </summary>
[Newtonsoft.Json.JsonProperty("discount_amount")]
[System.Text.Json.Serialization.JsonPropertyName("discount_amount")]
public int DiscountAmount { get; set; }
}
public class DiscountCoupon
{
/// <summary>
/// 获取或设置门槛金额(单位:分)。
/// </summary>
[Newtonsoft.Json.JsonProperty("threshold")]
[System.Text.Json.Serialization.JsonPropertyName("threshold")]
public int Threshold { get; set; }
/// <summary>
/// 获取或设置固定减免百分比(单位:百分数)。
/// </summary>
[Newtonsoft.Json.JsonProperty("percent_off")]
[System.Text.Json.Serialization.JsonPropertyName("percent_off")]
public int PercentOff { get; set; }
}
public class ExchangeCoupon
{
/// <summary>
/// 获取或设置门槛金额(单位:分)。
/// </summary>
[Newtonsoft.Json.JsonProperty("threshold")]
[System.Text.Json.Serialization.JsonPropertyName("threshold")]
public int Threshold { get; set; }
/// <summary>
/// 获取或设置固定兑换价格(单位:分)。
/// </summary>
[Newtonsoft.Json.JsonProperty("exchange_price")]
[System.Text.Json.Serialization.JsonPropertyName("exchange_price")]
public int ExchangePrice { get; set; }
}
}
}
public class SingleUsageRule : UsageRule
{
/// <summary>
/// 获取或设置券可核销时间信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_available_period")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_available_period")]
public Types.AvailablePeriod AvailablePeriod { get; set; } = new Types.AvailablePeriod();
/// <summary>
/// 获取或设置满减券使用规则信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("normal_coupon")]
[System.Text.Json.Serialization.JsonPropertyName("normal_coupon")]
public Types.NormalCoupon? NormalCoupon { get; set; }
/// <summary>
/// 获取或设置折扣券使用规则信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("discount_coupon")]
[System.Text.Json.Serialization.JsonPropertyName("discount_coupon")]
public Types.DiscountCoupon? DiscountCoupon { get; set; }
/// <summary>
/// 获取或设置兑换券使用规则信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("exchange_coupon")]
[System.Text.Json.Serialization.JsonPropertyName("exchange_coupon")]
public Types.ExchangeCoupon? ExchangeCoupon { get; set; }
}
public class SequentialUsageRule : UsageRule
{
/// <summary>
/// 获取或设置券可核销时间信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_available_period")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_available_period")]
public Types.AvailablePeriod AvailablePeriod { get; set; } = new Types.AvailablePeriod();
/// <summary>
/// 获取或设置满减券使用规则列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("normal_coupon_list")]
[System.Text.Json.Serialization.JsonPropertyName("normal_coupon_list")]
public IList<Types.NormalCoupon>? NormalCouponList { get; set; }
/// <summary>
/// 获取或设置折扣券使用规则列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("discount_coupon_list")]
[System.Text.Json.Serialization.JsonPropertyName("discount_coupon_list")]
public IList<Types.DiscountCoupon>? DiscountCouponList { get; set; }
/// <summary>
/// 获取或设置兑换券使用规则列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("exchange_coupon_list")]
[System.Text.Json.Serialization.JsonPropertyName("exchange_coupon_list")]
public IList<Types.ExchangeCoupon>? ExchangeCouponList { get; set; }
/// <summary>
/// 获取或设置是否提供首笔特惠。
/// </summary>
[Newtonsoft.Json.JsonProperty("special_first")]
[System.Text.Json.Serialization.JsonPropertyName("special_first")]
public bool? IsSpecialFirst { get; set; }
}
public class UsageRuleDisplayInfo
{
public static class Types
{
public class AvailableStore
{
/// <summary>
/// 获取或设置可用门店描述。
/// </summary>
[Newtonsoft.Json.JsonProperty("description")]
[System.Text.Json.Serialization.JsonPropertyName("description")]
public string Description { get; set; } = string.Empty;
/// <summary>
/// 获取或设置门店小程序 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("mini_program_appid")]
[System.Text.Json.Serialization.JsonPropertyName("mini_program_appid")]
public string? MiniProgramAppId { get; set; }
/// <summary>
/// 获取或设置门店小程序页面路径。
/// </summary>
[Newtonsoft.Json.JsonProperty("mini_program_path")]
[System.Text.Json.Serialization.JsonPropertyName("mini_program_path")]
public string? MiniProgramPagePath { get; set; }
}
}
/// <summary>
/// 获取或设置券使用方式列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_usage_method_list")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_usage_method_list")]
public IList<string> UsageMethodList { get; set; } = new List<string>();
/// <summary>
/// 获取或设置券使用说明。
/// </summary>
[Newtonsoft.Json.JsonProperty("usage_description")]
[System.Text.Json.Serialization.JsonPropertyName("usage_description")]
public string? UsageDescription { get; set; }
/// <summary>
/// 获取或设置品牌方小程序 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("mini_program_appid")]
[System.Text.Json.Serialization.JsonPropertyName("mini_program_appid")]
public string? MiniProgramAppId { get; set; }
/// <summary>
/// 获取或设置品牌方小程序页面路径。
/// </summary>
[Newtonsoft.Json.JsonProperty("mini_program_path")]
[System.Text.Json.Serialization.JsonPropertyName("mini_program_path")]
public string? MiniProgramPagePath { get; set; }
/// <summary>
/// 获取或设置品牌方 App 跳转路径。
/// </summary>
[Newtonsoft.Json.JsonProperty("app_path")]
[System.Text.Json.Serialization.JsonPropertyName("app_path")]
public string? AppPath { get; set; }
/// <summary>
/// 获取或设置可用门店信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_available_store_info")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_available_store_info")]
public Types.AvailableStore? AvailableStore { get; set; }
}
public class CouponDisplayInfo
{
public static class Types
{
public class EntranceMiniProgram
{
/// <summary>
/// 获取或设置小程序 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("appid")]
[System.Text.Json.Serialization.JsonPropertyName("appid")]
public string AppId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置小程序页面路径。
/// </summary>
[Newtonsoft.Json.JsonProperty("path")]
[System.Text.Json.Serialization.JsonPropertyName("path")]
public string PagePath { get; set; } = string.Empty;
/// <summary>
/// 获取或设置入口文案。
/// </summary>
[Newtonsoft.Json.JsonProperty("entrance_wording")]
[System.Text.Json.Serialization.JsonPropertyName("entrance_wording")]
public string EntranceWording { get; set; } = string.Empty;
/// <summary>
/// 获取或设置引导文案。
/// </summary>
[Newtonsoft.Json.JsonProperty("guidance_wording")]
[System.Text.Json.Serialization.JsonPropertyName("guidance_wording")]
public string GuidanceWording { get; set; } = string.Empty;
}
public class EntranceOfficalAccount
{
/// <summary>
/// 获取或设置公众号 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("appid")]
[System.Text.Json.Serialization.JsonPropertyName("appid")]
public string AppId { get; set; } = string.Empty;
}
public class EntranceFinder
{
/// <summary>
/// 获取或设置视频号 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("finder_id")]
[System.Text.Json.Serialization.JsonPropertyName("finder_id")]
public string FinderId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置视频 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("finder_video_id")]
[System.Text.Json.Serialization.JsonPropertyName("finder_video_id")]
public string VideoId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置视频封面图 URL。
/// </summary>
[Newtonsoft.Json.JsonProperty("finder_video_cover_image_url")]
[System.Text.Json.Serialization.JsonPropertyName("finder_video_cover_image_url")]
public string VideoCoverImageUrl { get; set; } = string.Empty;
}
}
/// <summary>
/// 获取或设置券 Code 展示模式。
/// </summary>
[Newtonsoft.Json.JsonProperty("code_display_mode")]
[System.Text.Json.Serialization.JsonPropertyName("code_display_mode")]
public string CodeDisplayMode { get; set; } = string.Empty;
/// <summary>
/// 获取或设置背景颜色。
/// </summary>
[Newtonsoft.Json.JsonProperty("background_color")]
[System.Text.Json.Serialization.JsonPropertyName("background_color")]
public string? BackgroundColor { get; set; }
/// <summary>
/// 获取或设置小程序入口信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("entrance_mini_program")]
[System.Text.Json.Serialization.JsonPropertyName("entrance_mini_program")]
public Types.EntranceMiniProgram? EntranceMiniProgram { get; set; }
/// <summary>
/// 获取或设置公众号入口信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("entrance_official_account")]
[System.Text.Json.Serialization.JsonPropertyName("entrance_official_account")]
public Types.EntranceOfficalAccount? EntranceOfficalAccount { get; set; }
/// <summary>
/// 获取或设置视频号入口信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("entrance_finder")]
[System.Text.Json.Serialization.JsonPropertyName("entrance_finder")]
public Types.EntranceFinder? EntranceFinder { get; set; }
}
public class NotifyConfig
{
/// <summary>
/// 获取或设置公众号或小程序 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("notify_appid")]
[System.Text.Json.Serialization.JsonPropertyName("notify_appid")]
public string AppId { get; set; } = string.Empty;
}
}
/// <summary>
/// 获取或设置券 Code 分配模式。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_code_mode")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_code_mode")]
public string CouponCodeMode { get; set; } = string.Empty;
/// <summary>
/// 获取或设置发放规则信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("stock_send_rule")]
[System.Text.Json.Serialization.JsonPropertyName("stock_send_rule")]
public Types.SendRule SendRule { get; set; } = new Types.SendRule();
/// <summary>
/// 获取或设置单券使用规则信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("single_usage_rule")]
[System.Text.Json.Serialization.JsonPropertyName("single_usage_rule")]
public Types.SingleUsageRule? SingleUsageRule { get; set; }
/// <summary>
/// 获取或设置多次优惠使用规则信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("sequential_usage_rule")]
[System.Text.Json.Serialization.JsonPropertyName("sequential_usage_rule")]
public Types.SequentialUsageRule? SequentialUsageRule { get; set; }
/// <summary>
/// 获取或设置使用规则展示信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("usage_rule_display_info")]
[System.Text.Json.Serialization.JsonPropertyName("usage_rule_display_info")]
public Types.UsageRuleDisplayInfo UsageRuleDisplayInfo { get; set; } = new Types.UsageRuleDisplayInfo();
/// <summary>
/// 获取或设置商品券展示信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_display_info")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_display_info")]
public Types.CouponDisplayInfo CouponDisplayInfo { get; set; } = new Types.CouponDisplayInfo();
/// <summary>
/// 获取或设置可用门店范围。
/// </summary>
[Newtonsoft.Json.JsonProperty("store_scope")]
[System.Text.Json.Serialization.JsonPropertyName("store_scope")]
public string StoreScope { get; set; } = string.Empty;
/// <summary>
/// 获取或设置事件通知配置信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("notify_config")]
[System.Text.Json.Serialization.JsonPropertyName("notify_config")]
public Types.NotifyConfig? NotifyConfig { get; set; }
/// <summary>
/// 获取或设置备注。
/// </summary>
[Newtonsoft.Json.JsonProperty("remark")]
[System.Text.Json.Serialization.JsonPropertyName("remark")]
public string? Remark { get; set; }
}
}
/// <summary>
/// 获取或设置商品券 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string ProductCouponId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置品牌 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("brand_id")]
[System.Text.Json.Serialization.JsonPropertyName("brand_id")]
public string BrandId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置商户请求单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("out_request_no")]
[System.Text.Json.Serialization.JsonPropertyName("out_request_no")]
public string OutRequestNumebr { get; set; } = string.Empty;
/// <summary>
/// 获取或设置批次信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("stock")]
[System.Text.Json.Serialization.JsonPropertyName("stock")]
public Types.StockInfo? StockInfo { get; set; }
}
}

View File

@@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/product-coupon/product-coupons/{product_coupon_id}/stocks 接口的响应。</para>
/// </summary>
public class CreateMarketingPartnerProductCouponStockResponse : GetMarketingPartnerProductCouponStockByStockIdResponse
{
}
}

View File

@@ -0,0 +1,43 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/product-coupon/product-coupons/{product_coupon_id}/stocks/{stock_id}/deactivate 接口的请求。</para>
/// </summary>
public class DeactivateMarketingPartnerProductCouponStockRequest : WechatTenpayRequest
{
/// <summary>
/// 获取或设置商品券 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string ProductCouponId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置品牌 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("brand_id")]
[System.Text.Json.Serialization.JsonPropertyName("brand_id")]
public string BrandId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置批次 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string StockId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置商户请求单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("out_request_no")]
[System.Text.Json.Serialization.JsonPropertyName("out_request_no")]
public string OutRequestNumebr { get; set; } = string.Empty;
/// <summary>
/// 获取或设置失效原因。
/// </summary>
[Newtonsoft.Json.JsonProperty("deactivate_reason")]
[System.Text.Json.Serialization.JsonPropertyName("deactivate_reason")]
public string Reason { get; set; } = string.Empty;
}
}

View File

@@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/product-coupon/product-coupons/{product_coupon_id}/stocks/{stock_id}/deactivate 接口的响应。</para>
/// </summary>
public class DeactivateMarketingPartnerProductCouponStockResponse : GetMarketingPartnerProductCouponStockByStockIdResponse
{
}
}

View File

@@ -0,0 +1,29 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [GET] /marketing/partner/product-coupon/product-coupons/{product_coupon_id}/stocks/{stock_id} 接口的请求。</para>
/// </summary>
public class GetMarketingPartnerProductCouponStockByStockIdRequest : WechatTenpayRequest
{
/// <summary>
/// 获取或设置商品券 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string ProductCouponId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置品牌 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string BrandId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置批次 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string StockId { get; set; } = string.Empty;
}
}

View File

@@ -0,0 +1,173 @@
using System;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [GET] /marketing/partner/product-coupon/product-coupons/{product_coupon_id}/stocks/{stock_id} 接口的响应。</para>
/// </summary>
public class GetMarketingPartnerProductCouponStockByStockIdResponse : WechatTenpayResponse
{
public static class Types
{
public class SendRule : QueryMarketingPartnerProductCouponStocksResponse.Types.Stock.Types.SendRule
{
}
public class SingleUsageRule : QueryMarketingPartnerProductCouponStocksResponse.Types.Stock.Types.SingleUsageRule
{
}
public class SequentialUsageRule : QueryMarketingPartnerProductCouponStocksResponse.Types.Stock.Types.SequentialUsageRule
{
}
public class UsageRuleDisplayInfo : QueryMarketingPartnerProductCouponStocksResponse.Types.Stock.Types.UsageRuleDisplayInfo
{
}
public class CouponDisplayInfo : QueryMarketingPartnerProductCouponStocksResponse.Types.Stock.Types.CouponDisplayInfo
{
}
public class NotifyConfig : QueryMarketingPartnerProductCouponStocksResponse.Types.Stock.Types.NotifyConfig
{
}
public class CodeCountInfo : QueryMarketingPartnerProductCouponStocksResponse.Types.Stock.Types.CodeCountInfo
{
}
public class SentCountInfo : QueryMarketingPartnerProductCouponStocksResponse.Types.Stock.Types.SentCountInfo
{
}
}
/// <summary>
/// 获取或设置商品券 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("product_coupon_id")]
[System.Text.Json.Serialization.JsonPropertyName("product_coupon_id")]
public string ProductCouponId { get; set; } = default!;
/// <summary>
/// 获取或设置品牌 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("brand_id")]
[System.Text.Json.Serialization.JsonPropertyName("brand_id")]
public string BrandId { get; set; } = default!;
/// <summary>
/// 获取或设置批次 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("stock_id")]
[System.Text.Json.Serialization.JsonPropertyName("stock_id")]
public string StockId { get; set; } = default!;
/// <summary>
/// 获取或设置券 Code 分配模式。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_code_mode")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_code_mode")]
public string CouponCodeMode { get; set; } = default!;
/// <summary>
/// 获取或设置发放规则信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("stock_send_rule")]
[System.Text.Json.Serialization.JsonPropertyName("stock_send_rule")]
public Types.SendRule SendRule { get; set; } = default!;
/// <summary>
/// 获取或设置单券使用规则信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("single_usage_rule")]
[System.Text.Json.Serialization.JsonPropertyName("single_usage_rule")]
public Types.SingleUsageRule? SingleUsageRule { get; set; }
/// <summary>
/// 获取或设置多次优惠使用规则信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("sequential_usage_rule")]
[System.Text.Json.Serialization.JsonPropertyName("sequential_usage_rule")]
public Types.SequentialUsageRule? SequentialUsageRule { get; set; }
/// <summary>
/// 获取或设置使用规则展示信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("usage_rule_display_info")]
[System.Text.Json.Serialization.JsonPropertyName("usage_rule_display_info")]
public Types.UsageRuleDisplayInfo UsageRuleDisplayInfo { get; set; } = default!;
/// <summary>
/// 获取或设置商品券展示信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_display_info")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_display_info")]
public Types.CouponDisplayInfo CouponDisplayInfo { get; set; } = default!;
/// <summary>
/// 获取或设置可用门店范围。
/// </summary>
[Newtonsoft.Json.JsonProperty("store_scope")]
[System.Text.Json.Serialization.JsonPropertyName("store_scope")]
public string StoreScope { get; set; } = default!;
/// <summary>
/// 获取或设置事件通知配置信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("notify_config")]
[System.Text.Json.Serialization.JsonPropertyName("notify_config")]
public Types.NotifyConfig? NotifyConfig { get; set; }
/// <summary>
/// 获取或设置备注。
/// </summary>
[Newtonsoft.Json.JsonProperty("remark")]
[System.Text.Json.Serialization.JsonPropertyName("remark")]
public string? Remark { get; set; }
/// <summary>
/// 获取或设置 Code 数量信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_code_count_info")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_code_count_info")]
public Types.CodeCountInfo CodeCountInfo { get; set; } = default!;
/// <summary>
/// 获取或设置已发放数量信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("sent_count_info")]
[System.Text.Json.Serialization.JsonPropertyName("sent_count_info")]
public Types.SentCountInfo SentCountInfo { get; set; } = default!;
/// <summary>
/// 获取或设置批次状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("state")]
[System.Text.Json.Serialization.JsonPropertyName("state")]
public string State { get; set; } = default!;
/// <summary>
/// 获取或设置失效请求单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("deactivate_request_no")]
[System.Text.Json.Serialization.JsonPropertyName("deactivate_request_no")]
public string? DeactivateOutRequestNumber { get; set; }
/// <summary>
/// 获取或设置失效时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("deactivate_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("deactivate_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
public DateTimeOffset? DeactivateTime { get; set; }
/// <summary>
/// 获取或设置失效原因。
/// </summary>
[Newtonsoft.Json.JsonProperty("deactivate_reason")]
[System.Text.Json.Serialization.JsonPropertyName("deactivate_reason")]
public string? DeactivateReason { get; set; }
}
}

View File

@@ -0,0 +1,43 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [GET] /marketing/partner/product-coupon/product-coupons/{product_coupon_id}/stocks 接口的请求。</para>
/// </summary>
public class QueryMarketingPartnerProductCouponStocksRequest : WechatTenpayRequest
{
/// <summary>
/// 获取或设置商品券 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string ProductCouponId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置品牌 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string BrandId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置批次状态。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string? StockState { get; set; }
/// <summary>
/// 获取或设置分页游标。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string? PageToken { get; set; }
/// <summary>
/// 获取或设置分页大小。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public int? PageSize { get; set; }
}
}

View File

@@ -0,0 +1,529 @@
using System;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [GET] /marketing/partner/product-coupon/product-coupons/{product_coupon_id}/stocks 接口的响应。</para>
/// </summary>
public class QueryMarketingPartnerProductCouponStocksResponse : WechatTenpayResponse
{
public static class Types
{
public class Stock
{
public static class Types
{
public class SendRule : CreateMarketingPartnerProductCouponStockRequest.Types.StockInfo.Types.SendRule
{
}
public class UsageRule
{
public static class Types
{
public class AvailablePeriod
{
public static class Types
{
public class WeeklyPeriod
{
/// <summary>
/// 获取或设置每周可用星期数列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("day_list")]
[System.Text.Json.Serialization.JsonPropertyName("day_list")]
public string[]? DayList { get; set; }
/// <summary>
/// 获取或设置当天可用时间段列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("day_period_list")]
[System.Text.Json.Serialization.JsonPropertyName("day_period_list")]
public DayPeriod[]? DayPeriodList { get; set; }
}
public class DayPeriod
{
/// <summary>
/// 获取或设置当天可用开始时间(单位:秒)。
/// </summary>
[Newtonsoft.Json.JsonProperty("begin_time")]
[System.Text.Json.Serialization.JsonPropertyName("begin_time")]
public int BeginTime { get; set; }
/// <summary>
/// 获取或设置当天可用结束时间(单位:秒)。
/// </summary>
[Newtonsoft.Json.JsonProperty("end_time")]
[System.Text.Json.Serialization.JsonPropertyName("end_time")]
public int EndTime { get; set; }
}
public class IrregularPeriod
{
/// <summary>
/// 获取或设置开始时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("begin_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("begin_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
public DateTimeOffset BeginTime { get; set; }
/// <summary>
/// 获取或设置结束时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("end_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("end_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
public DateTimeOffset EndTime { get; set; }
}
}
/// <summary>
/// 获取或设置开始时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("available_begin_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("available_begin_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
public DateTimeOffset BeginTime { get; set; }
/// <summary>
/// 获取或设置结束时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("available_end_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("available_end_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
public DateTimeOffset EndTime { get; set; }
/// <summary>
/// 获取或设置生效后 N 天内有效。
/// </summary>
[Newtonsoft.Json.JsonProperty("available_days")]
[System.Text.Json.Serialization.JsonPropertyName("available_days")]
public int? AvailableDays { get; set; }
/// <summary>
/// 获取或设置领取后 N 天开始生效。
/// </summary>
[Newtonsoft.Json.JsonProperty("wait_days_after_receive")]
[System.Text.Json.Serialization.JsonPropertyName("wait_days_after_receive")]
public int? WaitDaysAfterReceive { get; set; }
/// <summary>
/// 获取或设置每周固定可用时间信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("weekly_available_period")]
[System.Text.Json.Serialization.JsonPropertyName("weekly_available_period")]
public Types.WeeklyPeriod? WeeklyPeriod { get; set; }
/// <summary>
/// 获取或设置无规律的可用时间段信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("irregular_available_period_list")]
[System.Text.Json.Serialization.JsonPropertyName("irregular_available_period_list")]
public Types.IrregularPeriod[]? IrregularPeriodList { get; set; }
}
public class NormalCoupon : CreateMarketingPartnerProductCouponStockRequest.Types.StockInfo.Types.UsageRule.Types.NormalCoupon
{
}
public class DiscountCoupon : CreateMarketingPartnerProductCouponStockRequest.Types.StockInfo.Types.UsageRule.Types.DiscountCoupon
{
}
public class ExchangeCoupon : CreateMarketingPartnerProductCouponStockRequest.Types.StockInfo.Types.UsageRule.Types.ExchangeCoupon
{
}
}
}
public class SingleUsageRule : UsageRule
{
/// <summary>
/// 获取或设置券可核销时间信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_available_period")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_available_period")]
public Types.AvailablePeriod AvailablePeriod { get; set; } = default!;
/// <summary>
/// 获取或设置满减券使用规则信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("normal_coupon")]
[System.Text.Json.Serialization.JsonPropertyName("normal_coupon")]
public Types.NormalCoupon? NormalCoupon { get; set; }
/// <summary>
/// 获取或设置折扣券使用规则信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("discount_coupon")]
[System.Text.Json.Serialization.JsonPropertyName("discount_coupon")]
public Types.DiscountCoupon? DiscountCoupon { get; set; }
/// <summary>
/// 获取或设置兑换券使用规则信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("exchange_coupon")]
[System.Text.Json.Serialization.JsonPropertyName("exchange_coupon")]
public Types.ExchangeCoupon? ExchangeCoupon { get; set; }
}
public class SequentialUsageRule : UsageRule
{
/// <summary>
/// 获取或设置券可核销时间信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_available_period")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_available_period")]
public Types.AvailablePeriod AvailablePeriod { get; set; } = default!;
/// <summary>
/// 获取或设置满减券使用规则列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("normal_coupon_list")]
[System.Text.Json.Serialization.JsonPropertyName("normal_coupon_list")]
public Types.NormalCoupon[]? NormalCouponList { get; set; }
/// <summary>
/// 获取或设置折扣券使用规则列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("discount_coupon_list")]
[System.Text.Json.Serialization.JsonPropertyName("discount_coupon_list")]
public Types.DiscountCoupon[]? DiscountCouponList { get; set; }
/// <summary>
/// 获取或设置兑换券使用规则列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("exchange_coupon_list")]
[System.Text.Json.Serialization.JsonPropertyName("exchange_coupon_list")]
public Types.ExchangeCoupon[]? ExchangeCouponList { get; set; }
/// <summary>
/// 获取或设置是否提供首笔特惠。
/// </summary>
[Newtonsoft.Json.JsonProperty("special_first")]
[System.Text.Json.Serialization.JsonPropertyName("special_first")]
public bool? IsSpecialFirst { get; set; }
}
public class UsageRuleDisplayInfo
{
public static class Types
{
public class AvailableStore
{
/// <summary>
/// 获取或设置可用门店描述。
/// </summary>
[Newtonsoft.Json.JsonProperty("description")]
[System.Text.Json.Serialization.JsonPropertyName("description")]
public string Description { get; set; } = default!;
/// <summary>
/// 获取或设置门店小程序 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("mini_program_appid")]
[System.Text.Json.Serialization.JsonPropertyName("mini_program_appid")]
public string? MiniProgramAppId { get; set; }
/// <summary>
/// 获取或设置门店小程序页面路径。
/// </summary>
[Newtonsoft.Json.JsonProperty("mini_program_path")]
[System.Text.Json.Serialization.JsonPropertyName("mini_program_path")]
public string? MiniProgramPagePath { get; set; }
}
}
/// <summary>
/// 获取或设置券使用方式列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_usage_method_list")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_usage_method_list")]
public string[] UsageMethodList { get; set; } = default!;
/// <summary>
/// 获取或设置券使用说明。
/// </summary>
[Newtonsoft.Json.JsonProperty("usage_description")]
[System.Text.Json.Serialization.JsonPropertyName("usage_description")]
public string? UsageDescription { get; set; }
/// <summary>
/// 获取或设置品牌方小程序 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("mini_program_appid")]
[System.Text.Json.Serialization.JsonPropertyName("mini_program_appid")]
public string? MiniProgramAppId { get; set; }
/// <summary>
/// 获取或设置品牌方小程序页面路径。
/// </summary>
[Newtonsoft.Json.JsonProperty("mini_program_path")]
[System.Text.Json.Serialization.JsonPropertyName("mini_program_path")]
public string? MiniProgramPagePath { get; set; }
/// <summary>
/// 获取或设置品牌方 App 跳转路径。
/// </summary>
[Newtonsoft.Json.JsonProperty("app_path")]
[System.Text.Json.Serialization.JsonPropertyName("app_path")]
public string? AppPath { get; set; }
/// <summary>
/// 获取或设置可用门店信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_available_store_info")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_available_store_info")]
public Types.AvailableStore? AvailableStore { get; set; }
}
public class CouponDisplayInfo
{
public static class Types
{
public class EntranceMiniProgram : CreateMarketingPartnerProductCouponStockRequest.Types.StockInfo.Types.CouponDisplayInfo.Types.EntranceMiniProgram
{
}
public class EntranceOfficalAccount : CreateMarketingPartnerProductCouponStockRequest.Types.StockInfo.Types.CouponDisplayInfo.Types.EntranceOfficalAccount
{
}
public class EntranceFinder : CreateMarketingPartnerProductCouponStockRequest.Types.StockInfo.Types.CouponDisplayInfo.Types.EntranceFinder
{
}
}
/// <summary>
/// 获取或设置券 Code 展示模式。
/// </summary>
[Newtonsoft.Json.JsonProperty("code_display_mode")]
[System.Text.Json.Serialization.JsonPropertyName("code_display_mode")]
public string CodeDisplayMode { get; set; } = default!;
/// <summary>
/// 获取或设置背景颜色。
/// </summary>
[Newtonsoft.Json.JsonProperty("background_color")]
[System.Text.Json.Serialization.JsonPropertyName("background_color")]
public string? BackgroundColor { get; set; }
/// <summary>
/// 获取或设置小程序入口信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("entrance_mini_program")]
[System.Text.Json.Serialization.JsonPropertyName("entrance_mini_program")]
public Types.EntranceMiniProgram? EntranceMiniProgram { get; set; }
/// <summary>
/// 获取或设置公众号入口信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("entrance_official_account")]
[System.Text.Json.Serialization.JsonPropertyName("entrance_official_account")]
public Types.EntranceOfficalAccount? EntranceOfficalAccount { get; set; }
/// <summary>
/// 获取或设置视频号入口信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("entrance_finder")]
[System.Text.Json.Serialization.JsonPropertyName("entrance_finder")]
public Types.EntranceFinder? EntranceFinder { get; set; }
}
public class NotifyConfig : CreateMarketingPartnerProductCouponStockRequest.Types.StockInfo.Types.NotifyConfig
{
}
public class CodeCountInfo
{
/// <summary>
/// 获取或设置总数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("total_count")]
[System.Text.Json.Serialization.JsonPropertyName("total_count")]
public int TotalCount { get; set; }
/// <summary>
/// 获取或设置可用数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("available_count")]
[System.Text.Json.Serialization.JsonPropertyName("available_count")]
public int AvailableCount { get; set; }
}
public class SentCountInfo
{
/// <summary>
/// 获取或设置已发放总次数。
/// </summary>
[Newtonsoft.Json.JsonProperty("total_count")]
[System.Text.Json.Serialization.JsonPropertyName("total_count")]
public int TotalCount { get; set; }
/// <summary>
/// 获取或设置当天已发放次数。
/// </summary>
[Newtonsoft.Json.JsonProperty("today_count")]
[System.Text.Json.Serialization.JsonPropertyName("today_count")]
public int TodayCount { get; set; }
}
}
/// <summary>
/// 获取或设置商品券 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("product_coupon_id")]
[System.Text.Json.Serialization.JsonPropertyName("product_coupon_id")]
public string ProductCouponId { get; set; } = default!;
/// <summary>
/// 获取或设置品牌 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("brand_id")]
[System.Text.Json.Serialization.JsonPropertyName("brand_id")]
public string BrandId { get; set; } = default!;
/// <summary>
/// 获取或设置批次 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("stock_id")]
[System.Text.Json.Serialization.JsonPropertyName("stock_id")]
public string StockId { get; set; } = default!;
/// <summary>
/// 获取或设置券 Code 分配模式。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_code_mode")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_code_mode")]
public string CouponCodeMode { get; set; } = default!;
/// <summary>
/// 获取或设置发放规则信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("stock_send_rule")]
[System.Text.Json.Serialization.JsonPropertyName("stock_send_rule")]
public Types.SendRule SendRule { get; set; } = default!;
/// <summary>
/// 获取或设置单券使用规则信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("single_usage_rule")]
[System.Text.Json.Serialization.JsonPropertyName("single_usage_rule")]
public Types.SingleUsageRule? SingleUsageRule { get; set; }
/// <summary>
/// 获取或设置多次优惠使用规则信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("sequential_usage_rule")]
[System.Text.Json.Serialization.JsonPropertyName("sequential_usage_rule")]
public Types.SequentialUsageRule? SequentialUsageRule { get; set; }
/// <summary>
/// 获取或设置使用规则展示信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("usage_rule_display_info")]
[System.Text.Json.Serialization.JsonPropertyName("usage_rule_display_info")]
public Types.UsageRuleDisplayInfo UsageRuleDisplayInfo { get; set; } = default!;
/// <summary>
/// 获取或设置商品券展示信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_display_info")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_display_info")]
public Types.CouponDisplayInfo CouponDisplayInfo { get; set; } = default!;
/// <summary>
/// 获取或设置可用门店范围。
/// </summary>
[Newtonsoft.Json.JsonProperty("store_scope")]
[System.Text.Json.Serialization.JsonPropertyName("store_scope")]
public string StoreScope { get; set; } = default!;
/// <summary>
/// 获取或设置事件通知配置信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("notify_config")]
[System.Text.Json.Serialization.JsonPropertyName("notify_config")]
public Types.NotifyConfig? NotifyConfig { get; set; }
/// <summary>
/// 获取或设置备注。
/// </summary>
[Newtonsoft.Json.JsonProperty("remark")]
[System.Text.Json.Serialization.JsonPropertyName("remark")]
public string? Remark { get; set; }
/// <summary>
/// 获取或设置 Code 数量信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_code_count_info")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_code_count_info")]
public Types.CodeCountInfo CodeCountInfo { get; set; } = default!;
/// <summary>
/// 获取或设置已发放数量信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("sent_count_info")]
[System.Text.Json.Serialization.JsonPropertyName("sent_count_info")]
public Types.SentCountInfo SentCountInfo { get; set; } = default!;
/// <summary>
/// 获取或设置批次状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("state")]
[System.Text.Json.Serialization.JsonPropertyName("state")]
public string State { get; set; } = default!;
/// <summary>
/// 获取或设置失效请求单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("deactivate_request_no")]
[System.Text.Json.Serialization.JsonPropertyName("deactivate_request_no")]
public string? DeactivateOutRequestNumber { get; set; }
/// <summary>
/// 获取或设置失效时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("deactivate_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("deactivate_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
public DateTimeOffset? DeactivateTime { get; set; }
/// <summary>
/// 获取或设置失效原因。
/// </summary>
[Newtonsoft.Json.JsonProperty("deactivate_reason")]
[System.Text.Json.Serialization.JsonPropertyName("deactivate_reason")]
public string? DeactivateReason { get; set; }
}
}
/// <summary>
/// 获取或设置批次列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("stock_list")]
[System.Text.Json.Serialization.JsonPropertyName("stock_list")]
public Types.Stock[] StockList { get; set; } = default!;
/// <summary>
/// 获取或设置下一页分页游标。
/// </summary>
[Newtonsoft.Json.JsonProperty("next_page_token")]
[System.Text.Json.Serialization.JsonPropertyName("next_page_token")]
public string? NextPageToken { get; set; }
/// <summary>
/// 获取或设置券总数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("total_count")]
[System.Text.Json.Serialization.JsonPropertyName("total_count")]
public int TotalCount { get; set; }
}
}

View File

@@ -0,0 +1,51 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/product-coupon/product-coupons/{product_coupon_id}/stocks/{stock_id}/associate-stores 接口的请求。</para>
/// </summary>
public class AssociateMarketingPartnerProductCouponStockToStoresRequest : WechatTenpayRequest
{
public static class Types
{
public class Store
{
/// <summary>
/// 获取或设置门店 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("store_id")]
[System.Text.Json.Serialization.JsonPropertyName("store_id")]
public string StoreId { get; set; } = string.Empty;
}
}
/// <summary>
/// 获取或设置商品券 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string ProductCouponId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置品牌 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("brand_id")]
[System.Text.Json.Serialization.JsonPropertyName("brand_id")]
public string BrandId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置批次 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string StockId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置门店列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("store_list")]
[System.Text.Json.Serialization.JsonPropertyName("store_list")]
public IList<Types.Store> StoreList { get; set; } = new List<Types.Store>();
}
}

View File

@@ -0,0 +1,56 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/product-coupon/product-coupons/{product_coupon_id}/stocks/{stock_id}/associate-stores 接口的响应。</para>
/// </summary>
public class AssociateMarketingPartnerProductCouponStockToStoresResponse : WechatTenpayResponse
{
public static class Types
{
public class Store
{
/// <summary>
/// 获取或设置门店 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("store_id")]
[System.Text.Json.Serialization.JsonPropertyName("store_id")]
public string StoreId { get; set; } = default!;
/// <summary>
/// 获取或设置错误码。
/// </summary>
[Newtonsoft.Json.JsonProperty("code")]
[System.Text.Json.Serialization.JsonPropertyName("code")]
public string? ErrorCode { get; set; }
/// <summary>
/// 获取或设置错误信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("message")]
[System.Text.Json.Serialization.JsonPropertyName("message")]
public string? ErrorMessage { get; set; }
}
}
/// <summary>
/// 获取或设置门店总数。
/// </summary>
[Newtonsoft.Json.JsonProperty("total_count")]
[System.Text.Json.Serialization.JsonPropertyName("total_count")]
public int TotalCount { get; set; }
/// <summary>
/// 获取或设置关联成功的门店列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("success_store_list")]
[System.Text.Json.Serialization.JsonPropertyName("success_store_list")]
public Types.Store[]? SucceededStoreList { get; set; }
/// <summary>
/// 获取或设置关联失败的门店列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("failed_store_list")]
[System.Text.Json.Serialization.JsonPropertyName("failed_store_list")]
public Types.Store[]? FailedStoreList { get; set; }
}
}

View File

@@ -0,0 +1,45 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/product-coupon/product-coupons/{product_coupon_id}/stocks/{stock_id}/disassociate-stores 接口的请求。</para>
/// </summary>
public class DisassociateMarketingPartnerProductCouponStockFromStoresRequest : WechatTenpayRequest
{
public static class Types
{
public class Store : AssociateMarketingPartnerProductCouponStockToStoresRequest.Types.Store
{
}
}
/// <summary>
/// 获取或设置商品券 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string ProductCouponId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置品牌 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("brand_id")]
[System.Text.Json.Serialization.JsonPropertyName("brand_id")]
public string BrandId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置批次 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string StockId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置门店列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("store_list")]
[System.Text.Json.Serialization.JsonPropertyName("store_list")]
public IList<Types.Store> StoreList { get; set; } = new List<Types.Store>();
}
}

View File

@@ -0,0 +1,36 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/product-coupon/product-coupons/{product_coupon_id}/stocks/{stock_id}/disassociate-stores 接口的响应。</para>
/// </summary>
public class DisassociateMarketingPartnerProductCouponStockFromStoresResponse : WechatTenpayResponse
{
public static class Types
{
public class Store : AssociateMarketingPartnerProductCouponStockToStoresResponse.Types.Store
{
}
}
/// <summary>
/// 获取或设置门店总数。
/// </summary>
[Newtonsoft.Json.JsonProperty("total_count")]
[System.Text.Json.Serialization.JsonPropertyName("total_count")]
public int TotalCount { get; set; }
/// <summary>
/// 获取或设置取消关联成功的门店列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("success_store_list")]
[System.Text.Json.Serialization.JsonPropertyName("success_store_list")]
public Types.Store[]? SucceededStoreList { get; set; }
/// <summary>
/// 获取或设置取消关联失败的门店列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("failed_store_list")]
[System.Text.Json.Serialization.JsonPropertyName("failed_store_list")]
public Types.Store[]? FailedStoreList { get; set; }
}
}

View File

@@ -0,0 +1,43 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [GET] /marketing/partner/product-coupon/product-coupons/{product_coupon_id}/stocks/{stock_id}/associated-stores 接口的请求。</para>
/// </summary>
public class QueryMarketingPartnerProductCouponStockAssociatedStoresRequest : WechatTenpayRequest
{
/// <summary>
/// 获取或设置商品券 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string ProductCouponId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置品牌 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string BrandId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置批次 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string StockId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置分页游标。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string? PageToken { get; set; }
/// <summary>
/// 获取或设置分页大小。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public int? PageSize { get; set; }
}
}

View File

@@ -0,0 +1,42 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [GET] /marketing/partner/product-coupon/product-coupons/{product_coupon_id}/stocks/{stock_id}/associated-stores 接口的响应。</para>
/// </summary>
public class QueryMarketingPartnerProductCouponStockAssociatedStoresResponse : WechatTenpayResponse
{
public static class Types
{
public class Store
{
/// <summary>
/// 获取或设置门店 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("store_id")]
[System.Text.Json.Serialization.JsonPropertyName("store_id")]
public string StoreId { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置门店列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("store_list")]
[System.Text.Json.Serialization.JsonPropertyName("store_list")]
public Types.Store[] StoreList { get; set; } = default!;
/// <summary>
/// 获取或设置下一页分页游标。
/// </summary>
[Newtonsoft.Json.JsonProperty("next_page_token")]
[System.Text.Json.Serialization.JsonPropertyName("next_page_token")]
public string? NextPageToken { get; set; }
/// <summary>
/// 获取或设置券总数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("total_count")]
[System.Text.Json.Serialization.JsonPropertyName("total_count")]
public int TotalCount { get; set; }
}
}

View File

@@ -0,0 +1,71 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/product-coupon/product-coupons/{product_coupon_id}/stocks/{stock_id}/update-budget 接口的请求。</para>
/// </summary>
public class UpdateMarketingPartnerProductCouponStockBudgetRequest : WechatTenpayRequest
{
/// <summary>
/// 获取或设置商品券 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string ProductCouponId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置品牌 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("brand_id")]
[System.Text.Json.Serialization.JsonPropertyName("brand_id")]
public string BrandId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置批次 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string StockId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置商户请求单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("out_request_no")]
[System.Text.Json.Serialization.JsonPropertyName("out_request_no")]
public string OutRequestNumebr { get; set; } = string.Empty;
/// <summary>
/// 获取或设置更新模式。
/// </summary>
[Newtonsoft.Json.JsonProperty("update_mode")]
[System.Text.Json.Serialization.JsonPropertyName("update_mode")]
public string UpdateMode { get; set; } = string.Empty;
/// <summary>
/// 获取或设置当前批次发放次数总上限。
/// </summary>
[Newtonsoft.Json.JsonProperty("current_max_count")]
[System.Text.Json.Serialization.JsonPropertyName("current_max_count")]
public int? CurrentMaxCount { get; set; }
/// <summary>
/// 获取或设置目标批次发放次数总上限。
/// </summary>
[Newtonsoft.Json.JsonProperty("target_max_count")]
[System.Text.Json.Serialization.JsonPropertyName("target_max_count")]
public int? TargetMaxCount { get; set; }
/// <summary>
/// 获取或设置当前批次每日发放次数上限。
/// </summary>
[Newtonsoft.Json.JsonProperty("current_max_count_per_day")]
[System.Text.Json.Serialization.JsonPropertyName("current_max_count_per_day")]
public int? CurrentMaxCountPerDay { get; set; }
/// <summary>
/// 获取或设置目标批次每日发放次数上限。
/// </summary>
[Newtonsoft.Json.JsonProperty("target_max_count_per_day")]
[System.Text.Json.Serialization.JsonPropertyName("target_max_count_per_day")]
public int? TargetMaxCountPerDay { get; set; }
}
}

View File

@@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/product-coupon/product-coupons/{product_coupon_id}/stocks/{stock_id}/update-budget 接口的响应。</para>
/// </summary>
public class UpdateMarketingPartnerProductCouponStockBudgetResponse : GetMarketingPartnerProductCouponStockByStockIdResponse
{
}
}

View File

@@ -0,0 +1,86 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [PATCH] /marketing/partner/product-coupon/product-coupons/{product_coupon_id}/stocks/{stock_id} 接口的请求。</para>
/// </summary>
public class UpdateMarketingPartnerProductCouponStockRequest : WechatTenpayRequest
{
public static class Types
{
public class UsageRuleDisplayInfo : CreateMarketingPartnerProductCouponStockRequest.Types.StockInfo.Types.UsageRuleDisplayInfo
{
}
public class CouponDisplayInfo : CreateMarketingPartnerProductCouponStockRequest.Types.StockInfo.Types.CouponDisplayInfo
{
}
public class NotifyConfig : CreateMarketingPartnerProductCouponStockRequest.Types.StockInfo.Types.NotifyConfig
{
}
}
/// <summary>
/// 获取或设置商品券 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string ProductCouponId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置品牌 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("brand_id")]
[System.Text.Json.Serialization.JsonPropertyName("brand_id")]
public string BrandId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置批次 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string StockId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置商户请求单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("out_request_no")]
[System.Text.Json.Serialization.JsonPropertyName("out_request_no")]
public string OutRequestNumebr { get; set; } = string.Empty;
/// <summary>
/// 获取或设置使用规则展示信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("usage_rule_display_info")]
[System.Text.Json.Serialization.JsonPropertyName("usage_rule_display_info")]
public Types.UsageRuleDisplayInfo? UsageRuleDisplayInfo { get; set; }
/// <summary>
/// 获取或设置商品券展示信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_display_info")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_display_info")]
public Types.CouponDisplayInfo? CouponDisplayInfo { get; set; }
/// <summary>
/// 获取或设置可用门店范围。
/// </summary>
[Newtonsoft.Json.JsonProperty("store_scope")]
[System.Text.Json.Serialization.JsonPropertyName("store_scope")]
public string? StoreScope { get; set; }
/// <summary>
/// 获取或设置事件通知配置信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("notify_config")]
[System.Text.Json.Serialization.JsonPropertyName("notify_config")]
public Types.NotifyConfig? NotifyConfig { get; set; }
/// <summary>
/// 获取或设置备注。
/// </summary>
[Newtonsoft.Json.JsonProperty("remark")]
[System.Text.Json.Serialization.JsonPropertyName("remark")]
public string? Remark { get; set; }
}
}

View File

@@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [PATCH] /marketing/partner/product-coupon/product-coupons/{product_coupon_id}/stocks/{stock_id} 接口的响应。</para>
/// </summary>
public class UpdateMarketingPartnerProductCouponStockResponse : GetMarketingPartnerProductCouponStockByStockIdResponse
{
}
}

View File

@@ -0,0 +1,45 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/product-coupon/product-coupons/{product_coupon_id}/stocks/{stock_id}/upload-coupon-codes 接口的请求。</para>
/// </summary>
public class UploadMarketingPartnerProductCouponStockCouponCodesRequest : WechatTenpayRequest
{
/// <summary>
/// 获取或设置商品券 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string ProductCouponId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置品牌 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("brand_id")]
[System.Text.Json.Serialization.JsonPropertyName("brand_id")]
public string BrandId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置批次 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string StockId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置商户请求单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("out_request_no")]
[System.Text.Json.Serialization.JsonPropertyName("out_request_no")]
public string OutRequestNumebr { get; set; } = string.Empty;
/// <summary>
/// 获取或设置券 Code 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("code_list")]
[System.Text.Json.Serialization.JsonPropertyName("code_list")]
public IList<string> CodeList { get; set; } = new List<string>();
}
}

View File

@@ -0,0 +1,70 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/product-coupon/product-coupons/{product_coupon_id}/stocks/{stock_id}/upload-coupon-codes 接口的响应。</para>
/// </summary>
public class UploadMarketingPartnerProductCouponStockCouponCodesResponse : WechatTenpayResponse
{
public static class Types
{
public class FailCode
{
/// <summary>
/// 获取或设置上传失败的券 Code。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_code")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_code")]
public string CouponCode { get; set; } = default!;
/// <summary>
/// 获取或设置上传失败错误码。
/// </summary>
[Newtonsoft.Json.JsonProperty("code")]
[System.Text.Json.Serialization.JsonPropertyName("code")]
public string ErrorCode { get; set; } = default!;
/// <summary>
/// 获取或设置上传失败错误信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("message")]
[System.Text.Json.Serialization.JsonPropertyName("message")]
public string ErrorMessage { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置去重后上传 Code 总数。
/// </summary>
[Newtonsoft.Json.JsonProperty("total_count")]
[System.Text.Json.Serialization.JsonPropertyName("total_count")]
public int TotalCount { get; set; }
/// <summary>
/// 获取或设置上传成功的 Code 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("success_code_list")]
[System.Text.Json.Serialization.JsonPropertyName("success_code_list")]
public string[]? SuccessCodeList { get; set; }
/// <summary>
/// 获取或设置上传失败的 Code 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("failed_code_list")]
[System.Text.Json.Serialization.JsonPropertyName("failed_code_list")]
public Types.FailCode[]? FailCodeList { get; set; }
/// <summary>
/// 获取或设置已存在的 Code 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("already_exist_code_list")]
[System.Text.Json.Serialization.JsonPropertyName("already_exist_code_list")]
public string[]? AlreadyExistedCodeList { get; set; }
/// <summary>
/// 获取或设置本次请求中重复的 Code 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("duplicate_code_list")]
[System.Text.Json.Serialization.JsonPropertyName("duplicate_code_list")]
public string[]? DuplicateCodeList { get; set; }
}
}

View File

@@ -0,0 +1,43 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [PATCH] /marketing/partner/product-coupon/product-coupons/{product_coupon_id} 接口的请求。</para>
/// </summary>
public class UpdateMarketingPartnerProductCouponRequest : WechatTenpayRequest
{
public static class Types
{
public class DisplayInfo : CreateMarketingPartnerProductCouponRequest.Types.DisplayInfo
{
}
}
/// <summary>
/// 获取或设置商品券 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string ProductCouponId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置品牌 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("brand_id")]
[System.Text.Json.Serialization.JsonPropertyName("brand_id")]
public string BrandId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置商户请求单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("out_request_no")]
[System.Text.Json.Serialization.JsonPropertyName("out_request_no")]
public string OutRequestNumebr { get; set; } = string.Empty;
/// <summary>
/// 获取或设置展示信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("display_info")]
[System.Text.Json.Serialization.JsonPropertyName("display_info")]
public Types.DisplayInfo DisplayInfo { get; set; } = new Types.DisplayInfo();
}
}

View File

@@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [PATCH] /marketing/partner/product-coupon/product-coupons/{product_coupon_id} 接口的响应。</para>
/// </summary>
public class UpdateMarketingPartnerProductCouponResponse : GetMarketingPartnerProductCouponByProductCouponIdResponse
{
}
}

View File

@@ -0,0 +1,38 @@
using System;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/product-coupon/media/upload-image 接口的请求。</para>
/// </summary>
public class UploadMarketingPartnerProductCouponMediaImageRequest : WechatTenpayRequest
{
/// <summary>
/// 获取或设置图片文件字节数组。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public byte[] FileBytes { get; set; } = Array.Empty<byte>();
/// <summary>
/// 获取或设置图片文件名(必须以 jpg、bmp、png 为后缀)。如果不指定将由系统自动生成。
/// </summary>
[Newtonsoft.Json.JsonProperty("filename")]
[System.Text.Json.Serialization.JsonPropertyName("filename")]
public string? FileName { get; set; }
/// <summary>
/// 获取或设置图片文件摘要。如果不指定将由系统自动生成。
/// </summary>
[Newtonsoft.Json.JsonProperty("sha256")]
[System.Text.Json.Serialization.JsonPropertyName("sha256")]
public string? FileHash { get; set; }
/// <summary>
/// 获取或设置图片文件 Conent-Type。如果不指定将由系统自动生成。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string? FileContentType { get; set; }
}
}

View File

@@ -0,0 +1,15 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/product-coupon/media/upload-image 接口的响应。</para>
/// </summary>
public class UploadMarketingPartnerProductCouponMediaImageResponse : WechatTenpayResponse
{
/// <summary>
/// 获取或设置图片 URL。
/// </summary>
[Newtonsoft.Json.JsonProperty("image_url")]
[System.Text.Json.Serialization.JsonPropertyName("image_url")]
public string ImageUrl { get; set; } = default!;
}
}

View File

@@ -0,0 +1,57 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/product-coupon/users/{openid}/coupons/{coupon_code}/confirm 接口的请求。</para>
/// </summary>
public class ConfirmMarketingPartnerProductCouponUserCouponRequest : WechatTenpayRequest
{
/// <summary>
/// 获取或设置商品券 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("product_coupon_id")]
[System.Text.Json.Serialization.JsonPropertyName("product_coupon_id")]
public string ProductCouponId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置品牌 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("brand_id")]
[System.Text.Json.Serialization.JsonPropertyName("brand_id")]
public string BrandId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置批次 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("stock_id")]
[System.Text.Json.Serialization.JsonPropertyName("stock_id")]
public string StockId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置微信 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("appid")]
[System.Text.Json.Serialization.JsonPropertyName("appid")]
public string AppId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置用户的 OpenId。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string OpenId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置券 Code。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string CouponCode { get; set; } = string.Empty;
/// <summary>
/// 获取或设置商户请求单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("out_request_no")]
[System.Text.Json.Serialization.JsonPropertyName("out_request_no")]
public string OutRequestNumber { get; set; } = string.Empty;
}
}

View File

@@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/product-coupon/users/{openid}/coupons/{coupon_code}/confirm 接口的响应。</para>
/// </summary>
public class ConfirmMarketingPartnerProductCouponUserCouponResponse : GetMarketingPartnerProductCouponUserCouponByCouponCodeResponse
{
}
}

View File

@@ -0,0 +1,64 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/product-coupon/users/{openid}/coupons/{coupon_code}/deactivate 接口的请求。</para>
/// </summary>
public class DeactivateMarketingPartnerProductCouponUserCouponRequest : WechatTenpayRequest
{
/// <summary>
/// 获取或设置商品券 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("product_coupon_id")]
[System.Text.Json.Serialization.JsonPropertyName("product_coupon_id")]
public string ProductCouponId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置品牌 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("brand_id")]
[System.Text.Json.Serialization.JsonPropertyName("brand_id")]
public string BrandId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置批次 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("stock_id")]
[System.Text.Json.Serialization.JsonPropertyName("stock_id")]
public string StockId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置微信 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("appid")]
[System.Text.Json.Serialization.JsonPropertyName("appid")]
public string AppId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置用户的 OpenId。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string OpenId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置券 Code。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string CouponCode { get; set; } = string.Empty;
/// <summary>
/// 获取或设置商户请求单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("out_request_no")]
[System.Text.Json.Serialization.JsonPropertyName("out_request_no")]
public string OutRequestNumber { get; set; } = string.Empty;
/// <summary>
/// 获取或设置失效原因。
/// </summary>
[Newtonsoft.Json.JsonProperty("deactivate_reason")]
[System.Text.Json.Serialization.JsonPropertyName("deactivate_reason")]
public string Reason { get; set; } = string.Empty;
}
}

View File

@@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/product-coupon/users/{openid}/coupons/{coupon_code}/deactivate 接口的响应。</para>
/// </summary>
public class DeactivateMarketingPartnerProductCouponUserCouponResponse : GetMarketingPartnerProductCouponUserCouponByCouponCodeResponse
{
}
}

View File

@@ -0,0 +1,50 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [GET] /marketing/partner/product-coupon/users/{openid}/coupons/{coupon_code} 接口的请求。</para>
/// </summary>
public class GetMarketingPartnerProductCouponUserCouponByCouponCodeRequest : WechatTenpayRequest
{
/// <summary>
/// 获取或设置商品券 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string ProductCouponId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置品牌 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string BrandId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置批次 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string StockId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置微信 AppId。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string AppId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置用户的 OpenId。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string OpenId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置券 Code。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string CouponCode { get; set; } = string.Empty;
}
}

View File

@@ -0,0 +1,183 @@
using System;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [GET] /marketing/partner/product-coupon/users/{openid}/coupons/{coupon_code} 接口的响应。</para>
/// </summary>
public class GetMarketingPartnerProductCouponUserCouponByCouponCodeResponse : WechatTenpayResponse
{
public static class Types
{
public class SingleUsageDetail : QueryMarketingPartnerProductCouponUserCouponsResponse.Types.UserCoupon.Types.SingleUsageDetail
{
}
public class SequentialUsageDetail : QueryMarketingPartnerProductCouponUserCouponsResponse.Types.UserCoupon.Types.SequentialUsageDetail
{
}
public class ProductCouponInfo : QueryMarketingPartnerProductCouponUserCouponsResponse.Types.UserCoupon.Types.ProductCouponInfo
{
}
public class StockInfo : QueryMarketingPartnerProductCouponUserCouponsResponse.Types.UserCoupon.Types.StockInfo
{
}
public class TagInfo : QueryMarketingPartnerProductCouponUserCouponsResponse.Types.UserCoupon.Types.TagInfo
{
}
}
/// <summary>
/// 获取或设置品牌 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("brand_id")]
[System.Text.Json.Serialization.JsonPropertyName("brand_id")]
public string BrandId { get; set; } = default!;
/// <summary>
/// 获取或设置券 Code。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_code")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_code")]
public string CouponCode { get; set; } = default!;
/// <summary>
/// 获取或设置券状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_state")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_state")]
public string CouponState { get; set; } = default!;
/// <summary>
/// 获取或设置有效期开始时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("valid_begin_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("valid_begin_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
public DateTimeOffset ValidBeginTime { get; set; }
/// <summary>
/// 获取或设置有效期结束时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("valid_end_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("valid_end_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
public DateTimeOffset ValidEndTime { get; set; }
/// <summary>
/// 获取或设置领券时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("receive_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("receive_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
public DateTimeOffset ReceiveTime { get; set; }
/// <summary>
/// 获取或设置发券请求单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("send_request_no")]
[System.Text.Json.Serialization.JsonPropertyName("send_request_no")]
public string SendOutRequestNumber { get; set; } = default!;
/// <summary>
/// 获取或设置发券渠道。
/// </summary>
[Newtonsoft.Json.JsonProperty("send_channel")]
[System.Text.Json.Serialization.JsonPropertyName("send_channel")]
public string SendChannel { get; set; } = default!;
/// <summary>
/// 获取或设置确认请求单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("confirm_request_no")]
[System.Text.Json.Serialization.JsonPropertyName("confirm_request_no")]
public string? ConfirmOutRequestNumber { get; set; }
/// <summary>
/// 获取或设置确认发放时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("confirm_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("confirm_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
public DateTimeOffset? ConfirmTime { get; set; }
/// <summary>
/// 获取或设置失效请求单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("deactivate_request_no")]
[System.Text.Json.Serialization.JsonPropertyName("deactivate_request_no")]
public string? DeactivateOutRequestNumber { get; set; }
/// <summary>
/// 获取或设置失效时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("deactivate_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("deactivate_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
public DateTimeOffset? DeactivateTime { get; set; }
/// <summary>
/// 获取或设置失效原因。
/// </summary>
[Newtonsoft.Json.JsonProperty("deactivate_reason")]
[System.Text.Json.Serialization.JsonPropertyName("deactivate_reason")]
public string? DeactivateReason { get; set; }
/// <summary>
/// 获取或设置单券使用详情。
/// </summary>
[Newtonsoft.Json.JsonProperty("single_usage_detail")]
[System.Text.Json.Serialization.JsonPropertyName("single_usage_detail")]
public Types.SingleUsageDetail? SingleUsageDetail { get; set; }
/// <summary>
/// 获取或设置多次优惠使用详情。
/// </summary>
[Newtonsoft.Json.JsonProperty("sequential_usage_detail")]
[System.Text.Json.Serialization.JsonPropertyName("sequential_usage_detail")]
public Types.SequentialUsageDetail? SequentialUsageDetail { get; set; }
/// <summary>
/// 获取或设置商品券信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("product_coupon")]
[System.Text.Json.Serialization.JsonPropertyName("product_coupon")]
public Types.ProductCouponInfo ProductCouponInfo { get; set; } = default!;
/// <summary>
/// 获取或设置批次信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("stock")]
[System.Text.Json.Serialization.JsonPropertyName("stock")]
public Types.StockInfo StockInfo { get; set; } = default!;
/// <summary>
/// 获取或设置附加信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("attach")]
[System.Text.Json.Serialization.JsonPropertyName("attach")]
public string? Attachment { get; set; }
/// <summary>
/// 获取或设置渠道自定义信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("channel_custom_info")]
[System.Text.Json.Serialization.JsonPropertyName("channel_custom_info")]
public string? ChannelCustomInfo { get; set; }
/// <summary>
/// 获取或设置标签信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_tag_info")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_tag_info")]
public Types.TagInfo? TagInfo { get; set; }
}
}

View File

@@ -0,0 +1,64 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [GET] /marketing/partner/product-coupon/users/{openid}/coupons 接口的请求。</para>
/// </summary>
public class QueryMarketingPartnerProductCouponUserCouponsRequest : WechatTenpayRequest
{
/// <summary>
/// 获取或设置商品券 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string? ProductCouponId { get; set; }
/// <summary>
/// 获取或设置品牌 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string BrandId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置批次 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string? StockId { get; set; }
/// <summary>
/// 获取或设置微信 AppId。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string AppId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置用户的 OpenId。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string OpenId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置券状态。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string? CouponState { get; set; }
/// <summary>
/// 获取或设置分页游标。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string? PageToken { get; set; }
/// <summary>
/// 获取或设置分页大小。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public int? PageSize { get; set; }
}
}

View File

@@ -0,0 +1,452 @@
using System;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [GET] /marketing/partner/product-coupon/users/{openid}/coupons 接口的响应。</para>
/// </summary>
public class QueryMarketingPartnerProductCouponUserCouponsResponse : WechatTenpayResponse
{
public static class Types
{
public class UserCoupon
{
public static class Types
{
public class UsageDetail
{
public static class Types
{
public class AssociatedOrder : UseMarketingPartnerProductCouponUserCouponRequest.Types.AssociatedOrder
{
}
}
/// <summary>
/// 获取或设置核销请求单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("use_request_no")]
[System.Text.Json.Serialization.JsonPropertyName("use_request_no")]
public string? UseOutRequestNumber { get; set; }
/// <summary>
/// 获取或设置核销时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("use_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("use_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
public DateTimeOffset? UseTime { get; set; }
/// <summary>
/// 获取或设置退券请求单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("return_request_no")]
[System.Text.Json.Serialization.JsonPropertyName("return_request_no")]
public string? ReturnOutRequestNumber { get; set; }
/// <summary>
/// 获取或设置退券时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("return_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("return_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
public DateTimeOffset? ReturnTime { get; set; }
/// <summary>
/// 获取或设置关联订单信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("associated_order_info")]
[System.Text.Json.Serialization.JsonPropertyName("associated_order_info")]
public Types.AssociatedOrder? AssociatedOrder { get; set; }
}
public class SingleUsageDetail : UsageDetail
{
}
public class SequentialUsageDetail
{
public static class Types
{
public class DetailItem : UsageDetail
{
/// <summary>
/// 获取或设置轮次使用详情状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("detail_state")]
[System.Text.Json.Serialization.JsonPropertyName("detail_state")]
public string DetailState { get; set; } = default!;
/// <summary>
/// 获取或设置有效期开始时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("valid_begin_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("valid_begin_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
public DateTimeOffset ValidBeginTime { get; set; }
/// <summary>
/// 获取或设置有效期结束时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("valid_end_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("valid_end_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
public DateTimeOffset ValidEndTime { get; set; }
/// <summary>
/// 获取或设置删除时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("delete_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("delete_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
public DateTimeOffset? DeleteTime { get; set; }
}
}
/// <summary>
/// 获取或设置总可使用次数。
/// </summary>
[Newtonsoft.Json.JsonProperty("total_count")]
[System.Text.Json.Serialization.JsonPropertyName("total_count")]
public int TotalCount { get; set; }
/// <summary>
/// 获取或设置已使用次数。
/// </summary>
[Newtonsoft.Json.JsonProperty("used_count")]
[System.Text.Json.Serialization.JsonPropertyName("used_count")]
public int UsedCount { get; set; }
/// <summary>
/// 获取或设置轮次使用详情列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("detail_item_list")]
[System.Text.Json.Serialization.JsonPropertyName("detail_item_list")]
public Types.DetailItem[]? DetailItemList { get; set; }
}
public class ProductCouponInfo
{
public static class Types
{
public class SingleUsageInfo : GetMarketingPartnerProductCouponByProductCouponIdResponse.Types.SingleUsageInfo
{
}
public class SequentialUsageInfo : GetMarketingPartnerProductCouponByProductCouponIdResponse.Types.SequentialUsageInfo
{
}
public class DisplayInfo : GetMarketingPartnerProductCouponByProductCouponIdResponse.Types.DisplayInfo
{
}
}
/// <summary>
/// 获取或设置商品券 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("product_coupon_id")]
[System.Text.Json.Serialization.JsonPropertyName("product_coupon_id")]
public string ProductCouponId { get; set; } = default!;
/// <summary>
/// 获取或设置品牌 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("brand_id")]
[System.Text.Json.Serialization.JsonPropertyName("brand_id")]
public string BrandId { get; set; } = default!;
/// <summary>
/// 获取或设置优惠范围。
/// </summary>
[Newtonsoft.Json.JsonProperty("scope")]
[System.Text.Json.Serialization.JsonPropertyName("scope")]
public string Scope { get; set; } = default!;
/// <summary>
/// 获取或设置商品券类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("type")]
[System.Text.Json.Serialization.JsonPropertyName("type")]
public string Type { get; set; } = default!;
/// <summary>
/// 获取或设置使用模式。
/// </summary>
[Newtonsoft.Json.JsonProperty("usage_mode")]
[System.Text.Json.Serialization.JsonPropertyName("usage_mode")]
public string UsageMode { get; set; } = default!;
/// <summary>
/// 获取或设置单券模式信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("single_usage_info")]
[System.Text.Json.Serialization.JsonPropertyName("single_usage_info")]
public Types.SingleUsageInfo? SingleUsageInfo { get; set; }
/// <summary>
/// 获取或设置多次优惠模式信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("sequential_usage_info")]
[System.Text.Json.Serialization.JsonPropertyName("sequential_usage_info")]
public Types.SequentialUsageInfo? SequentialUsageInfo { get; set; }
/// <summary>
/// 获取或设置展示信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("display_info")]
[System.Text.Json.Serialization.JsonPropertyName("display_info")]
public Types.DisplayInfo DisplayInfo { get; set; } = default!;
/// <summary>
/// 获取或设置外部商品 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("out_product_no")]
[System.Text.Json.Serialization.JsonPropertyName("out_product_no")]
public string? OutProductNumber { get; set; }
/// <summary>
/// 获取或设置商品券状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("state")]
[System.Text.Json.Serialization.JsonPropertyName("state")]
public string State { get; set; } = default!;
/// <summary>
/// 获取或设置失效请求单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("deactivate_request_no")]
[System.Text.Json.Serialization.JsonPropertyName("deactivate_request_no")]
public string? DeactivateOutRequestNumber { get; set; }
/// <summary>
/// 获取或设置失效时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("deactivate_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("deactivate_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
public DateTimeOffset? DeactivateTime { get; set; }
/// <summary>
/// 获取或设置失效原因。
/// </summary>
[Newtonsoft.Json.JsonProperty("deactivate_reason")]
[System.Text.Json.Serialization.JsonPropertyName("deactivate_reason")]
public string? DeactivateReason { get; set; }
}
public class StockInfo : QueryMarketingPartnerProductCouponStocksResponse.Types.Stock
{
}
public class TagInfo
{
public static class Types
{
public class MemberTag
{
/// <summary>
/// 获取或设置会员卡模板 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("member_card_id")]
[System.Text.Json.Serialization.JsonPropertyName("member_card_id")]
public string MemberCardId { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置用户商品券标签列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_tag_list")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_tag_list")]
public string[]? CouponTagList { get; set; }
/// <summary>
/// 获取或设置会员标签信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("member_tag_info")]
[System.Text.Json.Serialization.JsonPropertyName("member_tag_info")]
public Types.MemberTag? MemberTag { get; set; }
}
}
/// <summary>
/// 获取或设置品牌 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("brand_id")]
[System.Text.Json.Serialization.JsonPropertyName("brand_id")]
public string BrandId { get; set; } = default!;
/// <summary>
/// 获取或设置券 Code。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_code")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_code")]
public string CouponCode { get; set; } = default!;
/// <summary>
/// 获取或设置券状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_state")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_state")]
public string CouponState { get; set; } = default!;
/// <summary>
/// 获取或设置有效期开始时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("valid_begin_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("valid_begin_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
public DateTimeOffset ValidBeginTime { get; set; }
/// <summary>
/// 获取或设置有效期结束时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("valid_end_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("valid_end_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
public DateTimeOffset ValidEndTime { get; set; }
/// <summary>
/// 获取或设置领券时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("receive_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("receive_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
public DateTimeOffset ReceiveTime { get; set; }
/// <summary>
/// 获取或设置发券请求单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("send_request_no")]
[System.Text.Json.Serialization.JsonPropertyName("send_request_no")]
public string SendOutRequestNumber { get; set; } = default!;
/// <summary>
/// 获取或设置发券渠道。
/// </summary>
[Newtonsoft.Json.JsonProperty("send_channel")]
[System.Text.Json.Serialization.JsonPropertyName("send_channel")]
public string SendChannel { get; set; } = default!;
/// <summary>
/// 获取或设置确认请求单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("confirm_request_no")]
[System.Text.Json.Serialization.JsonPropertyName("confirm_request_no")]
public string? ConfirmOutRequestNumber { get; set; }
/// <summary>
/// 获取或设置确认发放时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("confirm_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("confirm_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
public DateTimeOffset? ConfirmTime { get; set; }
/// <summary>
/// 获取或设置失效请求单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("deactivate_request_no")]
[System.Text.Json.Serialization.JsonPropertyName("deactivate_request_no")]
public string? DeactivateOutRequestNumber { get; set; }
/// <summary>
/// 获取或设置失效时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("deactivate_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("deactivate_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
public DateTimeOffset? DeactivateTime { get; set; }
/// <summary>
/// 获取或设置失效原因。
/// </summary>
[Newtonsoft.Json.JsonProperty("deactivate_reason")]
[System.Text.Json.Serialization.JsonPropertyName("deactivate_reason")]
public string? DeactivateReason { get; set; }
/// <summary>
/// 获取或设置单券使用详情。
/// </summary>
[Newtonsoft.Json.JsonProperty("single_usage_detail")]
[System.Text.Json.Serialization.JsonPropertyName("single_usage_detail")]
public Types.SingleUsageDetail? SingleUsageDetail { get; set; }
/// <summary>
/// 获取或设置多次优惠使用详情。
/// </summary>
[Newtonsoft.Json.JsonProperty("sequential_usage_detail")]
[System.Text.Json.Serialization.JsonPropertyName("sequential_usage_detail")]
public Types.SequentialUsageDetail? SequentialUsageDetail { get; set; }
/// <summary>
/// 获取或设置商品券信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("product_coupon")]
[System.Text.Json.Serialization.JsonPropertyName("product_coupon")]
public Types.ProductCouponInfo ProductCouponInfo { get; set; } = default!;
/// <summary>
/// 获取或设置批次信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("stock")]
[System.Text.Json.Serialization.JsonPropertyName("stock")]
public Types.StockInfo StockInfo { get; set; } = default!;
/// <summary>
/// 获取或设置附加信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("attach")]
[System.Text.Json.Serialization.JsonPropertyName("attach")]
public string? Attachment { get; set; }
/// <summary>
/// 获取或设置渠道自定义信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("channel_custom_info")]
[System.Text.Json.Serialization.JsonPropertyName("channel_custom_info")]
public string? ChannelCustomInfo { get; set; }
/// <summary>
/// 获取或设置标签信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_tag_info")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_tag_info")]
public Types.TagInfo? TagInfo { 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("next_page_token")]
[System.Text.Json.Serialization.JsonPropertyName("next_page_token")]
public string? NextPageToken { get; set; }
/// <summary>
/// 获取或设置券总数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("total_count")]
[System.Text.Json.Serialization.JsonPropertyName("total_count")]
public int TotalCount { get; set; }
}
}

View File

@@ -0,0 +1,64 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/product-coupon/users/{openid}/coupons/{coupon_code}/return 接口的请求。</para>
/// </summary>
public class ReturnMarketingPartnerProductCouponUserCouponRequest : WechatTenpayRequest
{
/// <summary>
/// 获取或设置商品券 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("product_coupon_id")]
[System.Text.Json.Serialization.JsonPropertyName("product_coupon_id")]
public string ProductCouponId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置品牌 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("brand_id")]
[System.Text.Json.Serialization.JsonPropertyName("brand_id")]
public string BrandId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置批次 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("stock_id")]
[System.Text.Json.Serialization.JsonPropertyName("stock_id")]
public string StockId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置微信 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("appid")]
[System.Text.Json.Serialization.JsonPropertyName("appid")]
public string AppId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置用户的 OpenId。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string OpenId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置券 Code。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string CouponCode { get; set; } = string.Empty;
/// <summary>
/// 获取或设置商户请求单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("out_request_no")]
[System.Text.Json.Serialization.JsonPropertyName("out_request_no")]
public string OutRequestNumber { get; set; } = string.Empty;
/// <summary>
/// 获取或设置多次优惠索引。
/// </summary>
[Newtonsoft.Json.JsonProperty("sequential_coupon_index")]
[System.Text.Json.Serialization.JsonPropertyName("sequential_coupon_index")]
public int? SequentialCouponIndex { get; set; }
}
}

View File

@@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/product-coupon/users/{openid}/coupons/{coupon_code}/return 接口的响应。</para>
/// </summary>
public class ReturnMarketingPartnerProductCouponUserCouponResponse : GetMarketingPartnerProductCouponUserCouponByCouponCodeResponse
{
}
}

View File

@@ -0,0 +1,106 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/product-coupon/users/{openid}/coupons 接口的请求。</para>
/// </summary>
public class SendMarketingPartnerProductCouponUserCouponRequest : WechatTenpayRequest
{
public static class Types
{
public class TagInfo
{
public static class Types
{
public class MemberTag
{
/// <summary>
/// 获取或设置会员卡模板 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("member_card_id")]
[System.Text.Json.Serialization.JsonPropertyName("member_card_id")]
public string MemberCardId { get; set; } = string.Empty;
}
}
/// <summary>
/// 获取或设置用户商品券标签列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_tag_list")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_tag_list")]
public IList<string>? CouponTagList { get; set; }
/// <summary>
/// 获取或设置会员标签信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("member_tag_info")]
[System.Text.Json.Serialization.JsonPropertyName("member_tag_info")]
public Types.MemberTag? MemberTag { get; set; }
}
}
/// <summary>
/// 获取或设置商品券 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("product_coupon_id")]
[System.Text.Json.Serialization.JsonPropertyName("product_coupon_id")]
public string ProductCouponId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置品牌 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("brand_id")]
[System.Text.Json.Serialization.JsonPropertyName("brand_id")]
public string BrandId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置批次 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("stock_id")]
[System.Text.Json.Serialization.JsonPropertyName("stock_id")]
public string StockId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置微信 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("appid")]
[System.Text.Json.Serialization.JsonPropertyName("appid")]
public string AppId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置用户的 OpenId。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string OpenId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置券 Code。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_code")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_code")]
public string? CouponCode { get; set; }
/// <summary>
/// 获取或设置商户请求单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("send_request_no")]
[System.Text.Json.Serialization.JsonPropertyName("send_request_no")]
public string OutRequestNumber { get; set; } = string.Empty;
/// <summary>
/// 获取或设置附加信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("attach")]
[System.Text.Json.Serialization.JsonPropertyName("attach")]
public string? Attachment { get; set; }
/// <summary>
/// 获取或设置标签信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("coupon_tag_info")]
[System.Text.Json.Serialization.JsonPropertyName("coupon_tag_info")]
public Types.TagInfo? TagInfo { get; set; }
}
}

View File

@@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/product-coupon/users/{openid}/coupons 接口的响应。</para>
/// </summary>
public class SendMarketingPartnerProductCouponUserCouponResponse : GetMarketingPartnerProductCouponUserCouponByCouponCodeResponse
{
}
}

View File

@@ -0,0 +1,116 @@
using System;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/product-coupon/users/{openid}/coupons/{coupon_code}/use 接口的请求。</para>
/// </summary>
public class UseMarketingPartnerProductCouponUserCouponRequest : WechatTenpayRequest
{
public static class Types
{
public class AssociatedOrder
{
/// <summary>
/// 获取或设置微信商户号。
/// </summary>
[Newtonsoft.Json.JsonProperty("mchid")]
[System.Text.Json.Serialization.JsonPropertyName("mchid")]
public string? MerchantId { get; set; }
/// <summary>
/// 获取或设置子商户号。
/// </summary>
[Newtonsoft.Json.JsonProperty("sub_mchid")]
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
public string? SubMerchantId { get; set; }
/// <summary>
/// 获取或设置商户订单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("out_trade_no")]
[System.Text.Json.Serialization.JsonPropertyName("out_trade_no")]
public string? OutTradeNumber { get; set; }
/// <summary>
/// 获取或设置微信支付单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("transaction_id")]
[System.Text.Json.Serialization.JsonPropertyName("transaction_id")]
public string? TransactionId { get; set; }
}
}
/// <summary>
/// 获取或设置商品券 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("product_coupon_id")]
[System.Text.Json.Serialization.JsonPropertyName("product_coupon_id")]
public string ProductCouponId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置品牌 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("brand_id")]
[System.Text.Json.Serialization.JsonPropertyName("brand_id")]
public string BrandId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置批次 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("stock_id")]
[System.Text.Json.Serialization.JsonPropertyName("stock_id")]
public string StockId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置微信 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("appid")]
[System.Text.Json.Serialization.JsonPropertyName("appid")]
public string AppId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置用户的 OpenId。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string OpenId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置券 Code。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string CouponCode { get; set; } = string.Empty;
/// <summary>
/// 获取或设置商户请求单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("out_request_no")]
[System.Text.Json.Serialization.JsonPropertyName("out_request_no")]
public string OutRequestNumber { get; set; } = string.Empty;
/// <summary>
/// 获取或设置核销时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("use_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("use_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
public DateTimeOffset UseTime { get; set; }
/// <summary>
/// 获取或设置关联订单信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("associated_order_info")]
[System.Text.Json.Serialization.JsonPropertyName("associated_order_info")]
public Types.AssociatedOrder AssociatedOrder { get; set; } = new Types.AssociatedOrder();
/// <summary>
/// 获取或设置多次优惠索引。
/// </summary>
[Newtonsoft.Json.JsonProperty("sequential_coupon_index")]
[System.Text.Json.Serialization.JsonPropertyName("sequential_coupon_index")]
public int? SequentialCouponIndex { get; set; }
}
}

View File

@@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/product-coupon/users/{openid}/coupons/{coupon_code}/use 接口的响应。</para>
/// </summary>
public class UseMarketingPartnerProductCouponUserCouponResponse : GetMarketingPartnerProductCouponUserCouponByCouponCodeResponse
{
}
}