mirror of
https://gitee.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat.git
synced 2025-07-16 16:50:43 +08:00
feat(tenpayv3): 新增微信支付分签约计划相关接口
This commit is contained in:
parent
4030fc5366
commit
8b2d5fd185
@ -45,6 +45,7 @@
|
||||
| × | <del>运营工具:转账到银行卡</del> | 直连商户 & 合作伙伴 | 官方未提供 v3 API |
|
||||
| √ | 经营能力:微信支付分 | 直连商户 & 合作伙伴 | |
|
||||
| √ | 经营能力:微信支付分停车 | 直连商户 & 合作伙伴 | |
|
||||
| √ | 经营能力:微信支付分签约计划 | 直连商户 & 合作伙伴 | |
|
||||
| √ | 经营能力:平台收付通 | 合作伙伴 | |
|
||||
| √ | 运营工具:代金券 | 直连商户 & 合作伙伴 | |
|
||||
| √ | 运营工具:商家券 | 直连商户 & 合作伙伴 | |
|
||||
@ -258,6 +259,28 @@
|
||||
|
||||
- 查询订单:`GetVehicleTransactionByOutTradeNumber`
|
||||
|
||||
- 微信支付分签约计划
|
||||
|
||||
- 支付分计划操作
|
||||
|
||||
- 创建支付分计划:`CreatePayScorePlan`
|
||||
|
||||
- 查询支付分计划:`GetPayScorePlanByOutPlanNumber`
|
||||
|
||||
- 停止支付分计划:`StopPayScorePlan`
|
||||
|
||||
- 签约计划详情对应的服务订单
|
||||
|
||||
- 创建用户的签约计划详情对应的服务订单:`CreatePayScoreSignPlanServiceOrder`
|
||||
|
||||
- 管理签约计划
|
||||
|
||||
- 创建用户的签约计划:`CreatePayScoreSignPlanUserSignPlan`
|
||||
|
||||
- 查询用户的签约计划:`GetPayScoreSignPlanUserSignPlanByOutSignPlanNumber`
|
||||
|
||||
- 停止用户的签约计划:`StopPayScoreSignPlanUserSignPlan`
|
||||
|
||||
- 代金券
|
||||
|
||||
- 创建代金券批次:`CreateMarketingFavorStock`
|
||||
@ -740,6 +763,28 @@
|
||||
|
||||
- 查询订单:`GetVehicleTransactionByOutTradeNumber`
|
||||
|
||||
- 微信支付分签约计划
|
||||
|
||||
- 支付分计划操作
|
||||
|
||||
- 创建支付分计划:`CreatePayScorePartnerPlan`
|
||||
|
||||
- 查询支付分计划:`GetPayScorePartnerPlanByOutPlanNumber`
|
||||
|
||||
- 停止支付分计划:`StopPayScorePartnerPlan`
|
||||
|
||||
- 签约计划详情对应的服务订单
|
||||
|
||||
- 创建用户的签约计划详情对应的服务订单:`CreatePayScorePartnerSignPlanServiceOrder`
|
||||
|
||||
- 管理签约计划
|
||||
|
||||
- 创建用户的签约计划:`CreatePayScorePartnerSignPlanUserSignPlan`
|
||||
|
||||
- 查询用户的签约计划:`GetPayScorePartnerSignPlanUserSignPlanByOutSignPlanNumber`
|
||||
|
||||
- 停止用户的签约计划:`StopPayScorePartnerSignPlanUserSignPlan`
|
||||
|
||||
- 平台收付通(商户进件)
|
||||
|
||||
- 二级商户进件:`CreateEcommerceApplyment`
|
||||
|
@ -0,0 +1,168 @@
|
||||
using System;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Events
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 PAYSCORE.USER_SIGN_PLAN(针对直连商户)通知的数据。</para>
|
||||
/// <para>
|
||||
/// REF: <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/merchant/apis/payscore-plan/cancel-sign-plan-notice.html ]]> <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/merchant/apis/payscore-plan/sign-plan-notice.html ]]>
|
||||
/// </para>
|
||||
/// </summary>
|
||||
public class PayScoreUserSignPlanResource : WechatTenpayEvent.Types.IDecryptedResource
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class SignPlanDetail : Models.GetPayScoreSignPlanUserSignPlanByOutSignPlanNumberResponse.Types.SignPlanDetail
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置微信商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("mchid")]
|
||||
public string MerchantId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置微信 AppId。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("appid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("appid")]
|
||||
public string AppId { get; set; } = default!;
|
||||
|
||||
/// <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>
|
||||
/// 获取或设置服务 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("service_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("service_id")]
|
||||
public string ServiceId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户签约计划单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("merchant_sign_plan_no")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("merchant_sign_plan_no")]
|
||||
public string OutSignPlanNumber { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置签约计划 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sign_plan_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sign_plan_id")]
|
||||
public string SignPlanId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置计划状态。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sign_state")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sign_state")]
|
||||
public string SignState { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户唯一标识。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("openid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("openid")]
|
||||
public string OpenId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置回调通知地址。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("merchant_callback_url")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("merchant_callback_url")]
|
||||
public string? NotifyUrl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置目前用户进行到的计划明细序号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("going_detail_no")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("going_detail_no")]
|
||||
public int GoingDetailNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置计划过期时间。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("plan_over_time")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("plan_over_time")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
public DateTimeOffset PlanOverTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置扣费次数。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("deduction_quantity")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("deduction_quantity")]
|
||||
public int DeductionQuantity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置原总金额(单位:分)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("total_origin_price")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("total_origin_price")]
|
||||
public int TotalOriginalPrice { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置实际总金额(单位:分)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("total_actual_price")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("total_actual_price")]
|
||||
public int TotalActualPrice { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置签约时间。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sign_time")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sign_time")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
public DateTimeOffset? SignTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置取消类型。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("cancel_sign_type")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("cancel_sign_type")]
|
||||
public string? CancelType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置取消原因。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("cancel_reason")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("cancel_reason")]
|
||||
public string? CancelReason { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置取消时间。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("cancel_sign_time")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("cancel_sign_time")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
public DateTimeOffset? CancelTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置签约计划明细列表。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("signed_detail_list")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("signed_detail_list")]
|
||||
public Types.SignPlanDetail[]? SignPlanDetailList { get; set; }
|
||||
}
|
||||
}
|
@ -0,0 +1,189 @@
|
||||
using System;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Events
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 PAYSCORE.USER_SIGN_PLAN(针对服务商)通知的数据。</para>
|
||||
/// <para>
|
||||
/// REF: <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/partner/apis/partner-payscore-plan/cancel-sign-plan-notice.html ]]> <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/partner/apis/partner-payscore-plan/sign-plan-notice.html ]]>
|
||||
/// </para>
|
||||
/// </summary>
|
||||
public class PayScorePartnerUserSignPlanResource : WechatTenpayEvent.Types.IDecryptedResource
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class SignPlanDetail : Models.GetPayScorePartnerSignPlanUserSignPlanByOutSignPlanNumberResponse.Types.SignPlanDetail
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置微信商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("mchid")]
|
||||
public string MerchantId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置子商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sub_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
|
||||
public string SubMerchantId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置微信 AppId。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("appid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("appid")]
|
||||
public string AppId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置子商户 AppId。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sub_appid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sub_appid")]
|
||||
public string? SubAppId { get; set; }
|
||||
|
||||
/// <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>
|
||||
/// 获取或设置服务 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("service_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("service_id")]
|
||||
public string ServiceId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户签约计划单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("merchant_sign_plan_no")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("merchant_sign_plan_no")]
|
||||
public string OutSignPlanNumber { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置签约计划 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sign_plan_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sign_plan_id")]
|
||||
public string SignPlanId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置计划状态。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sign_state")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sign_state")]
|
||||
public string SignState { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户唯一标识。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("openid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("openid")]
|
||||
public string OpenId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户在子商户下的唯一标识。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sub_openid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sub_openid")]
|
||||
public string? SubOpenId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置回调通知地址。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("merchant_callback_url")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("merchant_callback_url")]
|
||||
public string? NotifyUrl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置目前用户进行到的计划明细序号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("going_detail_no")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("going_detail_no")]
|
||||
public int GoingDetailNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置计划过期时间。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("plan_over_time")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("plan_over_time")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
public DateTimeOffset PlanOverTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置扣费次数。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("deduction_quantity")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("deduction_quantity")]
|
||||
public int DeductionQuantity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置原总金额(单位:分)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("total_origin_price")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("total_origin_price")]
|
||||
public int TotalOriginalPrice { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置实际总金额(单位:分)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("total_actual_price")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("total_actual_price")]
|
||||
public int TotalActualPrice { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置签约时间。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sign_time")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sign_time")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
public DateTimeOffset? SignTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置取消类型。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("cancel_sign_type")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("cancel_sign_type")]
|
||||
public string? CancelType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置取消原因。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("cancel_reason")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("cancel_reason")]
|
||||
public string? CancelReason { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置取消时间。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("cancel_sign_time")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("cancel_sign_time")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
public DateTimeOffset? CancelTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置签约计划明细列表。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("signed_detail_list")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("signed_detail_list")]
|
||||
public Types.SignPlanDetail[]? SignPlanDetailList { get; set; }
|
||||
}
|
||||
}
|
@ -124,6 +124,74 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Plan
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /payscore/plan/payscore-plans 接口。</para>
|
||||
/// <para>
|
||||
/// REF: <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/merchant/apis/payscore-plan/pay-score-plan/create-pay-score-plan.html ]]>
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.CreatePayScorePlanResponse> ExecuteCreatePayScorePlanAsync(this WechatTenpayClient client, Models.CreatePayScorePlanRequest 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, "payscore", "plan", "payscore-plans");
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.CreatePayScorePlanResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [GET] /payscore/plan/payscore-plans/merchant-plan-no/{merchant_plan_no} 接口。</para>
|
||||
/// <para>
|
||||
/// REF: <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/merchant/apis/payscore-plan/pay-score-plan/query-pay-score-plan.html ]]>
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.GetPayScorePlanByOutPlanNumberResponse> ExecuteGetPayScorePlanByOutPlanNumberAsync(this WechatTenpayClient client, Models.GetPayScorePlanByOutPlanNumberRequest 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, "payscore", "plan", "payscore-plans", "merchant-plan-no", request.OutPlanNumber);
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.GetPayScorePlanByOutPlanNumberResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /payscore/plan/payscore-plans/merchant-plan-no/{merchant_plan_no}/stop 接口。</para>
|
||||
/// <para>
|
||||
/// REF: <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/merchant/apis/payscore-plan/pay-score-plan/stop-pay-score-plan.html ]]>
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.StopPayScorePlanResponse> ExecuteStopPayScorePlanAsync(this WechatTenpayClient client, Models.StopPayScorePlanRequest 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, "payscore", "plan", "payscore-plans", "merchant-plan-no", request.OutPlanNumber, "stop");
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.StopPayScorePlanResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region ServiceOrder
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /payscore/serviceorder/direct-complete 接口。</para>
|
||||
@ -329,5 +397,95 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.SetPayScoreServiceOrderSyncResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region SignPlan
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /payscore/sign-plan/serviceorder 接口。</para>
|
||||
/// <para>
|
||||
/// REF: <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/merchant/apis/payscore-plan/service-order/create-service-order.html ]]>
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.CreatePayScoreSignPlanServiceOrderResponse> ExecuteCreatePayScoreSignPlanServiceOrderAsync(this WechatTenpayClient client, Models.CreatePayScoreSignPlanServiceOrderRequest 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, "payscore", "sign-plan", "serviceorder");
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.CreatePayScoreSignPlanServiceOrderResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /payscore/sign-plan/user-sign-plans 接口。</para>
|
||||
/// <para>
|
||||
/// REF: <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/merchant/apis/payscore-plan/user-sign-plan/create-user-sign-plan.html ]]>
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.CreatePayScoreSignPlanUserSignPlanResponse> ExecuteCreatePayScoreSignPlanUserSignPlanAsync(this WechatTenpayClient client, Models.CreatePayScoreSignPlanUserSignPlanRequest 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, "payscore", "sign-plan", "user-sign-plans");
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.CreatePayScoreSignPlanUserSignPlanResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [GET] /payscore/sign-plan/user-sign-plans/merchant-sign-plan-no/{merchant_sign_plan_no} 接口。</para>
|
||||
/// <para>
|
||||
/// REF: <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/merchant/apis/payscore-plan/user-sign-plan/query-user-sign-plan.html ]]>
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.GetPayScoreSignPlanUserSignPlanByOutSignPlanNumberResponse> ExecuteGetPayScoreSignPlanUserSignPlanByOutSignPlanNumberAsync(this WechatTenpayClient client, Models.GetPayScoreSignPlanUserSignPlanByOutSignPlanNumberRequest 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, "payscore", "sign-plan", "user-sign-plans", "merchant-sign-plan-no", request.OutSignPlanNumber);
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.GetPayScoreSignPlanUserSignPlanByOutSignPlanNumberResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /payscore/sign-plan/user-sign-plans/merchant-sign-plan-no/{merchant_sign_plan_no}/stop 接口。</para>
|
||||
/// <para>
|
||||
/// REF: <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/merchant/apis/payscore-plan/user-sign-plan/query-user-sign-plan.html ]]>
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.StopPayScoreSignPlanUserSignPlanResponse> ExecuteStopPayScoreSignPlanUserSignPlanAsync(this WechatTenpayClient client, Models.StopPayScoreSignPlanUserSignPlanRequest 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, "payscore", "sign-plan", "user-sign-plans", "merchant-sign-plan-no", request.OutSignPlanNumber, "stop");
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.StopPayScoreSignPlanUserSignPlanResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
@ -133,6 +133,75 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Plan
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /payscore/plan/partner/payscore-plans 接口。</para>
|
||||
/// <para>
|
||||
/// REF: <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/partner/apis/partner-payscore-plan/partner-pay-score-plan/create-partner-pay-score-plan.html ]]>
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.CreatePayScorePartnerPlanResponse> ExecuteCreatePayScorePartnerPlanAsync(this WechatTenpayClient client, Models.CreatePayScorePartnerPlanRequest 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, "payscore", "plan", "partner", "payscore-plans");
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.CreatePayScorePartnerPlanResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [GET] /payscore/plan/partner/payscore-plans/merchant-plan-no/{merchant_plan_no} 接口。</para>
|
||||
/// <para>
|
||||
/// REF: <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/partner/apis/partner-payscore-plan/partner-pay-score-plan/query-partner-pay-score-plan.html ]]>
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.GetPayScorePartnerPlanByOutPlanNumberResponse> ExecuteGetPayScorePartnerPlanByOutPlanNumberAsync(this WechatTenpayClient client, Models.GetPayScorePartnerPlanByOutPlanNumberRequest 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, "payscore", "plan", "partner", "payscore-plans", "merchant-plan-no", request.OutPlanNumber)
|
||||
.SetQueryParam("sub_mchid", request.SubMerchantId);
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.GetPayScorePartnerPlanByOutPlanNumberResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /payscore/plan/partner/payscore-plans/merchant-plan-no/{merchant_plan_no}/stop 接口。</para>
|
||||
/// <para>
|
||||
/// REF: <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/partner/apis/partner-payscore-plan/partner-pay-score-plan/stop-partner-pay-score-plan.html ]]>
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.StopPayScorePartnerPlanResponse> ExecuteStopPayScorePartnerPlanAsync(this WechatTenpayClient client, Models.StopPayScorePartnerPlanRequest 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, "payscore", "plan", "partner", "payscore-plans", "merchant-plan-no", request.OutPlanNumber, "stop");
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.StopPayScorePartnerPlanResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region ServiceOrder
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /payscore/partner/serviceorder 接口。</para>
|
||||
@ -344,5 +413,96 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.GetPayScorePartnerServiceQuotasByServiceIdResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region SignPlan
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /payscore/sign-plan/partner/serviceorder 接口。</para>
|
||||
/// <para>
|
||||
/// REF: <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/partner/apis/partner-payscore-plan/partner-service-order/create-partner-service-order.html ]]>
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.CreatePayScorePartnerSignPlanServiceOrderResponse> ExecuteCreatePayScorePartnerSignPlanServiceOrderAsync(this WechatTenpayClient client, Models.CreatePayScorePartnerSignPlanServiceOrderRequest 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, "payscore", "sign-plan", "partner", "serviceorder");
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.CreatePayScorePartnerSignPlanServiceOrderResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /payscore/sign-plan/partner/user-sign-plans 接口。</para>
|
||||
/// <para>
|
||||
/// REF: <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/partner/apis/partner-payscore-plan/partner-user-sign-plan/create-partner-user-sign-plan.html ]]>
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.CreatePayScorePartnerSignPlanUserSignPlanResponse> ExecuteCreatePayScorePartnerSignPlanUserSignPlanAsync(this WechatTenpayClient client, Models.CreatePayScorePartnerSignPlanUserSignPlanRequest 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, "payscore", "sign-plan", "partner", "user-sign-plans");
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.CreatePayScorePartnerSignPlanUserSignPlanResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [GET] /payscore/sign-plan/partner/user-sign-plans/merchant-sign-plan-no/{merchant_sign_plan_no} 接口。</para>
|
||||
/// <para>
|
||||
/// REF: <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/partner/apis/partner-payscore-plan/partner-user-sign-plan/query-partner-user-sign-plan.html ]]>
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.GetPayScorePartnerSignPlanUserSignPlanByOutSignPlanNumberResponse> ExecuteGetPayScorePartnerSignPlanUserSignPlanByOutSignPlanNumberAsync(this WechatTenpayClient client, Models.GetPayScorePartnerSignPlanUserSignPlanByOutSignPlanNumberRequest 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, "payscore", "sign-plan", "partner", "user-sign-plans", "merchant-sign-plan-no", request.OutSignPlanNumber)
|
||||
.SetQueryParam("sub_mchid", request.SubMerchantId);
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.GetPayScorePartnerSignPlanUserSignPlanByOutSignPlanNumberResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /payscore/sign-plan/partner/user-sign-plans/merchant-sign-plan-no/{merchant_sign_plan_no}/stop 接口。</para>
|
||||
/// <para>
|
||||
/// REF: <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/partner/apis/partner-payscore-plan/partner-user-sign-plan/stop-partner-user-sign-plan.html ]]>
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.StopPayScorePartnerSignPlanUserSignPlanResponse> ExecuteStopPayScorePartnerSignPlanUserSignPlanAsync(this WechatTenpayClient client, Models.StopPayScorePartnerSignPlanUserSignPlanRequest 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, "payscore", "sign-plan", "partner", "user-sign-plans", "merchant-sign-plan-no", request.OutSignPlanNumber, "stop");
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.StopPayScorePartnerSignPlanUserSignPlanResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,107 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /payscore/plan/payscore-plans 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class CreatePayScorePlanRequest : WechatTenpayRequest
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class PlanDetail
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置明细名称。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("plan_detail_name")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("plan_detail_name")]
|
||||
public string DetailName { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置优惠说明。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("plan_discount_description")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("plan_discount_description")]
|
||||
public string? DiscountDescription { 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("actual_price")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("actual_price")]
|
||||
public int ActualPrice { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
/// <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("merchant_plan_no")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("merchant_plan_no")]
|
||||
public string OutPlanNumber { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置服务 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("service_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("service_id")]
|
||||
public string ServiceId { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置计划名称。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("plan_name")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("plan_name")]
|
||||
public string PlanName { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置计划有效期(单位:天)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("plan_duration")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("plan_duration")]
|
||||
public int PlanDuration { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置扣费次数。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("deduction_quantity")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("deduction_quantity")]
|
||||
public int DeductionQuantity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置原总金额(单位:分)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("total_original_price")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("total_original_price")]
|
||||
public int TotalOriginalPrice { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置实际总金额(单位:分)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("total_actual_price")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("total_actual_price")]
|
||||
public int TotalActualPrice { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置计划明细列表。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("plan_detail_list")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("plan_detail_list")]
|
||||
public IList<Types.PlanDetail>? PlanDetailList { get; set; }
|
||||
}
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /payscore/plan/payscore-plans 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class CreatePayScorePlanResponse : GetPayScorePlanByOutPlanNumberResponse
|
||||
{
|
||||
}
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /payscore/plan/payscore-plans/merchant-plan-no/{merchant_plan_no} 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class GetPayScorePlanByOutPlanNumberRequest : WechatTenpayRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置商户计划号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonIgnore]
|
||||
[System.Text.Json.Serialization.JsonIgnore]
|
||||
public string OutPlanNumber { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
@ -0,0 +1,151 @@
|
||||
using System;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /payscore/plan/payscore-plans/merchant-plan-no/{merchant_plan_no} 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class GetPayScorePlanByOutPlanNumberResponse : WechatTenpayResponse
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class PlanDetail
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置明细序号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("plan_detail_no")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("plan_detail_no")]
|
||||
public int DetailNumber { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置明细名称。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("plan_detail_name")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("plan_detail_name")]
|
||||
public string DetailName { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置优惠说明。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("plan_discount_description")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("plan_discount_description")]
|
||||
public string? DiscountDescription { 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("actual_price")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("actual_price")]
|
||||
public int ActualPrice { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置微信商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("mchid")]
|
||||
public string MerchantId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置微信 AppId。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("appid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("appid")]
|
||||
public string AppId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户计划号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("merchant_plan_no")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("merchant_plan_no")]
|
||||
public string OutPlanNumber { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置支付分计划 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("plan_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("plan_id")]
|
||||
public string PlanId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置服务 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("service_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("service_id")]
|
||||
public string ServiceId { 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_duration")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("plan_duration")]
|
||||
public int PlanDuration { get; set; }
|
||||
|
||||
/// <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("deduction_quantity")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("deduction_quantity")]
|
||||
public int DeductionQuantity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置原总金额(单位:分)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("total_original_price")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("total_original_price")]
|
||||
public int TotalOriginalPrice { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置实际总金额(单位:分)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("total_actual_price")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("total_actual_price")]
|
||||
public int TotalActualPrice { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置计划明细列表。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("plan_detail_list")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("plan_detail_list")]
|
||||
public Types.PlanDetail[]? PlanDetailList { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置终止方商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("stop_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("stop_mchid")]
|
||||
public string? StopMerchantId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置终止时间。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("stop_time")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("stop_time")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
public DateTimeOffset? StopTime { get; set; }
|
||||
}
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /payscore/plan/payscore-plans/merchant-plan-no/{merchant_plan_no}/stop 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class StopPayScorePlanRequest : WechatTenpayRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置商户计划号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonIgnore]
|
||||
[System.Text.Json.Serialization.JsonIgnore]
|
||||
public string OutPlanNumber { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /payscore/plan/payscore-plans/merchant-plan-no/{merchant_plan_no}/stop 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class StopPayScorePlanResponse : GetPayScorePlanByOutPlanNumberResponse
|
||||
{
|
||||
}
|
||||
}
|
@ -109,14 +109,14 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("start_location")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("start_location")]
|
||||
public string StartLocation { get; set; } = string.Empty;
|
||||
public string? StartLocation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置服务结束地点。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("end_location")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("end_location")]
|
||||
public string EndLocation { get; set; } = string.Empty;
|
||||
public string? EndLocation { get; set; }
|
||||
}
|
||||
|
||||
public class RiskFund
|
||||
|
@ -0,0 +1,96 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /payscore/sign-plan/serviceorder 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class CreatePayScoreSignPlanServiceOrderRequest : WechatTenpayRequest
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class TimeRange : CreatePayScoreServiceOrderRequest.Types.TimeRange
|
||||
{
|
||||
}
|
||||
|
||||
public class Location : CreatePayScoreServiceOrderRequest.Types.Location
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置微信 AppId。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("appid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("appid")]
|
||||
public string AppId { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置待签约支付分计划 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sign_plan_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sign_plan_id")]
|
||||
public string SignPlanId { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置签约计划明细序号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("plan_detail_no")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("plan_detail_no")]
|
||||
public int PlanDetailNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置服务 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("service_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("service_id")]
|
||||
public string ServiceId { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置服务信息。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("service_introduction")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("service_introduction")]
|
||||
public string ServiceInstruction { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户订单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("out_trade_no")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("out_trade_no")]
|
||||
public string OutTradeNumber { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户唯一标识。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("openid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("openid")]
|
||||
public string OpenId { 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("notify_url")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("notify_url")]
|
||||
public string? NotifyUrl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置服务时间段信息。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("time_range")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("time_range")]
|
||||
public Types.TimeRange TimeRange { get; set; } = new Types.TimeRange();
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置服务位置信息。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("location")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("location")]
|
||||
public Types.Location? Location { get; set; }
|
||||
}
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /payscore/sign-plan/serviceorder 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class CreatePayScoreSignPlanServiceOrderResponse : GetPayScoreServiceOrderByOutOrderNumberResponse
|
||||
{
|
||||
}
|
||||
}
|
@ -0,0 +1,79 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /payscore/sign-plan/user-sign-plans 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class CreatePayScoreSignPlanUserSignPlanRequest : WechatTenpayRequest
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class SignPlanDetail
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置计划明细序号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("plan_detail_no")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("plan_detail_no")]
|
||||
public int PlanDetailNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户计划明细使用订单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("merchant_plan_detail_no")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("merchant_plan_detail_no")]
|
||||
public string OutPlanDetailNumber { 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>
|
||||
/// 获取或设置支付分计划 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("plan_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("plan_id")]
|
||||
public string PlanId { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置服务 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("service_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("service_id")]
|
||||
public string ServiceId { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户签约计划单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("merchant_sign_plan_no")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("merchant_sign_plan_no")]
|
||||
public string OutSignPlanNumber { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户唯一标识。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("openid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("openid")]
|
||||
public string OpenId { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置回调通知地址。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("notify_url")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("notify_url")]
|
||||
public string? NotifyUrl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置签约计划明细列表。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sign_plan_detail")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sign_plan_detail")]
|
||||
public IList<Types.SignPlanDetail>? SignPlanDetailList { get; set; }
|
||||
}
|
||||
}
|
@ -0,0 +1,183 @@
|
||||
using System;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /payscore/sign-plan/user-sign-plans 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class CreatePayScoreSignPlanUserSignPlanResponse : WechatTenpayResponse
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class SignPlan
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class SignPlanDetail : GetPayScoreSignPlanUserSignPlanByOutSignPlanNumberResponse.Types.SignPlanDetail
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置微信商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("mchid")]
|
||||
public string MerchantId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置微信 AppId。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("appid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("appid")]
|
||||
public string AppId { get; set; } = default!;
|
||||
|
||||
/// <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>
|
||||
/// 获取或设置服务 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("service_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("service_id")]
|
||||
public string ServiceId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户签约计划单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("merchant_sign_plan_no")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("merchant_sign_plan_no")]
|
||||
public string OutSignPlanNumber { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置签约计划 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sign_plan_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sign_plan_id")]
|
||||
public string SignPlanId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置计划状态。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sign_state")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sign_state")]
|
||||
public string SignState { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户唯一标识。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("openid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("openid")]
|
||||
public string OpenId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置回调通知地址。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("merchant_callback_url")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("merchant_callback_url")]
|
||||
public string? NotifyUrl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置目前用户进行到的计划明细序号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("going_detail_no")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("going_detail_no")]
|
||||
public int GoingDetailNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置计划过期时间。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("plan_over_time")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("plan_over_time")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
public DateTimeOffset PlanOverTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置扣费次数。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("deduction_quantity")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("deduction_quantity")]
|
||||
public int DeductionQuantity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置原总金额(单位:分)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("total_origin_price")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("total_origin_price")]
|
||||
public int TotalOriginalPrice { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置实际总金额(单位:分)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("total_actual_price")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("total_actual_price")]
|
||||
public int TotalActualPrice { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置签约时间。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sign_time")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sign_time")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
public DateTimeOffset? SignTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置取消类型。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("cancel_sign_type")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("cancel_sign_type")]
|
||||
public string? CancelType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置取消原因。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("cancel_reason")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("cancel_reason")]
|
||||
public string? CancelReason { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置取消时间。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("cancel_sign_time")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("cancel_sign_time")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
public DateTimeOffset? CancelTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置签约计划明细列表。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("signed_detail_list")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("signed_detail_list")]
|
||||
public Types.SignPlanDetail[]? SignPlanDetailList { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置跳转微信侧小程序订单数据。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("package")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("package")]
|
||||
public string Package { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置待签约计划信息。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sign_plan")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sign_plan")]
|
||||
public Types.SignPlan SignPlan { get; set; } = default!;
|
||||
}
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /payscore/sign-plan/user-sign-plans/merchant-sign-plan-no/{merchant_sign_plan_no} 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class GetPayScoreSignPlanUserSignPlanByOutSignPlanNumberRequest : WechatTenpayRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置商户签约计划单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonIgnore]
|
||||
[System.Text.Json.Serialization.JsonIgnore]
|
||||
public string OutSignPlanNumber { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
@ -0,0 +1,252 @@
|
||||
using System;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /payscore/sign-plan/user-sign-plans/merchant-sign-plan-no/{merchant_sign_plan_no} 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class GetPayScoreSignPlanUserSignPlanByOutSignPlanNumberResponse : WechatTenpayResponse
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class SignPlanDetail
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置计划明细序号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("plan_detail_no")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("plan_detail_no")]
|
||||
public int PlanDetailNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置明细名称。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("plan_detail_name")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("plan_detail_name")]
|
||||
public string PlanDetailName { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置明细状态。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("plan_detail_state")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("plan_detail_state")]
|
||||
public string PlanDetailState { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置优惠说明。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("plan_discount_description")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("plan_discount_description")]
|
||||
public string? DiscountDescription { 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("actual_price")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("actual_price")]
|
||||
public int ActualPrice { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置实际支付金额(单位:分)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("actual_pay_price")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("actual_pay_price")]
|
||||
public int? ActualPayPrice { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户计划明细使用订单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("merchant_plan_detail_no")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("merchant_plan_detail_no")]
|
||||
public string OutPlanDetailNumber { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置微信支付服务订单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("order_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("order_id")]
|
||||
public string? OrderId { 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("complete_time")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("complete_time")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
public DateTimeOffset? CompleteTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置取消时间。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("cancel_time")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("cancel_time")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
public DateTimeOffset? CancelTime { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置微信商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("mchid")]
|
||||
public string MerchantId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置微信 AppId。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("appid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("appid")]
|
||||
public string AppId { get; set; } = default!;
|
||||
|
||||
/// <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>
|
||||
/// 获取或设置服务 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("service_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("service_id")]
|
||||
public string ServiceId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户签约计划单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("merchant_sign_plan_no")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("merchant_sign_plan_no")]
|
||||
public string OutSignPlanNumber { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置签约计划 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sign_plan_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sign_plan_id")]
|
||||
public string SignPlanId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置计划状态。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sign_state")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sign_state")]
|
||||
public string SignState { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户唯一标识。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("openid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("openid")]
|
||||
public string OpenId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置回调通知地址。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("merchant_callback_url")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("merchant_callback_url")]
|
||||
public string? NotifyUrl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置目前用户进行到的计划明细序号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("going_detail_no")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("going_detail_no")]
|
||||
public int GoingDetailNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置计划过期时间。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("plan_over_time")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("plan_over_time")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
public DateTimeOffset PlanOverTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置扣费次数。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("deduction_quantity")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("deduction_quantity")]
|
||||
public int DeductionQuantity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置原总金额(单位:分)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("total_origin_price")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("total_origin_price")]
|
||||
public int TotalOriginalPrice { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置实际总金额(单位:分)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("total_actual_price")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("total_actual_price")]
|
||||
public int TotalActualPrice { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置签约时间。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sign_time")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sign_time")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
public DateTimeOffset? SignTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置取消类型。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("cancel_sign_type")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("cancel_sign_type")]
|
||||
public string? CancelType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置取消原因。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("cancel_reason")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("cancel_reason")]
|
||||
public string? CancelReason { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置取消时间。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("cancel_sign_time")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("cancel_sign_time")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
public DateTimeOffset? CancelTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置签约计划明细列表。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("signed_detail_list")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("signed_detail_list")]
|
||||
public Types.SignPlanDetail[]? SignPlanDetailList { get; set; }
|
||||
}
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /payscore/sign-plan/user-sign-plans/merchant-sign-plan-no/{merchant_sign_plan_no}/stop 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class StopPayScoreSignPlanUserSignPlanRequest : WechatTenpayRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置商户签约计划单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonIgnore]
|
||||
[System.Text.Json.Serialization.JsonIgnore]
|
||||
public string OutSignPlanNumber { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置停止原因。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("stop_reason")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("stop_reason")]
|
||||
public string? StopReason { get; set; }
|
||||
}
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /payscore/sign-plan/user-sign-plans/merchant-sign-plan-no/{merchant_sign_plan_no}/stop 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class StopPayScoreSignPlanUserSignPlanResponse : GetPayScoreSignPlanUserSignPlanByOutSignPlanNumberResponse
|
||||
{
|
||||
}
|
||||
}
|
@ -11,12 +11,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
public class Payer : GetEducationPAPayTransactionByOutTradeNumberResponse.Types.Payer
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置用户在子商户下唯一标识。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sub_openid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sub_openid")]
|
||||
public string? SubOpenId { get; set; }
|
||||
}
|
||||
|
||||
public class Amount : GetEducationPAPayTransactionByOutTradeNumberResponse.Types.Amount
|
||||
|
@ -0,0 +1,29 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /payscore/plan/partner/payscore-plans 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class CreatePayScorePartnerPlanRequest : CreatePayScorePlanRequest
|
||||
{
|
||||
public static new class Types
|
||||
{
|
||||
public class PlanDetail : CreatePayScorePlanRequest.Types.PlanDetail
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置子商户 AppId。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sub_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
|
||||
public string SubMerchantId { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置子商户 AppId。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sub_appid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sub_appid")]
|
||||
public string? SubAppId { get; set; }
|
||||
}
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /payscore/plan/partner/payscore-plans 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class CreatePayScorePartnerPlanResponse : GetPayScorePartnerPlanByOutPlanNumberResponse
|
||||
{
|
||||
}
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /payscore/plan/partner/payscore-plans/merchant-plan-no/{merchant_plan_no} 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class GetPayScorePartnerPlanByOutPlanNumberRequest : GetPayScorePlanByOutPlanNumberRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置子商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonIgnore]
|
||||
[System.Text.Json.Serialization.JsonIgnore]
|
||||
public string SubMerchantId { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
using System;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /payscore/plan/partner/payscore-plans/merchant-plan-no/{merchant_plan_no} 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class GetPayScorePartnerPlanByOutPlanNumberResponse : GetPayScorePlanByOutPlanNumberResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置子商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sub_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
|
||||
public string SubMerchantId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置子商户 AppId。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sub_appid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sub_appid")]
|
||||
public string? SubAppId { get; set; }
|
||||
}
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /payscore/plan/partner/payscore-plans/merchant-plan-no/{merchant_plan_no}/stop 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class StopPayScorePartnerPlanRequest : StopPayScorePlanRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置子商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sub_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
|
||||
public string SubMerchantId { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /payscore/plan/partner/payscore-plans/merchant-plan-no/{merchant_plan_no}/stop 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class StopPayScorePartnerPlanResponse : GetPayScorePartnerPlanByOutPlanNumberResponse
|
||||
{
|
||||
}
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /payscore/sign-plan/partner/serviceorder 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class CreatePayScorePartnerSignPlanServiceOrderRequest : CreatePayScoreSignPlanServiceOrderRequest
|
||||
{
|
||||
public static new class Types
|
||||
{
|
||||
public class TimeRange : CreatePayScorePartnerServiceOrderRequest.Types.TimeRange
|
||||
{
|
||||
}
|
||||
|
||||
public class Location : CreatePayScorePartnerServiceOrderRequest.Types.Location
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置子商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sub_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
|
||||
public string SubMerchantId { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置子商户 AppId。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sub_appid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sub_appid")]
|
||||
public string? SubAppId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户在子商户下的唯一标识。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sub_openid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sub_openid")]
|
||||
public string? SubOpenId { get; set; }
|
||||
}
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /payscore/sign-plan/partner/serviceorder 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class CreatePayScorePartnerSignPlanServiceOrderResponse : GetPayScorePartnerServiceOrderByOutOrderNumberResponse
|
||||
{
|
||||
}
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /payscore/sign-plan/partner/user-sign-plans 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class CreatePayScorePartnerSignPlanUserSignPlanRequest : CreatePayScoreSignPlanUserSignPlanRequest
|
||||
{
|
||||
public static new class Types
|
||||
{
|
||||
public class SignPlanDetail : CreatePayScoreSignPlanUserSignPlanRequest.Types.SignPlanDetail
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置子商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sub_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
|
||||
public string SubMerchantId { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置子商户 AppId。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sub_appid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sub_appid")]
|
||||
public string SubAppId { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户在子商户下的唯一标识。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sub_openid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sub_openid")]
|
||||
public string? SubOpenId { get; set; }
|
||||
}
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /payscore/sign-plan/partner/user-sign-plans 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class CreatePayScorePartnerSignPlanUserSignPlanResponse : WechatTenpayResponse
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class SignPlan : CreatePayScoreSignPlanUserSignPlanResponse.Types.SignPlan
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置子商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sub_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
|
||||
public string SubMerchantId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置子商户 AppId。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sub_appid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sub_appid")]
|
||||
public string? SubAppId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户在子商户下的唯一标识。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sub_openid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sub_openid")]
|
||||
public string? SubOpenId { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置跳转微信侧小程序订单数据。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("package")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("package")]
|
||||
public string Package { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置待签约计划信息。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sign_plan")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sign_plan")]
|
||||
public Types.SignPlan SignPlan { get; set; } = default!;
|
||||
}
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /payscore/sign-plan/partner/user-sign-plans/merchant-sign-plan-no/{merchant_sign_plan_no} 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class GetPayScorePartnerSignPlanUserSignPlanByOutSignPlanNumberRequest : GetPayScoreSignPlanUserSignPlanByOutSignPlanNumberRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置子商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonIgnore]
|
||||
[System.Text.Json.Serialization.JsonIgnore]
|
||||
public string SubMerchantId { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
@ -0,0 +1,29 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /payscore/sign-plan/partner/user-sign-plans/merchant-sign-plan-no/{merchant_sign_plan_no} 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class GetPayScorePartnerSignPlanUserSignPlanByOutSignPlanNumberResponse : GetPayScoreSignPlanUserSignPlanByOutSignPlanNumberResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置子商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sub_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
|
||||
public string SubMerchantId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置子商户 AppId。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sub_appid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sub_appid")]
|
||||
public string? SubAppId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户在子商户下的唯一标识。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sub_openid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sub_openid")]
|
||||
public string? SubOpenId { get; set; }
|
||||
}
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /payscore/sign-plan/partner/user-sign-plans/merchant-sign-plan-no/{merchant_sign_plan_no}/stop 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class StopPayScorePartnerSignPlanUserSignPlanRequest : StopPayScoreSignPlanUserSignPlanRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置子商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sub_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
|
||||
public string SubMerchantId { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /payscore/sign-plan/partner/user-sign-plans/merchant-sign-plan-no/{merchant_sign_plan_no}/stop 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class StopPayScorePartnerSignPlanUserSignPlanResponse : GetPayScorePartnerSignPlanUserSignPlanByOutSignPlanNumberResponse
|
||||
{
|
||||
}
|
||||
}
|
@ -0,0 +1,93 @@
|
||||
{
|
||||
"sign_plan_id": "01020033210023606914000000007830",
|
||||
"openid": "oBgbt4sGN3Vl76KF7QgLF37UdjDU",
|
||||
"service_id": "00109000000000169034377913212082",
|
||||
"mchid": "2480262201",
|
||||
"appid": "wxa620f17681c6b0c7",
|
||||
"merchant_sign_plan_no": "1693882928726",
|
||||
"merchant_callback_url": "https://payapp.weixin.qq.com/wxvaluetest/common/indirect_bank/2492014071/listennotify",
|
||||
"plan_id": "01000033210032606914000000007983",
|
||||
"going_detail_no": 0,
|
||||
"sign_state": "SIGNED",
|
||||
"cancel_sign_time": "",
|
||||
"cancel_sign_type": "NOT_CANCEL",
|
||||
"cancel_reason": "",
|
||||
"plan_name": "瑜伽课5节",
|
||||
"plan_over_time": "2024-07-02T00:00:00+08:00",
|
||||
"total_origin_price": 1000,
|
||||
"deduction_quantity": 5,
|
||||
"total_actual_price": 500,
|
||||
"signed_detail_list": [
|
||||
{
|
||||
"plan_detail_no": 1,
|
||||
"original_price": 200,
|
||||
"plan_discount_description": "享受五折",
|
||||
"actual_price": 100,
|
||||
"plan_detail_state": "NOT_USED",
|
||||
"order_id": "",
|
||||
"merchant_plan_detail_no": "1693882928727",
|
||||
"plan_detail_name": "服务费1",
|
||||
"actual_pay_price": 0,
|
||||
"use_time": "",
|
||||
"complete_time": "",
|
||||
"cancel_time": ""
|
||||
},
|
||||
{
|
||||
"plan_detail_no": 2,
|
||||
"original_price": 200,
|
||||
"plan_discount_description": "享受五折",
|
||||
"actual_price": 100,
|
||||
"plan_detail_state": "NOT_USED",
|
||||
"order_id": "",
|
||||
"merchant_plan_detail_no": "1693882928728",
|
||||
"plan_detail_name": "服务费2",
|
||||
"actual_pay_price": 0,
|
||||
"use_time": "",
|
||||
"complete_time": "",
|
||||
"cancel_time": ""
|
||||
},
|
||||
{
|
||||
"plan_detail_no": 3,
|
||||
"original_price": 200,
|
||||
"plan_discount_description": "享受五折",
|
||||
"actual_price": 100,
|
||||
"plan_detail_state": "NOT_USED",
|
||||
"order_id": "",
|
||||
"merchant_plan_detail_no": "1693882928729",
|
||||
"plan_detail_name": "服务费3",
|
||||
"actual_pay_price": 0,
|
||||
"use_time": "",
|
||||
"complete_time": "",
|
||||
"cancel_time": ""
|
||||
},
|
||||
{
|
||||
"plan_detail_no": 4,
|
||||
"original_price": 200,
|
||||
"plan_discount_description": "享受五折",
|
||||
"actual_price": 100,
|
||||
"plan_detail_state": "NOT_USED",
|
||||
"order_id": "",
|
||||
"merchant_plan_detail_no": "1693882928730",
|
||||
"plan_detail_name": "服务费4",
|
||||
"actual_pay_price": 0,
|
||||
"use_time": "",
|
||||
"complete_time": "",
|
||||
"cancel_time": ""
|
||||
},
|
||||
{
|
||||
"plan_detail_no": 5,
|
||||
"original_price": 200,
|
||||
"plan_discount_description": "享受五折",
|
||||
"actual_price": 100,
|
||||
"plan_detail_state": "NOT_USED",
|
||||
"order_id": "",
|
||||
"merchant_plan_detail_no": "1693882928731",
|
||||
"plan_detail_name": "服务费5",
|
||||
"actual_pay_price": 0,
|
||||
"use_time": "",
|
||||
"complete_time": "",
|
||||
"cancel_time": ""
|
||||
}
|
||||
],
|
||||
"sign_time": "2023-09-05T11:03:56+08:00"
|
||||
}
|
@ -0,0 +1,95 @@
|
||||
{
|
||||
"sign_plan_id": "01020033210023606914000000007830",
|
||||
"openid": "oBgbt4sGN3Vl76KF7QgLF37UdjDU",
|
||||
"service_id": "00109000000000169034377913212082",
|
||||
"mchid": "2480262201",
|
||||
"sub_mchid": "2480262211",
|
||||
"appid": "wxa620f17681c6b0c7",
|
||||
"sub_appid": "",
|
||||
"merchant_sign_plan_no": "1693882928726",
|
||||
"merchant_callback_url": "https://payapp.weixin.qq.com/wxvaluetest/common/indirect_bank/2492014071/listennotify",
|
||||
"plan_id": "01000033210032606914000000007983",
|
||||
"going_detail_no": 0,
|
||||
"sign_state": "SIGNED",
|
||||
"cancel_sign_time": "",
|
||||
"cancel_sign_type": "NOT_CANCEL",
|
||||
"cancel_reason": "",
|
||||
"plan_name": "瑜伽课5节",
|
||||
"plan_over_time": "2024-07-02T00:00:00+08:00",
|
||||
"total_origin_price": 1000,
|
||||
"deduction_quantity": 5,
|
||||
"total_actual_price": 500,
|
||||
"signed_detail_list": [
|
||||
{
|
||||
"plan_detail_no": 1,
|
||||
"original_price": 200,
|
||||
"plan_discount_description": "享受五折",
|
||||
"actual_price": 100,
|
||||
"plan_detail_state": "NOT_USED",
|
||||
"order_id": "",
|
||||
"merchant_plan_detail_no": "1693882928727",
|
||||
"plan_detail_name": "服务费1",
|
||||
"actual_pay_price": 0,
|
||||
"use_time": "",
|
||||
"complete_time": "",
|
||||
"cancel_time": ""
|
||||
},
|
||||
{
|
||||
"plan_detail_no": 2,
|
||||
"original_price": 200,
|
||||
"plan_discount_description": "享受五折",
|
||||
"actual_price": 100,
|
||||
"plan_detail_state": "NOT_USED",
|
||||
"order_id": "",
|
||||
"merchant_plan_detail_no": "1693882928728",
|
||||
"plan_detail_name": "服务费2",
|
||||
"actual_pay_price": 0,
|
||||
"use_time": "",
|
||||
"complete_time": "",
|
||||
"cancel_time": ""
|
||||
},
|
||||
{
|
||||
"plan_detail_no": 3,
|
||||
"original_price": 200,
|
||||
"plan_discount_description": "享受五折",
|
||||
"actual_price": 100,
|
||||
"plan_detail_state": "NOT_USED",
|
||||
"order_id": "",
|
||||
"merchant_plan_detail_no": "1693882928729",
|
||||
"plan_detail_name": "服务费3",
|
||||
"actual_pay_price": 0,
|
||||
"use_time": "",
|
||||
"complete_time": "",
|
||||
"cancel_time": ""
|
||||
},
|
||||
{
|
||||
"plan_detail_no": 4,
|
||||
"original_price": 200,
|
||||
"plan_discount_description": "享受五折",
|
||||
"actual_price": 100,
|
||||
"plan_detail_state": "NOT_USED",
|
||||
"order_id": "",
|
||||
"merchant_plan_detail_no": "1693882928730",
|
||||
"plan_detail_name": "服务费4",
|
||||
"actual_pay_price": 0,
|
||||
"use_time": "",
|
||||
"complete_time": "",
|
||||
"cancel_time": ""
|
||||
},
|
||||
{
|
||||
"plan_detail_no": 5,
|
||||
"original_price": 200,
|
||||
"plan_discount_description": "享受五折",
|
||||
"actual_price": 100,
|
||||
"plan_detail_state": "NOT_USED",
|
||||
"order_id": "",
|
||||
"merchant_plan_detail_no": "1693882928731",
|
||||
"plan_detail_name": "服务费5",
|
||||
"actual_pay_price": 0,
|
||||
"use_time": "",
|
||||
"complete_time": "",
|
||||
"cancel_time": ""
|
||||
}
|
||||
],
|
||||
"sign_time": "2023-09-05T11:03:56+08:00"
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
{
|
||||
"service_id": "2002000000000558128851361561536",
|
||||
"appid": "wxd678efh567hg6787",
|
||||
"plan_name": "瑜伽课20节",
|
||||
"plan_duration": 300,
|
||||
"deduction_quantity": 10,
|
||||
"total_original_price": 15000,
|
||||
"total_actual_price": 15000,
|
||||
"plan_detail_list": [
|
||||
{
|
||||
"original_price": 15000,
|
||||
"plan_discount_description": "享受九折",
|
||||
"actual_price": 14000,
|
||||
"plan_detail_name": "第八节课"
|
||||
}
|
||||
],
|
||||
"merchant_plan_no": "1234323JKHDFE1243252"
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
{
|
||||
"plan_id": "01000033210000324638000000376258",
|
||||
"service_id": "2002000000000558128851361561536",
|
||||
"mchid": "1900000109",
|
||||
"appid": "wxd678efh567hg6787",
|
||||
"merchant_plan_no": "1234323JKHDFE1243252",
|
||||
"plan_name": "瑜伽课20节",
|
||||
"plan_duration": 10,
|
||||
"plan_state": "NORMAL",
|
||||
"total_original_price": 15000,
|
||||
"deduction_quantity": 10,
|
||||
"total_actual_price": 140000,
|
||||
"plan_detail_list": [
|
||||
{
|
||||
"plan_detail_no": 1,
|
||||
"plan_detail_name": "第8节课",
|
||||
"original_price": 15000,
|
||||
"plan_discount_description": "享受九折优惠",
|
||||
"actual_price": 14000
|
||||
}
|
||||
],
|
||||
"stop_mchid": "1900000109",
|
||||
"stop_time": "2021-05-20T13:29:35.120+08:00"
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
{
|
||||
"plan_id": "01000033210000324638000000376258",
|
||||
"service_id": "2002000000000558128851361561536",
|
||||
"mchid": "1900000109",
|
||||
"appid": "wxd678efh567hg6787",
|
||||
"merchant_plan_no": "1234323JKHDFE1243252",
|
||||
"plan_name": "瑜伽课20节",
|
||||
"plan_duration": 10,
|
||||
"plan_state": "NORMAL",
|
||||
"total_original_price": 15000,
|
||||
"deduction_quantity": 10,
|
||||
"total_actual_price": 140000,
|
||||
"plan_detail_list": [
|
||||
{
|
||||
"plan_detail_no": 1,
|
||||
"plan_detail_name": "第8节课",
|
||||
"original_price": 15000,
|
||||
"plan_discount_description": "享受九折优惠",
|
||||
"actual_price": 14000
|
||||
}
|
||||
],
|
||||
"stop_mchid": "1900000109",
|
||||
"stop_time": "2021-05-20T13:29:35.120+08:00"
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
{
|
||||
"plan_id": "01000033210000324638000000376258",
|
||||
"service_id": "2002000000000558128851361561536",
|
||||
"mchid": "1900000109",
|
||||
"appid": "wxd678efh567hg6787",
|
||||
"merchant_plan_no": "1234323JKHDFE1243252",
|
||||
"plan_name": "瑜伽课20节",
|
||||
"plan_duration": 10,
|
||||
"plan_state": "NORMAL",
|
||||
"total_original_price": 15000,
|
||||
"deduction_quantity": 10,
|
||||
"total_actual_price": 140000,
|
||||
"plan_detail_list": [
|
||||
{
|
||||
"plan_detail_no": 1,
|
||||
"plan_detail_name": "第8节课",
|
||||
"original_price": 15000,
|
||||
"plan_discount_description": "享受九折优惠",
|
||||
"actual_price": 14000
|
||||
}
|
||||
],
|
||||
"stop_mchid": "1900000109",
|
||||
"stop_time": "2021-05-20T13:29:35.120+08:00"
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
{
|
||||
"service_id": "2002000000000558128851361561536",
|
||||
"sign_plan_id": "01000033210000324638000000376258",
|
||||
"plan_detail_no": 2,
|
||||
"appid": "wxd678efh567hg6787",
|
||||
"openid": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o",
|
||||
"notify_url": "https://api.test.com",
|
||||
"service_introduction": "羽毛球课基础练习课程",
|
||||
"time_range": {
|
||||
"start_time": "20091225091010",
|
||||
"end_time": "20091225121010",
|
||||
"start_time_remark": "备注1",
|
||||
"end_time_remark": "备注2"
|
||||
},
|
||||
"location": {
|
||||
"start_location": "嗨客时尚主题展餐厅",
|
||||
"end_location": "嗨客时尚主题展餐厅"
|
||||
},
|
||||
"attach": "Easdfowealsdkjfnlaksjdlfkwqoi&wl3l2sald",
|
||||
"out_trade_no": "1514323JSVDFE1243252"
|
||||
}
|
@ -0,0 +1,38 @@
|
||||
{
|
||||
"out_order_no": "1234323JKHDFE1243252",
|
||||
"service_id": "2002000000000558128851361561536",
|
||||
"appid": "wxd678efh567hg6787",
|
||||
"mchid": "1230000109",
|
||||
"service_introduction": "羽毛球课程基础训练",
|
||||
"state": "CREATED",
|
||||
"state_description": "USER_CONFIRM",
|
||||
"post_payments": [
|
||||
{
|
||||
"name": "瑜伽课程20节",
|
||||
"amount": 40000,
|
||||
"description": "第6节课"
|
||||
}
|
||||
],
|
||||
"post_discounts": [
|
||||
{
|
||||
"name": "享9折优惠",
|
||||
"amount": 100
|
||||
}
|
||||
],
|
||||
"risk_fund": {
|
||||
"amount": 10000
|
||||
},
|
||||
"time_range": {
|
||||
"start_time": "20091225091010",
|
||||
"end_time": "20091225121010",
|
||||
"start_time_remark": "备注1",
|
||||
"end_time_remark": "备注2"
|
||||
},
|
||||
"location": {
|
||||
"start_location": "嗨客时尚主题展餐厅",
|
||||
"end_location": "嗨客时尚主题展餐厅"
|
||||
},
|
||||
"attach": "Easdfowealsdkjfnlaksjdlfkwqoi&wl3l2sald",
|
||||
"notify_url": "https://api.test.com",
|
||||
"order_id": "0000300001201908301055157220022"
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
{
|
||||
"service_id": "2002000000000558128851361561536",
|
||||
"plan_id": "01000033210000324638000000376258",
|
||||
"appid": "wxd678efh567hg6787",
|
||||
"openid": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o",
|
||||
"merchant_sign_plan_no": "1234323JKHDFE1243252",
|
||||
"notify_url": "https://api.test.com",
|
||||
"sign_plan_detail": [
|
||||
{
|
||||
"plan_detail_no": 1,
|
||||
"merchant_plan_detail_no": "1234323JKHDFE1243252"
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
{
|
||||
"sign_plan": {
|
||||
"sign_plan_id": "01010033210001424338000019876258",
|
||||
"openid": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o",
|
||||
"service_id": "2002000000000558128851361561536",
|
||||
"mchid": "1900000109",
|
||||
"appid": "wxd678efh567hg6787",
|
||||
"merchant_sign_plan_no": "1234323JKHDFE1243252",
|
||||
"merchant_callback_url": "https://api.test.com",
|
||||
"plan_id": "01000033210000324638000000376258",
|
||||
"going_detail_no": 2,
|
||||
"sign_state": "UNSIGNED",
|
||||
"cancel_sign_time": "2021-05-20T13:29:35.120+08:00",
|
||||
"cancel_sign_type": "NOT_CANCEL",
|
||||
"cancel_reason": "用户放弃课程",
|
||||
"plan_name": "瑜伽晨练课10次",
|
||||
"plan_over_time": "2021-05-20T13:29:35.120+08:00",
|
||||
"total_origin_price": 150000,
|
||||
"deduction_quantity": 10,
|
||||
"total_actual_price": 120000,
|
||||
"signed_detail_list": [
|
||||
{
|
||||
"plan_detail_no": 1,
|
||||
"original_price": 30000,
|
||||
"plan_discount_description": "享9折优惠",
|
||||
"actual_price": 27000,
|
||||
"plan_detail_state": "NOT_USED",
|
||||
"order_id": "0000300001201908301055157220022",
|
||||
"merchant_plan_detail_no": "1234323JKHDFE1243252",
|
||||
"plan_detail_name": "第一节课",
|
||||
"actual_pay_price": 50000,
|
||||
"use_time": "2021-05-20T13:29:35.120+08:00",
|
||||
"complete_time": "2021-05-20T13:29:35.120+08:00",
|
||||
"cancel_time": "2021-05-20T13:29:35.120+08:00"
|
||||
}
|
||||
],
|
||||
"sign_time": "2021-05-20T13:29:35.120+08:00"
|
||||
},
|
||||
"package": "Easdfowealsdkjfnlaksjdlfkwqoi&wl3l2sald"
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
{
|
||||
"sign_plan_id": "01010033210001424338000019876258",
|
||||
"openid": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o",
|
||||
"service_id": "2002000000000558128851361561536",
|
||||
"mchid": "1900000109",
|
||||
"appid": "wxd678efh567hg6787",
|
||||
"merchant_sign_plan_no": "1234323JKHDFE1243252",
|
||||
"merchant_callback_url": "https://api.test.com",
|
||||
"plan_id": "01000033210000324638000000376258",
|
||||
"going_detail_no": 2,
|
||||
"sign_state": "UNSIGNED",
|
||||
"cancel_sign_time": "2021-05-20T13:29:35.120+08:00",
|
||||
"cancel_sign_type": "NOT_CANCEL",
|
||||
"cancel_reason": "用户放弃课程",
|
||||
"plan_name": "瑜伽晨练课10次",
|
||||
"plan_over_time": "2021-05-20T13:29:35.120+08:00",
|
||||
"total_origin_price": 150000,
|
||||
"deduction_quantity": 10,
|
||||
"total_actual_price": 120000,
|
||||
"signed_detail_list": [
|
||||
{
|
||||
"plan_detail_no": 1,
|
||||
"original_price": 30000,
|
||||
"plan_discount_description": "享9折优惠",
|
||||
"actual_price": 27000,
|
||||
"plan_detail_state": "NOT_USED",
|
||||
"order_id": "0000300001201908301055157220022",
|
||||
"merchant_plan_detail_no": "1234323JKHDFE1243252",
|
||||
"plan_detail_name": "第一节课",
|
||||
"actual_pay_price": 50000,
|
||||
"use_time": "2021-05-20T13:29:35.120+08:00",
|
||||
"complete_time": "2021-05-20T13:29:35.120+08:00",
|
||||
"cancel_time": "2021-05-20T13:29:35.120+08:00"
|
||||
}
|
||||
],
|
||||
"sign_time": "2021-05-20T13:29:35.120+08:00"
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
{
|
||||
"stop_reason": "用户协商后停止"
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
{
|
||||
"sign_plan_id": "01010033210001424338000019876258",
|
||||
"openid": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o",
|
||||
"service_id": "2002000000000558128851361561536",
|
||||
"mchid": "1900000109",
|
||||
"appid": "wxd678efh567hg6787",
|
||||
"merchant_sign_plan_no": "1234323JKHDFE1243252",
|
||||
"merchant_callback_url": "https://api.test.com",
|
||||
"plan_id": "01000033210000324638000000376258",
|
||||
"going_detail_no": 2,
|
||||
"sign_state": "UNSIGNED",
|
||||
"cancel_sign_time": "2021-05-20T13:29:35.120+08:00",
|
||||
"cancel_sign_type": "NOT_CANCEL",
|
||||
"cancel_reason": "用户放弃课程",
|
||||
"plan_name": "瑜伽晨练课10次",
|
||||
"plan_over_time": "2021-05-20T13:29:35.120+08:00",
|
||||
"total_origin_price": 150000,
|
||||
"deduction_quantity": 10,
|
||||
"total_actual_price": 120000,
|
||||
"signed_detail_list": [
|
||||
{
|
||||
"plan_detail_no": 1,
|
||||
"original_price": 30000,
|
||||
"plan_discount_description": "享9折优惠",
|
||||
"actual_price": 27000,
|
||||
"plan_detail_state": "NOT_USED",
|
||||
"order_id": "0000300001201908301055157220022",
|
||||
"merchant_plan_detail_no": "1234323JKHDFE1243252",
|
||||
"plan_detail_name": "第一节课",
|
||||
"actual_pay_price": 50000,
|
||||
"use_time": "2021-05-20T13:29:35.120+08:00",
|
||||
"complete_time": "2021-05-20T13:29:35.120+08:00",
|
||||
"cancel_time": "2021-05-20T13:29:35.120+08:00"
|
||||
}
|
||||
],
|
||||
"sign_time": "2021-05-20T13:29:35.120+08:00"
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
{
|
||||
"service_id": "2002000000000558128851361561536",
|
||||
"appid": "wxd678efh567hg6787",
|
||||
"sub_mchid": "1900000109",
|
||||
"sub_appid": "wxd678efh567hg6787",
|
||||
"plan_name": "瑜伽课20节",
|
||||
"plan_duration": 300,
|
||||
"deduction_quantity": 10,
|
||||
"total_original_price": 15000,
|
||||
"total_actual_price": 15000,
|
||||
"plan_detail_list": [
|
||||
{
|
||||
"original_price": 15000,
|
||||
"plan_discount_description": "享受九折",
|
||||
"actual_price": 14000,
|
||||
"plan_detail_name": "第八节课"
|
||||
}
|
||||
],
|
||||
"merchant_plan_no": "1234323JKHDFE1243252"
|
||||
}
|
@ -0,0 +1,26 @@
|
||||
{
|
||||
"plan_id": "01000033210000324638000000376258",
|
||||
"service_id": "2002000000000558128851361561536",
|
||||
"mchid": "1900000109",
|
||||
"sub_mchid": "1900000109",
|
||||
"appid": "wxd678efh567hg6787",
|
||||
"sub_appid": "wxd678efh567hg6787",
|
||||
"merchant_plan_no": "1234323JKHDFE1243252",
|
||||
"plan_name": "瑜伽课20节",
|
||||
"plan_duration": 10,
|
||||
"plan_state": "NORMAL",
|
||||
"total_original_price": 15000,
|
||||
"deduction_quantity": 10,
|
||||
"total_actual_price": 140000,
|
||||
"plan_detail_list": [
|
||||
{
|
||||
"plan_detail_no": 1,
|
||||
"plan_detail_name": "第8节课",
|
||||
"original_price": 15000,
|
||||
"plan_discount_description": "享受九折优惠",
|
||||
"actual_price": 14000
|
||||
}
|
||||
],
|
||||
"stop_mchid": "1900000109",
|
||||
"stop_time": "2021-05-20T13:29:35.120+08:00"
|
||||
}
|
@ -0,0 +1,26 @@
|
||||
{
|
||||
"plan_id": "01000033210000324638000000376258",
|
||||
"service_id": "2002000000000558128851361561536",
|
||||
"mchid": "1900000109",
|
||||
"sub_mchid": "1900000109",
|
||||
"appid": "wxd678efh567hg6787",
|
||||
"sub_appid": "wxd678efh567hg6787",
|
||||
"merchant_plan_no": "1234323JKHDFE1243252",
|
||||
"plan_name": "瑜伽课20节",
|
||||
"plan_duration": 10,
|
||||
"plan_state": "NORMAL",
|
||||
"total_original_price": 15000,
|
||||
"deduction_quantity": 10,
|
||||
"total_actual_price": 140000,
|
||||
"plan_detail_list": [
|
||||
{
|
||||
"plan_detail_no": 1,
|
||||
"plan_detail_name": "第8节课",
|
||||
"original_price": 15000,
|
||||
"plan_discount_description": "享受九折优惠",
|
||||
"actual_price": 14000
|
||||
}
|
||||
],
|
||||
"stop_mchid": "1900000109",
|
||||
"stop_time": "2021-05-20T13:29:35.120+08:00"
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
{
|
||||
"sub_mchid": "1900000109"
|
||||
}
|
@ -0,0 +1,26 @@
|
||||
{
|
||||
"plan_id": "01000033210000324638000000376258",
|
||||
"service_id": "2002000000000558128851361561536",
|
||||
"mchid": "1900000109",
|
||||
"sub_mchid": "1900000109",
|
||||
"appid": "wxd678efh567hg6787",
|
||||
"sub_appid": "wxd678efh567hg6787",
|
||||
"merchant_plan_no": "1234323JKHDFE1243252",
|
||||
"plan_name": "瑜伽课20节",
|
||||
"plan_duration": 10,
|
||||
"plan_state": "NORMAL",
|
||||
"total_original_price": 15000,
|
||||
"deduction_quantity": 10,
|
||||
"total_actual_price": 140000,
|
||||
"plan_detail_list": [
|
||||
{
|
||||
"plan_detail_no": 1,
|
||||
"plan_detail_name": "第8节课",
|
||||
"original_price": 15000,
|
||||
"plan_discount_description": "享受九折优惠",
|
||||
"actual_price": 14000
|
||||
}
|
||||
],
|
||||
"stop_mchid": "1900000109",
|
||||
"stop_time": "2021-05-20T13:29:35.120+08:00"
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
{
|
||||
"service_id": "2002000000000558128851361561536",
|
||||
"sign_plan_id": "01000033210000324638000000376258",
|
||||
"plan_detail_no": 2,
|
||||
"appid": "wxd678efh567hg6787",
|
||||
"sub_mchid": "1900000109",
|
||||
"sub_appid": "wxd678efh567hg6999",
|
||||
"openid": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o",
|
||||
"sub_openid": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o",
|
||||
"notify_url": "https://api.test.com",
|
||||
"service_introduction": "羽毛球课基础练习课程",
|
||||
"time_range": {
|
||||
"start_time": "20091225091010",
|
||||
"end_time": "20091225121010",
|
||||
"start_time_remark": "备注1",
|
||||
"end_time_remark": "备注2"
|
||||
},
|
||||
"location": {
|
||||
"start_location": "嗨客时尚主题展餐厅",
|
||||
"end_location": "嗨客时尚主题展餐厅"
|
||||
},
|
||||
"attach": "Easdfowealsdkjfnlaksjdlfkwqoi&wl3l2sald",
|
||||
"out_trade_no": "1514323JSVDFE1243252"
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
{
|
||||
"out_order_no": "1234323JKHDFE1243252",
|
||||
"service_id": "2002000000000558128851361561536",
|
||||
"appid": "wxd678efh567hg6787",
|
||||
"mchid": "1230000109",
|
||||
"sub_appid": "wxd678efh567hg6999",
|
||||
"sub_mchid": "1900000109",
|
||||
"service_introduction": "羽毛球课程基础训练",
|
||||
"state": "CREATED",
|
||||
"state_description": "USER_CONFIRM",
|
||||
"post_payments": [
|
||||
{
|
||||
"name": "瑜伽课程20节",
|
||||
"amount": 40000,
|
||||
"description": "第6节课"
|
||||
}
|
||||
],
|
||||
"post_discounts": [
|
||||
{
|
||||
"name": "享9折优惠",
|
||||
"amount": 100
|
||||
}
|
||||
],
|
||||
"risk_fund": {
|
||||
"amount": 10000
|
||||
},
|
||||
"time_range": {
|
||||
"start_time": "20091225091010",
|
||||
"end_time": "20091225121010",
|
||||
"start_time_remark": "备注1",
|
||||
"end_time_remark": "备注2"
|
||||
},
|
||||
"location": {
|
||||
"start_location": "嗨客时尚主题展餐厅",
|
||||
"end_location": "嗨客时尚主题展餐厅"
|
||||
},
|
||||
"attach": "Easdfowealsdkjfnlaksjdlfkwqoi&wl3l2sald",
|
||||
"notify_url": "https://api.test.com",
|
||||
"order_id": "0000300001201908301055157220022"
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
{
|
||||
"service_id": "2002000000000558128851361561536",
|
||||
"plan_id": "01000033210000324638000000376258",
|
||||
"appid": "wxd678efh567hg6787",
|
||||
"sub_mchid": "1900000109",
|
||||
"sub_appid": "wxd678efh567hg6999",
|
||||
"openid": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o",
|
||||
"sub_openid": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o",
|
||||
"merchant_sign_plan_no": "1234323JKHDFE1243252",
|
||||
"notify_url": "https://api.test.com",
|
||||
"sign_plan_detail": [
|
||||
{
|
||||
"plan_detail_no": 1,
|
||||
"merchant_plan_detail_no": "1234323JKHDFE1243252"
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
{
|
||||
"sign_plan": {
|
||||
"sign_plan_id": "01010033210001424338000019876258",
|
||||
"openid": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o",
|
||||
"sub_openid": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o",
|
||||
"service_id": "2002000000000558128851361561536",
|
||||
"mchid": "1900000109",
|
||||
"sub_mchid": "1900000109",
|
||||
"appid": "wxd678efh567hg6787",
|
||||
"sub_appid": "wxd678efh567hg6787",
|
||||
"merchant_sign_plan_no": "1234323JKHDFE1243252",
|
||||
"merchant_callback_url": "https://api.test.com",
|
||||
"plan_id": "01000033210000324638000000376258",
|
||||
"going_detail_no": 2,
|
||||
"sign_state": "UNSIGNED",
|
||||
"cancel_sign_time": "2021-05-20T13:29:35.120+08:00",
|
||||
"cancel_sign_type": "NOT_CANCEL",
|
||||
"cancel_reason": "用户放弃课程",
|
||||
"plan_name": "瑜伽晨练课10次",
|
||||
"plan_over_time": "2021-05-20T13:29:35.120+08:00",
|
||||
"total_origin_price": 150000,
|
||||
"deduction_quantity": 10,
|
||||
"total_actual_price": 120000,
|
||||
"signed_detail_list": [
|
||||
{
|
||||
"plan_detail_no": 1,
|
||||
"original_price": 30000,
|
||||
"plan_discount_description": "享9折优惠",
|
||||
"actual_price": 27000,
|
||||
"plan_detail_state": "NOT_USED",
|
||||
"order_id": "0000300001201908301055157220022",
|
||||
"merchant_plan_detail_no": "1234323JKHDFE1243252",
|
||||
"plan_detail_name": "第一节课",
|
||||
"actual_pay_price": 50000,
|
||||
"use_time": "2021-05-20T13:29:35.120+08:00",
|
||||
"complete_time": "2021-05-20T13:29:35.120+08:00",
|
||||
"cancel_time": "2021-05-20T13:29:35.120+08:00"
|
||||
}
|
||||
],
|
||||
"sign_time": "2021-05-20T13:29:35.120+08:00"
|
||||
},
|
||||
"package": "Easdfowealsdkjfnlaksjdlfkwqoi&wl3l2sald"
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
{
|
||||
"sign_plan_id": "01010033210001424338000019876258",
|
||||
"openid": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o",
|
||||
"sub_openid": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o",
|
||||
"service_id": "2002000000000558128851361561536",
|
||||
"mchid": "1900000109",
|
||||
"sub_mchid": "1900000109",
|
||||
"appid": "wxd678efh567hg6787",
|
||||
"sub_appid": "wxd678efh567hg6787",
|
||||
"merchant_sign_plan_no": "1234323JKHDFE1243252",
|
||||
"merchant_callback_url": "https://api.test.com",
|
||||
"plan_id": "01000033210000324638000000376258",
|
||||
"going_detail_no": 2,
|
||||
"sign_state": "UNSIGNED",
|
||||
"cancel_sign_time": "2021-05-20T13:29:35.120+08:00",
|
||||
"cancel_sign_type": "NOT_CANCEL",
|
||||
"cancel_reason": "用户放弃课程",
|
||||
"plan_name": "瑜伽晨练课10次",
|
||||
"plan_over_time": "2021-05-20T13:29:35.120+08:00",
|
||||
"total_origin_price": 150000,
|
||||
"deduction_quantity": 10,
|
||||
"total_actual_price": 120000,
|
||||
"signed_detail_list": [
|
||||
{
|
||||
"plan_detail_no": 1,
|
||||
"original_price": 30000,
|
||||
"plan_discount_description": "享9折优惠",
|
||||
"actual_price": 27000,
|
||||
"plan_detail_state": "NOT_USED",
|
||||
"order_id": "0000300001201908301055157220022",
|
||||
"merchant_plan_detail_no": "1234323JKHDFE1243252",
|
||||
"plan_detail_name": "第一节课",
|
||||
"actual_pay_price": 50000,
|
||||
"use_time": "2021-05-20T13:29:35.120+08:00",
|
||||
"complete_time": "2021-05-20T13:29:35.120+08:00",
|
||||
"cancel_time": "2021-05-20T13:29:35.120+08:00"
|
||||
}
|
||||
],
|
||||
"sign_time": "2021-05-20T13:29:35.120+08:00"
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
{
|
||||
"sub_mchid": "1900000109",
|
||||
"stop_reason": "用户协商后停止"
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
{
|
||||
"sign_plan_id": "01010033210001424338000019876258",
|
||||
"openid": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o",
|
||||
"sub_openid": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o",
|
||||
"service_id": "2002000000000558128851361561536",
|
||||
"mchid": "1900000109",
|
||||
"sub_mchid": "1900000109",
|
||||
"appid": "wxd678efh567hg6787",
|
||||
"sub_appid": "wxd678efh567hg6787",
|
||||
"merchant_sign_plan_no": "1234323JKHDFE1243252",
|
||||
"merchant_callback_url": "https://api.test.com",
|
||||
"plan_id": "01000033210000324638000000376258",
|
||||
"going_detail_no": 2,
|
||||
"sign_state": "UNSIGNED",
|
||||
"cancel_sign_time": "2021-05-20T13:29:35.120+08:00",
|
||||
"cancel_sign_type": "NOT_CANCEL",
|
||||
"cancel_reason": "用户放弃课程",
|
||||
"plan_name": "瑜伽晨练课10次",
|
||||
"plan_over_time": "2021-05-20T13:29:35.120+08:00",
|
||||
"total_origin_price": 150000,
|
||||
"deduction_quantity": 10,
|
||||
"total_actual_price": 120000,
|
||||
"signed_detail_list": [
|
||||
{
|
||||
"plan_detail_no": 1,
|
||||
"original_price": 30000,
|
||||
"plan_discount_description": "享9折优惠",
|
||||
"actual_price": 27000,
|
||||
"plan_detail_state": "NOT_USED",
|
||||
"order_id": "0000300001201908301055157220022",
|
||||
"merchant_plan_detail_no": "1234323JKHDFE1243252",
|
||||
"plan_detail_name": "第一节课",
|
||||
"actual_pay_price": 50000,
|
||||
"use_time": "2021-05-20T13:29:35.120+08:00",
|
||||
"complete_time": "2021-05-20T13:29:35.120+08:00",
|
||||
"cancel_time": "2021-05-20T13:29:35.120+08:00"
|
||||
}
|
||||
],
|
||||
"sign_time": "2021-05-20T13:29:35.120+08:00"
|
||||
}
|
Loading…
Reference in New Issue
Block a user