feat(tenpayv3): 新增品牌活动投放计划相关接口

This commit is contained in:
Fu Diwei
2025-11-06 19:51:28 +08:00
parent 52da4f51f0
commit 69f9f4fe01
21 changed files with 729 additions and 0 deletions

View File

@@ -0,0 +1,51 @@
using System;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Events
{
/// <summary>
/// <para>表示 DELIVERY_PLAN.CHANGE (仅限服务商)通知的数据。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://pay.weixin.qq.com/doc/v3/partner/4016168699 ]]>
/// </para>
/// </summary>
public class MarketingPartnerDeliveryPlanResource : WechatTenpayEvent.Types.IDecryptedResource
{
/// <summary>
/// 获取或设置投放计划 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("plan_id")]
[System.Text.Json.Serialization.JsonPropertyName("plan_id")]
public string PlanId { get; set; } = default!;
/// <summary>
/// 获取或设置投放计划状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("plan_state")]
[System.Text.Json.Serialization.JsonPropertyName("plan_state")]
public string PlanState { get; set; } = default!;
/// <summary>
/// 获取或设置审核状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("audit_state")]
[System.Text.Json.Serialization.JsonPropertyName("audit_state")]
public string? AuditState { get; set; }
/// <summary>
/// 获取或设置变更原因。
/// </summary>
[Newtonsoft.Json.JsonProperty("change_reason")]
[System.Text.Json.Serialization.JsonPropertyName("change_reason")]
public string? ChangeReason { get; set; }
/// <summary>
/// 获取或设置修改时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("modify_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("modify_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
public DateTimeOffset ModifyTime { get; set; }
}
}

View File

@@ -0,0 +1,121 @@
using System;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
using Flurl.Http;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
{
public static class WechatTenpayClientExecuteMarketingPartnerDeliveryPlanExtensions
{
/// <summary>
/// <para>异步调用 [POST] /marketing/partner/delivery-plan/delivery-plans 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://pay.weixin.qq.com/doc/v3/partner/4016184554 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CreateMarketingPartnerDeliveryPlanResponse> ExecuteCreateMarketingPartnerDeliveryPlanAsync(this WechatTenpayClient client, Models.CreateMarketingPartnerDeliveryPlanRequest 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", "delivery-plan", "delivery-plans");
return await client.SendFlurlRequestAsJsonAsync<Models.CreateMarketingPartnerDeliveryPlanResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [GET] /marketing/partner/delivery-plan/delivery-plans/{brand_id}/delivery-plans 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://pay.weixin.qq.com/doc/v3/partner/4016184563 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.QueryMarketingPartnerDeliveryPlansResponse> ExecuteQueryMarketingPartnerDeliveryPlansAsync(this WechatTenpayClient client, Models.QueryMarketingPartnerDeliveryPlansRequest 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", "delivery-plan", "delivery-plans", request.BrandId, "delivery-plans");
return await client.SendFlurlRequestAsJsonAsync<Models.QueryMarketingPartnerDeliveryPlansResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [PATCH] /marketing/partner/delivery-plan/delivery-plans/{plan_id} 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://pay.weixin.qq.com/doc/v3/partner/4016184594 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.UpdateMarketingPartnerDeliveryPlanResponse> ExecuteUpdateMarketingPartnerDeliveryPlanAsync(this WechatTenpayClient client, Models.UpdateMarketingPartnerDeliveryPlanRequest 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", "delivery-plan", "delivery-plans", request.PlanId);
return await client.SendFlurlRequestAsJsonAsync<Models.UpdateMarketingPartnerDeliveryPlanResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [POST] /marketing/partner/delivery-plan/delivery-plans/{plan_id}/terminate 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://pay.weixin.qq.com/doc/v3/partner/4016184572 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.TerminateMarketingPartnerDeliveryPlanResponse> ExecuteTerminateMarketingPartnerDeliveryPlanAsync(this WechatTenpayClient client, Models.TerminateMarketingPartnerDeliveryPlanRequest 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", "delivery-plan", "delivery-plans", request.PlanId, "terminate");
return await client.SendFlurlRequestAsJsonAsync<Models.TerminateMarketingPartnerDeliveryPlanResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [POST] /marketing/partner/delivery-plan/{sp_mchid}/notify-url 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://pay.weixin.qq.com/doc/v3/partner/4016184598 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.UpdateMarketingPartnerDeliveryPlanNotifyUrlResponse> ExecuteUpdateMarketingPartnerDeliveryPlanNotifyUrlAsync(this WechatTenpayClient client, Models.UpdateMarketingPartnerDeliveryPlanNotifyUrlRequest 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", "delivery-plan", client.Credentials.MerchantId, "notify-url");
return await client.SendFlurlRequestAsJsonAsync<Models.UpdateMarketingPartnerDeliveryPlanNotifyUrlResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
}
}

View File

@@ -0,0 +1,98 @@
using System;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/delivery-plan/delivery-plans 接口的请求。</para>
/// </summary>
public class CreateMarketingPartnerDeliveryPlanRequest : WechatTenpayRequest
{
/// <summary>
/// 获取或设置商户请求单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("out_request_no")]
[System.Text.Json.Serialization.JsonPropertyName("out_request_no")]
public string? OutRequestNumber { get; set; }
/// <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("product_coupon_id")]
[System.Text.Json.Serialization.JsonPropertyName("product_coupon_id")]
public string ProductCouponId { 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>
/// 获取或设置是否复用商品券和批次信。
/// </summary>
[Newtonsoft.Json.JsonProperty("reuse_coupon_config")]
[System.Text.Json.Serialization.JsonPropertyName("reuse_coupon_config")]
public bool IsReuseCouponConfig { get; set; }
/// <summary>
/// 获取或设置投放计划名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("plan_name")]
[System.Text.Json.Serialization.JsonPropertyName("plan_name")]
public string? PlanName { 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("user_limit")]
[System.Text.Json.Serialization.JsonPropertyName("user_limit")]
public int? UserLimitCount { get; set; }
/// <summary>
/// 获取或设置单日限领数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("daily_limit")]
[System.Text.Json.Serialization.JsonPropertyName("daily_limit")]
public int? DailyLimitCount { get; set; }
/// <summary>
/// 获取或设置开始时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("delivery_start_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("delivery_start_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
public DateTimeOffset? StartTime { get; set; }
/// <summary>
/// 获取或设置结束时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("delivery_end_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("delivery_end_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
public DateTimeOffset? EndTime { get; set; }
/// <summary>
/// 获取或设置营销自定义文案。
/// </summary>
[Newtonsoft.Json.JsonProperty("recommend_word")]
[System.Text.Json.Serialization.JsonPropertyName("recommend_word")]
public string? RecommentWording { get; set; }
}
}

View File

@@ -0,0 +1,22 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/delivery-plan/delivery-plans 接口的响应。</para>
/// </summary>
public class CreateMarketingPartnerDeliveryPlanResponse : WechatTenpayResponse
{
public static class Types
{
public class Plan : QueryMarketingPartnerDeliveryPlansResponse.Types.Plan
{
}
}
/// <summary>
/// 获取或设置投放计划信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("plan")]
[System.Text.Json.Serialization.JsonPropertyName("plan")]
public Types.Plan Plan { get; set; } = default!;
}
}

View File

@@ -0,0 +1,50 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [GET] /marketing/partner/delivery-plan/delivery-plans/{brand_id}/delivery-plans 接口的请求。</para>
/// </summary>
public class QueryMarketingPartnerDeliveryPlansRequest : WechatTenpayRequest
{
/// <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? PlanId { get; set; }
/// <summary>
/// 获取或设置投放计划状态。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string? PlanState { get; set; }
/// <summary>
/// 获取或设置审核状态。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string? AuditState { get; set; }
/// <summary>
/// 获取或设置分页起始位置。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public int? Offset { get; set; }
/// <summary>
/// 获取或设置分页大小。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public int? Limit { get; set; }
}
}

View File

@@ -0,0 +1,125 @@
using System;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [GET] /marketing/partner/delivery-plan/delivery-plans/{brand_id}/delivery-plans 接口的响应。</para>
/// </summary>
public class QueryMarketingPartnerDeliveryPlansResponse : WechatTenpayResponse
{
public static class Types
{
public class Plan
{
/// <summary>
/// 获取或设置投放计划 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("plan_id")]
[System.Text.Json.Serialization.JsonPropertyName("plan_id")]
public string PlanId { get; set; } = default!;
/// <summary>
/// 获取或设置投放计划名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("plan_name")]
[System.Text.Json.Serialization.JsonPropertyName("plan_name")]
public string PlanName { get; set; } = default!;
/// <summary>
/// 获取或设置投放计划状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("plan_state")]
[System.Text.Json.Serialization.JsonPropertyName("plan_state")]
public string PlanState { 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("product_coupon_id")]
[System.Text.Json.Serialization.JsonPropertyName("product_coupon_id")]
public string ProductCouponId { 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>
/// 获取或设置是否复用商品券和批次信。
/// </summary>
[Newtonsoft.Json.JsonProperty("reuse_coupon_config")]
[System.Text.Json.Serialization.JsonPropertyName("reuse_coupon_config")]
public bool IsReuseCouponConfig { 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("user_limit")]
[System.Text.Json.Serialization.JsonPropertyName("user_limit")]
public int? UserLimitCount { get; set; }
/// <summary>
/// 获取或设置单日限领数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("daily_limit")]
[System.Text.Json.Serialization.JsonPropertyName("daily_limit")]
public int? DailyLimitCount { get; set; }
/// <summary>
/// 获取或设置开始时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("delivery_start_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("delivery_start_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
public DateTimeOffset? StartTime { get; set; }
/// <summary>
/// 获取或设置结束时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("delivery_end_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("delivery_end_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
public DateTimeOffset? EndTime { get; set; }
/// <summary>
/// 获取或设置营销自定义文案。
/// </summary>
[Newtonsoft.Json.JsonProperty("recommend_word")]
[System.Text.Json.Serialization.JsonPropertyName("recommend_word")]
public string? RecommentWording { 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("plan_list")]
[System.Text.Json.Serialization.JsonPropertyName("plan_list")]
public Types.Plan[] PlanList { get; set; } = default!;
}
}

View File

@@ -0,0 +1,15 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/delivery-plan/delivery-plans/{plan_id}/terminate 接口的请求。</para>
/// </summary>
public class TerminateMarketingPartnerDeliveryPlanRequest : WechatTenpayRequest
{
/// <summary>
/// 获取或设置投放计划 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string PlanId { get; set; } = string.Empty;
}
}

View File

@@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/delivery-plan/delivery-plans/{plan_id}/terminate 接口的响应。</para>
/// </summary>
public class TerminateMarketingPartnerDeliveryPlanResponse : WechatTenpayResponse
{
}
}

View File

@@ -0,0 +1,15 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/delivery-plan/{sp_mchid}/notify-url 接口的请求。</para>
/// </summary>
public class UpdateMarketingPartnerDeliveryPlanNotifyUrlRequest : 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,15 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /marketing/partner/delivery-plan/{sp_mchid}/notify-url 接口的响应。</para>
/// </summary>
public class UpdateMarketingPartnerDeliveryPlanNotifyUrlResponse : WechatTenpayResponse
{
/// <summary>
/// 获取或设置回调通知地址。
/// </summary>
[Newtonsoft.Json.JsonProperty("notify_url")]
[System.Text.Json.Serialization.JsonPropertyName("notify_url")]
public string NotifyUrl { get; set; } = default!;
}
}

View File

@@ -0,0 +1,82 @@
using System;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [PATCH] /marketing/partner/delivery-plan/delivery-plans/{plan_id} 接口的请求。</para>
/// </summary>
public class UpdateMarketingPartnerDeliveryPlanRequest : WechatTenpayRequest
{
public static class Types
{
public class ModifyContent
{
/// <summary>
/// 获取或设置投放计划名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("plan_name")]
[System.Text.Json.Serialization.JsonPropertyName("plan_name")]
public string? PlanName { 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("user_limit")]
[System.Text.Json.Serialization.JsonPropertyName("user_limit")]
public int? UserLimitCount { get; set; }
/// <summary>
/// 获取或设置单日限领数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("daily_limit")]
[System.Text.Json.Serialization.JsonPropertyName("daily_limit")]
public int? DailyLimitCount { get; set; }
/// <summary>
/// 获取或设置结束时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("delivery_end_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("delivery_end_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
public DateTimeOffset? EndTime { get; set; }
/// <summary>
/// 获取或设置营销自定义文案。
/// </summary>
[Newtonsoft.Json.JsonProperty("recommend_word")]
[System.Text.Json.Serialization.JsonPropertyName("recommend_word")]
public string? RecommentWording { get; set; }
}
}
/// <summary>
/// 获取或设置投放计划 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string PlanId { 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; }
/// <summary>
/// 获取或设置修改内容。
/// </summary>
[Newtonsoft.Json.JsonProperty("modify_content")]
[System.Text.Json.Serialization.JsonPropertyName("modify_content")]
public Types.ModifyContent ModifyContent { get; set; } = new Types.ModifyContent();
}
}

View File

@@ -0,0 +1,22 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [PATCH] /marketing/partner/delivery-plan/delivery-plans/{plan_id} 接口的响应。</para>
/// </summary>
public class UpdateMarketingPartnerDeliveryPlanResponse : WechatTenpayResponse
{
public static class Types
{
public class Plan : CreateMarketingPartnerDeliveryPlanResponse.Types.Plan
{
}
}
/// <summary>
/// 获取或设置投放计划信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("plan")]
[System.Text.Json.Serialization.JsonPropertyName("plan")]
public Types.Plan Plan { get; set; } = default!;
}
}