mirror of
https://gitee.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat.git
synced 2026-02-11 02:07:49 +08:00
feat(tenpayv3): 新增直连商户委托代扣相关接口
This commit is contained in:
@@ -520,7 +520,7 @@
|
||||
|
||||
- 扣款服务
|
||||
|
||||
- 预扣费通知:`NotifyPAPayContract`
|
||||
- 预扣费通知:`CreatePAPayContractNotification`
|
||||
|
||||
- 代扣服务切卡组件
|
||||
|
||||
|
||||
@@ -0,0 +1,117 @@
|
||||
using System;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Events
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示委托代扣 ENTRUST.SIGN 通知的数据。</para>
|
||||
/// <para>表示委托代扣 ENTRUST.TERMINATE 通知的数据。</para>
|
||||
/// </summary>
|
||||
public class PAPayEntrustResource : WechatTenpayEvent.Types.IDecryptedResource
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class Termination : Models.GetPAPaySignContractByOutContractCodeResponse.Types.Termination
|
||||
{
|
||||
}
|
||||
|
||||
public class DeductSchedule : Models.GetPAPaySignContractByOutContractCodeResponse.Types.DeductSchedule
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
/// <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 long PlanId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户签约协议号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("out_contract_code")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("out_contract_code")]
|
||||
public string OutContractCode { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置委托代扣签约协议 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("contract_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("contract_id")]
|
||||
public string ContractId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置协议状态。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("contract_state")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("contract_state")]
|
||||
public string ContractState { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置签署时间。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("contract_signed_time")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("contract_signed_time")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
public DateTimeOffset? SignTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置到期时间。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("contract_expired_time")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("contract_expired_time")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
public DateTimeOffset? ExpireTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户唯一标识。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("openid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("openid")]
|
||||
public string? OpenId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户账户展示名称。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("contract_display_account")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("contract_display_account")]
|
||||
public string ContractDisplayAccount { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户侧用户标识。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("out_user_code")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("out_user_code")]
|
||||
public string? OutUserCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置解约信息。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("contract_terminate_info")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("contract_terminate_info")]
|
||||
public Types.Termination? Termination { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置预约扣费场景的预约信息。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("deduct_schedule")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("deduct_schedule")]
|
||||
public Types.DeductSchedule? DeductSchedule { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -11,7 +11,8 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Events
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/merchant/apis/h5-payment/payment-notice.html ]]> <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/merchant/apis/native-payment/payment-notice.html ]]> <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/merchant/apis/mini-program-payment/payment-notice.html ]]> <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/merchant/apis/profit-sharing/notice-division.html ]]>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/merchant/apis/profit-sharing/notice-division.html ]]> <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/merchant/apis/entrusted-payment/deduct-result-notify.html ]]>
|
||||
/// </para>
|
||||
/// </summary>
|
||||
public class TransactionResource : WechatTenpayEvent.Types.IDecryptedResource
|
||||
|
||||
@@ -56,7 +56,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Events
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("plan_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("plan_id")]
|
||||
public int PlanId { get; set; }
|
||||
public long PlanId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户唯一标识。
|
||||
|
||||
@@ -41,7 +41,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global.Events
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("plan_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("plan_id")]
|
||||
public int PlanId { get; set; }
|
||||
public long PlanId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户唯一标识。
|
||||
|
||||
@@ -17,7 +17,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global.Models
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonIgnore]
|
||||
[System.Text.Json.Serialization.JsonIgnore]
|
||||
public int PlanId { get; set; }
|
||||
public long PlanId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户侧签约协议号。
|
||||
|
||||
@@ -26,7 +26,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global.Models
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("plan_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("plan_id")]
|
||||
public int PlanId { get; set; }
|
||||
public long PlanId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户侧签约协议号。
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global.Models
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("plan_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("plan_id")]
|
||||
public int PlanId { get; set; }
|
||||
public long PlanId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户侧签约协议号。
|
||||
|
||||
@@ -10,6 +10,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global.Models
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("session_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("session_id")]
|
||||
public string SessionId { get; set; } = default!;
|
||||
public string PresignSessionId { get; set; } = default!;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,6 +10,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global.Models
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("session_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("session_id")]
|
||||
public string SessionId { get; set; } = default!;
|
||||
public string PresignSessionId { get; set; } = default!;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.NotifyPAPayContractResponse> ExecuteNotifyPAPayContractAsync(this WechatTenpayClient client, Models.NotifyPAPayContractRequest request, CancellationToken cancellationToken = default)
|
||||
public static async Task<Models.CreatePAPayContractNotificationResponse> ExecuteCreatePAPayContractNotificationAsync(this WechatTenpayClient client, Models.CreatePAPayContractNotificationRequest request, CancellationToken cancellationToken = default)
|
||||
{
|
||||
if (client is null) throw new ArgumentNullException(nameof(client));
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
@@ -30,7 +30,213 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateFlurlRequest(request, HttpMethod.Post, "papay", "contracts", request.ContractId, "notify");
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.NotifyPAPayContractResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.CreatePAPayContractNotificationResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
#region PaySchedules
|
||||
/// <summary>
|
||||
/// <para>异步调用 [GET] /papay/pay/schedules/contract-id/{contract_id} 接口。</para>
|
||||
/// <para>
|
||||
/// REF: <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/merchant/apis/entrusted-payment/normal/normal-query-deduct-schedule.html ]]>
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.GetPAPayPaySchedulesContractByContractIdResponse> ExecuteGetPAPayPaySchedulesContractByContractIdAsync(this WechatTenpayClient client, Models.GetPAPayPaySchedulesContractByContractIdRequest 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, "papay", "pay", "schedules", "contract-id", request.ContractId);
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.GetPAPayPaySchedulesContractByContractIdResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /papay/pay/schedules/contract-id/{contract_id}/schedule 接口。</para>
|
||||
/// <para>
|
||||
/// REF: <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/merchant/apis/entrusted-payment/normal/normal-schedule-deduction.html ]]>
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.CreatePAPayPaySchedulesContractScheduleResponse> ExecuteCreatePAPayPaySchedulesContractScheduleAsync(this WechatTenpayClient client, Models.CreatePAPayPaySchedulesContractScheduleRequest 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, "papay", "pay", "schedules", "contract-id", request.ContractId, "schedule");
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.CreatePAPayPaySchedulesContractScheduleResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region PayTransactions
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /papay/pay/transactions/apply 接口。</para>
|
||||
/// <para>
|
||||
/// REF: <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/merchant/apis/entrusted-payment/normal/normal-schedule-deduction.html ]]>
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.ApplyPAPayPayTransactionResponse> ExecuteApplyPAPayPayTransactionAsync(this WechatTenpayClient client, Models.ApplyPAPayPayTransactionRequest 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, "papay", "pay", "transactions", "apply");
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.ApplyPAPayPayTransactionResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region ScheduledDeductSign
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /papay/scheduled-deduct-sign/contracts/pre-entrust-sign/app 接口。</para>
|
||||
/// <para>
|
||||
/// REF: <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/merchant/apis/entrusted-payment/normal/normal-app-scheduled-deduct-pre-sign.html ]]>
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.PresignPAPayScheduledDeductSignContractEntrustAppResponse> ExecutePresignPAPayScheduledDeductSignContractEntrustAppAsync(this WechatTenpayClient client, Models.PresignPAPayScheduledDeductSignContractEntrustAppRequest 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, "papay", "scheduled-deduct-sign", "contracts", "pre-entrust-sign", "app");
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.PresignPAPayScheduledDeductSignContractEntrustAppResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /papay/scheduled-deduct-sign/contracts/pre-entrust-sign/h5 接口。</para>
|
||||
/// <para>
|
||||
/// REF: <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/merchant/apis/entrusted-payment/normal/normal-h5-scheduled-deduct-pre-sign.html ]]>
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.PresignPAPayScheduledDeductSignContractEntrustH5Response> ExecutePresignPAPayScheduledDeductSignContractEntrustH5Async(this WechatTenpayClient client, Models.PresignPAPayScheduledDeductSignContractEntrustH5Request 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, "papay", "scheduled-deduct-sign", "contracts", "pre-entrust-sign", "h5");
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.PresignPAPayScheduledDeductSignContractEntrustH5Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /papay/scheduled-deduct-sign/contracts/pre-entrust-sign/jsapi 接口。</para>
|
||||
/// <para>
|
||||
/// REF: <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/merchant/apis/entrusted-payment/normal/jsapi-scheduled-deduct-pre-sign.html ]]>
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.PresignPAPayScheduledDeductSignContractEntrustJsapiResponse> ExecutePresignPAPayScheduledDeductSignContractEntrustJsapiAsync(this WechatTenpayClient client, Models.PresignPAPayScheduledDeductSignContractEntrustJsapiRequest 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, "papay", "scheduled-deduct-sign", "contracts", "pre-entrust-sign", "jsapi");
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.PresignPAPayScheduledDeductSignContractEntrustJsapiResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /papay/scheduled-deduct-sign/contracts/pre-entrust-sign/mini-program 接口。</para>
|
||||
/// <para>
|
||||
/// REF: <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/merchant/apis/entrusted-payment/normal/mini-program-scheduled-deduct-pre-sign.html ]]>
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.PresignPAPayScheduledDeductSignContractEntrustMiniProgramResponse> ExecutePresignPAPayScheduledDeductSignContractEntrustMiniProgramAsync(this WechatTenpayClient client, Models.PresignPAPayScheduledDeductSignContractEntrustMiniProgramRequest 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, "papay", "scheduled-deduct-sign", "contracts", "pre-entrust-sign", "mini-program");
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.PresignPAPayScheduledDeductSignContractEntrustMiniProgramResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region SignContracts
|
||||
/// <summary>
|
||||
/// <para>异步调用 [GET] /papay/sign/contracts/plan-id/{plan_id}/out-contract-code/{out_contract_code} 接口。</para>
|
||||
/// <para>
|
||||
/// REF: <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/merchant/apis/entrusted-payment/normal/normal-get-contract-by-code.html ]]>
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.GetPAPaySignContractByOutContractCodeResponse> ExecuteGetPAPaySignContractByOutContractCodeAsync(this WechatTenpayClient client, Models.GetPAPaySignContractByOutContractCodeRequest 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, "papay", "sign", "contracts", "plan-id", request.PlanId, "out-contract-code", request.OutContractCode);
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.GetPAPaySignContractByOutContractCodeResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /papay/sign/contracts/plan-id/{plan_id}/out-contract-code/{out_contract_code}/terminate 接口。</para>
|
||||
/// <para>
|
||||
/// REF: <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/merchant/apis/entrusted-payment/normal/normal-terminate-contract-by-code.html ]]>
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.TerminatePAPaySignContractResponse> ExecuteTerminatePAPaySignContractAsync(this WechatTenpayClient client, Models.TerminatePAPaySignContractRequest 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, "papay", "sign", "contracts", "plan-id", request.PlanId, "out-contract-code", request.OutContractCode, "terminate");
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.TerminatePAPaySignContractResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.NotifyPartnerPAPayContractResponse> ExecuteNotifyPartnerPAPayContractAsync(this WechatTenpayClient client, Models.NotifyPartnerPAPayContractRequest request, CancellationToken cancellationToken = default)
|
||||
public static async Task<Models.CreatePartnerPAPayContractNotificationResponse> ExecuteCreatePartnerPAPayContractNotificationAsync(this WechatTenpayClient client, Models.CreatePartnerPAPayContractNotificationRequest request, CancellationToken cancellationToken = default)
|
||||
{
|
||||
if (client is null) throw new ArgumentNullException(nameof(client));
|
||||
if (request is null) throw new ArgumentNullException(nameof(request));
|
||||
@@ -30,7 +30,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
IFlurlRequest flurlReq = client
|
||||
.CreateFlurlRequest(request, HttpMethod.Post, "partner-papay", "contracts", request.ContractId, "notify");
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.NotifyPartnerPAPayContractResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.CreatePartnerPAPayContractNotificationResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,11 +27,11 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
public string OpenId { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户用户账号。
|
||||
/// 获取或设置商户用户账号标识。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("user_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("user_id")]
|
||||
public string UserDisplayId { get; set; } = string.Empty;
|
||||
public string OutUserId { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置首次扣款日期字符串(格式:yyyy-MM-dd)。
|
||||
|
||||
@@ -3,7 +3,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /papay/contracts/{contract_id}/notify 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class NotifyPAPayContractRequest : WechatTenpayRequest
|
||||
public class CreatePAPayContractNotificationRequest : WechatTenpayRequest
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
@@ -3,7 +3,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /papay/contracts/{contract_id}/notify 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class NotifyPAPayContractResponse : WechatTenpayResponse
|
||||
public class CreatePAPayContractNotificationResponse : WechatTenpayResponse
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /papay/pay/schedules/contract-id/{contract_id}/schedule 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class CreatePAPayPaySchedulesContractScheduleRequest : WechatTenpayRequest
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class Amount : PresignPAPayScheduledDeductSignContractEntrustAppRequest.Types.DeductSchedule.Types.Amount
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置委托代扣签约协议 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonIgnore]
|
||||
[System.Text.Json.Serialization.JsonIgnore]
|
||||
public string ContractId { 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>
|
||||
/// 获取或设置预约的金额信息。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("schedule_amount")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("schedule_amount")]
|
||||
public Types.Amount ScheduleAmount { get; set; } = new Types.Amount();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /papay/pay/schedules/contract-id/{contract_id}/schedule 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class CreatePAPayPaySchedulesContractScheduleResponse : GetPAPayPaySchedulesContractByContractIdResponse
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /papay/pay/schedules/contract-id/{contract_id} 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class GetPAPayPaySchedulesContractByContractIdRequest : WechatTenpayRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置委托代扣签约协议 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonIgnore]
|
||||
[System.Text.Json.Serialization.JsonIgnore]
|
||||
public string ContractId { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /papay/pay/schedules/contract-id/{contract_id} 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class GetPAPayPaySchedulesContractByContractIdResponse : WechatTenpayResponse
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class Amount
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置金额(单位:分)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("total")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("total")]
|
||||
public int Total { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置货币类型。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("currency")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("currency")]
|
||||
public string? Currency { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置扣费预约状态。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("schedule_state")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("schedule_state")]
|
||||
public string ScheduleState { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置可扣费开始日期字符串(格式:yyyy-MM-dd)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("deduct_start_date")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("deduct_start_date")]
|
||||
public string? DeductStartDateString { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置可扣费结束日期字符串(格式:yyyy-MM-dd)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("deduct_end_date")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("deduct_end_date")]
|
||||
public string? DeductEndDateString { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置已预约的扣费金额信息。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("scheduled_amount")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("scheduled_amount")]
|
||||
public Types.Amount? ScheduledAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置实际扣费金额信息。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("deduct_amount")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("deduct_amount")]
|
||||
public Types.Amount? DeductAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置实际扣费日期字符串(格式:yyyy-MM-dd)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("deduct_date")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("deduct_date")]
|
||||
public string? DeductDateString { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /papay/pay/transactions/apply 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class ApplyPAPayPayTransactionRequest : WechatTenpayRequest
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class Amount : PresignPAPayScheduledDeductSignContractEntrustAppRequest.Types.DeductSchedule.Types.Amount
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
/// <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("out_trade_no")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("out_trade_no")]
|
||||
public string OutTradeNumber { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商品描述。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("description")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("description")]
|
||||
public string Description { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置委托代扣签约协议 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("contract_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("contract_id")]
|
||||
public string ContractId { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置回调通知地址。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("transaction_notify_url")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("transaction_notify_url")]
|
||||
public string NotifyUrl { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置订单优惠标记。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("goods_tag")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("goods_tag")]
|
||||
public string? GoodsTag { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置附加数据。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("attach")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("attach")]
|
||||
public string? Attachment { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置金额信息。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("amount")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("amount")]
|
||||
public Types.Amount Amount { get; set; } = new Types.Amount();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /papay/pay/transactions/apply 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class ApplyPAPayPayTransactionResponse : WechatTenpayResponse
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class Amount : GetPAPayPaySchedulesContractByContractIdResponse.Types.Amount
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户订单号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("out_trade_no")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("out_trade_no")]
|
||||
public string OutTradeNumber { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置扣费金额信息。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("amount")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("amount")]
|
||||
public Types.Amount Amount { get; set; } = default!;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /papay/scheduled-deduct-sign/contracts/pre-entrust-sign/app 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class PresignPAPayScheduledDeductSignContractEntrustAppRequest : WechatTenpayRequest
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class DeductSchedule
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class Amount
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置金额(单位:分)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("total")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("total")]
|
||||
public int Total { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置货币类型。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("currency")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("currency")]
|
||||
public string? Currency { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置预计扣费的日期字符串(格式:yyyy-MM-dd)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("estimated_deduct_date")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("estimated_deduct_date")]
|
||||
public string EstimatedDeductDateString { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置预计的扣费金额信息。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("estimated_deduct_amount")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("estimated_deduct_amount")]
|
||||
public Types.Amount EstimatedDeductAmount { get; set; } = new Types.Amount();
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商品描述。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("description")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("description")]
|
||||
public string Description { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置微信 AppId。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("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 long PlanId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户签约协议号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("out_contract_code")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("out_contract_code")]
|
||||
public string OutContractCode { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户唯一标识。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("openid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("openid")]
|
||||
public string? OpenId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户账户展示名称。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("contract_display_account")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("contract_display_account")]
|
||||
public string ContractDisplayAccount { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置签约结果回调通知地址。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("contract_notify_url")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("contract_notify_url")]
|
||||
public string ContractNotifyUrl { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户侧用户标识。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("out_user_code")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("out_user_code")]
|
||||
public string? OutUserCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置预约信息。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("deduct_schedule")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("deduct_schedule")]
|
||||
public Types.DeductSchedule? DeductSchedule { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /papay/scheduled-deduct-sign/contracts/pre-entrust-sign/app 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class PresignPAPayScheduledDeductSignContractEntrustAppResponse : WechatTenpayResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置预签约会话 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("pre_entrustweb_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("pre_entrustweb_id")]
|
||||
public string PresignSessionId { get; set; } = default!;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /papay/scheduled-deduct-sign/contracts/pre-entrust-sign/h5 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class PresignPAPayScheduledDeductSignContractEntrustH5Request : WechatTenpayRequest
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class DeductSchedule : PresignPAPayScheduledDeductSignContractEntrustAppRequest.Types.DeductSchedule
|
||||
{
|
||||
public static new class Types
|
||||
{
|
||||
public class Amount : PresignPAPayScheduledDeductSignContractEntrustAppRequest.Types.DeductSchedule.Types.Amount
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class JumpControl
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置跳转应用的 AppId。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("jump_appid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("jump_appid")]
|
||||
public string JumpAppId { 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 long PlanId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户签约协议号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("out_contract_code")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("out_contract_code")]
|
||||
public string OutContractCode { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户唯一标识。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("openid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("openid")]
|
||||
public string? OpenId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户账户展示名称。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("contract_display_account")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("contract_display_account")]
|
||||
public string ContractDisplayAccount { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置签约结果回调通知地址。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("contract_notify_url")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("contract_notify_url")]
|
||||
public string ContractNotifyUrl { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户侧用户标识。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("out_user_code")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("out_user_code")]
|
||||
public string? OutUserCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置预约信息。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("deduct_schedule")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("deduct_schedule")]
|
||||
public Types.DeductSchedule? DeductSchedule { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置跳转控制信息。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("jump_control")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("jump_control")]
|
||||
public Types.JumpControl? JumpControl { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /papay/scheduled-deduct-sign/contracts/pre-entrust-sign/h5 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class PresignPAPayScheduledDeductSignContractEntrustH5Response : WechatTenpayResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置跳转 URL。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("redirect_url")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("redirect_url")]
|
||||
public string RedirectUrl { get; set; } = default!;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /papay/scheduled-deduct-sign/contracts/pre-entrust-sign/jsapi 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class PresignPAPayScheduledDeductSignContractEntrustJsapiRequest : WechatTenpayRequest
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class DeductSchedule : PresignPAPayScheduledDeductSignContractEntrustAppRequest.Types.DeductSchedule
|
||||
{
|
||||
public static new class Types
|
||||
{
|
||||
public class Amount : PresignPAPayScheduledDeductSignContractEntrustAppRequest.Types.DeductSchedule.Types.Amount
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <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 long PlanId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户签约协议号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("out_contract_code")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("out_contract_code")]
|
||||
public string OutContractCode { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户唯一标识。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("openid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("openid")]
|
||||
public string? OpenId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户账户展示名称。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("contract_display_account")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("contract_display_account")]
|
||||
public string ContractDisplayAccount { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置签约结果回调通知地址。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("contract_notify_url")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("contract_notify_url")]
|
||||
public string ContractNotifyUrl { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户侧用户标识。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("out_user_code")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("out_user_code")]
|
||||
public string? OutUserCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置预约信息。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("deduct_schedule")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("deduct_schedule")]
|
||||
public Types.DeductSchedule? DeductSchedule { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /papay/scheduled-deduct-sign/contracts/pre-entrust-sign/jsapi 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class PresignPAPayScheduledDeductSignContractEntrustJsapiResponse : WechatTenpayResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置跳转 URL。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("redirect_url")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("redirect_url")]
|
||||
public string RedirectUrl { get; set; } = default!;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /papay/scheduled-deduct-sign/contracts/pre-entrust-sign/mini-program 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class PresignPAPayScheduledDeductSignContractEntrustMiniProgramRequest : WechatTenpayRequest
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class DeductSchedule : PresignPAPayScheduledDeductSignContractEntrustAppRequest.Types.DeductSchedule
|
||||
{
|
||||
public static new class Types
|
||||
{
|
||||
public class Amount : PresignPAPayScheduledDeductSignContractEntrustAppRequest.Types.DeductSchedule.Types.Amount
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <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 long PlanId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户签约协议号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("out_contract_code")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("out_contract_code")]
|
||||
public string OutContractCode { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户唯一标识。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("openid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("openid")]
|
||||
public string? OpenId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户账户展示名称。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("contract_display_account")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("contract_display_account")]
|
||||
public string ContractDisplayAccount { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置签约结果回调通知地址。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("contract_notify_url")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("contract_notify_url")]
|
||||
public string ContractNotifyUrl { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户侧用户标识。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("out_user_code")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("out_user_code")]
|
||||
public string? OutUserCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置预约信息。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("deduct_schedule")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("deduct_schedule")]
|
||||
public Types.DeductSchedule? DeductSchedule { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /papay/scheduled-deduct-sign/contracts/pre-entrust-sign/mini-program 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class PresignPAPayScheduledDeductSignContractEntrustMiniProgramResponse : WechatTenpayResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置预签约会话 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("pre_entrustweb_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("pre_entrustweb_id")]
|
||||
public string PresignSessionId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置跳转小程序 AppId。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("redirect_appid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("redirect_appid")]
|
||||
public string RedirectAppId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置跳转小程序页面路径。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("redirect_path")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("redirect_path")]
|
||||
public string RedirectPagePath { get; set; } = default!;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /papay/sign/contracts/plan-id/{plan_id}/out-contract-code/{out_contract_code} 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class GetPAPaySignContractByOutContractCodeRequest : WechatTenpayRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置商户签约协议号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonIgnore]
|
||||
[System.Text.Json.Serialization.JsonIgnore]
|
||||
public string OutContractCode { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置模板 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonIgnore]
|
||||
[System.Text.Json.Serialization.JsonIgnore]
|
||||
public long PlanId { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,186 @@
|
||||
using System;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /papay/sign/contracts/plan-id/{plan_id}/out-contract-code/{out_contract_code} 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class GetPAPaySignContractByOutContractCodeResponse : WechatTenpayResponse
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class Termination
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置解约时间。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("contract_terminated_time")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("contract_terminated_time")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
public DateTimeOffset TerminateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置解约方式。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("contract_termination_mode")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("contract_termination_mode")]
|
||||
public string TerminationMode { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置解约备注。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("contract_termination_remark")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("contract_termination_remark")]
|
||||
public string TerminationRemark { get; set; } = default!;
|
||||
}
|
||||
|
||||
public class DeductSchedule
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class Amount : GetPAPayPaySchedulesContractByContractIdResponse.Types.Amount
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置预计扣费的日期字符串(格式:yyyy-MM-dd)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("estimated_deduct_date")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("estimated_deduct_date")]
|
||||
public string EstimatedDeductDateString { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置预计的扣费金额信息。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("estimated_deduct_amount")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("estimated_deduct_amount")]
|
||||
public Types.Amount EstimatedDeductAmount { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置扣费预约状态。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("schedule_state")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("schedule_state")]
|
||||
public string ScheduleState { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置已预约的扣费金额信息。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("scheduled_amount")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("scheduled_amount")]
|
||||
public Types.Amount? ScheduledAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置实际扣费金额信息。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("deduct_amount")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("deduct_amount")]
|
||||
public Types.Amount? DeductAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置实际扣费日期字符串(格式:yyyy-MM-dd)。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("deduct_date")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("deduct_date")]
|
||||
public string? DeductDateString { 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 long PlanId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户签约协议号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("out_contract_code")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("out_contract_code")]
|
||||
public string OutContractCode { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置委托代扣签约协议 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("contract_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("contract_id")]
|
||||
public string ContractId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置协议状态。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("contract_state")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("contract_state")]
|
||||
public string ContractState { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置签署时间。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("contract_signed_time")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("contract_signed_time")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
public DateTimeOffset? SignTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置到期时间。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("contract_expired_time")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("contract_expired_time")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.Rfc3339DateTimeOffsetConverter))]
|
||||
public DateTimeOffset? ExpireTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户唯一标识。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("openid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("openid")]
|
||||
public string? OpenId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户账户展示名称。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("contract_display_account")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("contract_display_account")]
|
||||
public string ContractDisplayAccount { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户侧用户标识。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("out_user_code")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("out_user_code")]
|
||||
public string? OutUserCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置解约信息。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("contract_terminate_info")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("contract_terminate_info")]
|
||||
public Types.Termination? Termination { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置预约扣费场景的预约信息。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("deduct_schedule")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("deduct_schedule")]
|
||||
public Types.DeductSchedule? DeductSchedule { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /papay/sign/contracts/plan-id/{plan_id}/out-contract-code/{out_contract_code}/terminate 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class TerminatePAPaySignContractRequest : WechatTenpayRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置商户签约协议号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonIgnore]
|
||||
[System.Text.Json.Serialization.JsonIgnore]
|
||||
public string OutContractCode { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置模板 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonIgnore]
|
||||
[System.Text.Json.Serialization.JsonIgnore]
|
||||
public long PlanId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置解约备注。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("contract_termination_remark")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("contract_termination_remark")]
|
||||
public string TerminationRemark { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /papay/sign/contracts/plan-id/{plan_id}/out-contract-code/{out_contract_code}/terminate 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class TerminatePAPaySignContractResponse : GetPAPaySignContractByOutContractCodeResponse
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -10,7 +10,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonIgnore]
|
||||
[System.Text.Json.Serialization.JsonIgnore]
|
||||
public int PlanId { get; set; }
|
||||
public long PlanId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户侧签约协议号。
|
||||
|
||||
@@ -55,7 +55,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("plan_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("plan_id")]
|
||||
public int PlanId { get; set; }
|
||||
public long PlanId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户签约协议号。
|
||||
@@ -83,7 +83,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("contract_state")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("contract_state")]
|
||||
public string State { get; set; } = default!;
|
||||
public string ContractState { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户唯一标识。
|
||||
|
||||
@@ -17,7 +17,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("plan_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("plan_id")]
|
||||
public int PlanId { get; set; }
|
||||
public long PlanId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户签约协议号。
|
||||
|
||||
@@ -17,7 +17,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("plan_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("plan_id")]
|
||||
public int PlanId { get; set; }
|
||||
public long PlanId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户签约协议号。
|
||||
@@ -31,6 +31,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("pre_entrustweb_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("pre_entrustweb_id")]
|
||||
public string SessionId { get; set; } = default!;
|
||||
public string PresignSessionId { get; set; } = default!;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonIgnore]
|
||||
[System.Text.Json.Serialization.JsonIgnore]
|
||||
public int PlanId { get; set; }
|
||||
public long PlanId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户侧签约协议号。
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("plan_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("plan_id")]
|
||||
public int PlanId { get; set; }
|
||||
public long PlanId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户签约协议号。
|
||||
|
||||
@@ -77,11 +77,11 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
public string ContractId { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户用户账号。
|
||||
/// 获取或设置商户用户账号标识。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("user_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("user_id")]
|
||||
public string UserDisplayId { get; set; } = string.Empty;
|
||||
public string OutUserId { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户订单号。
|
||||
|
||||
@@ -94,11 +94,11 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
public string OpenId { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户用户账号。
|
||||
/// 获取或设置商户用户账号标识。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("user_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("user_id")]
|
||||
public string UserDisplayId { get; set; } = string.Empty;
|
||||
public string OutUserId { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置学校编号。
|
||||
|
||||
@@ -3,11 +3,11 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /partner-papay/contracts/{contract_id}/notify 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class NotifyPartnerPAPayContractRequest : WechatTenpayRequest
|
||||
public class CreatePartnerPAPayContractNotificationRequest : WechatTenpayRequest
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class Amount : NotifyPAPayContractRequest.Types.Amount
|
||||
public class Amount : CreatePAPayContractNotificationRequest.Types.Amount
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -3,7 +3,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /partner-papay/contracts/{contract_id}/notify 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class NotifyPartnerPAPayContractResponse : WechatTenpayResponse
|
||||
public class CreatePartnerPAPayContractNotificationResponse : WechatTenpayResponse
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"appid": "wxd678efh567hg6787",
|
||||
"contract_display_account": "微信代扣用户A",
|
||||
"contract_expired_time": "2021-09-10T13:29:35+08:00",
|
||||
"contract_id": "123124412412423431",
|
||||
"contract_signed_time": "2020-09-10T13:29:35+08:00",
|
||||
"contract_state": "SIGNED",
|
||||
"deduct_schedule": {
|
||||
"deduct_amount": {
|
||||
"currency": "CNY",
|
||||
"total": 1
|
||||
},
|
||||
"deduct_date": "2019-11-22",
|
||||
"estimated_deduct_amount": {
|
||||
"currency": "CNY",
|
||||
"total": 1
|
||||
},
|
||||
"estimated_deduct_date": "2019-11-22",
|
||||
"schedule_state": "PAID",
|
||||
"scheduled_amount": {
|
||||
"currency": "CNY",
|
||||
"total": 1
|
||||
}
|
||||
},
|
||||
"mchid": "1900000109",
|
||||
"openid": "o-MYE42l80oelYMDE34nYD456Xoy",
|
||||
"out_contract_code": "wxwtdk20200910100000",
|
||||
"out_user_code": "用户A",
|
||||
"plan_id": 12535
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"appid": "wxd678efh567hg6787",
|
||||
"schedule_amount": {
|
||||
"total": 1,
|
||||
"currency": "CNY"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"schedule_state": "NO_SCHEDULED",
|
||||
"deduct_start_date": "2019-11-22",
|
||||
"deduct_end_date": "2019-11-22",
|
||||
"scheduled_amount": {
|
||||
"total": 1,
|
||||
"currency": "CNY"
|
||||
},
|
||||
"deduct_amount": {
|
||||
"total": 1,
|
||||
"currency": "CNY"
|
||||
},
|
||||
"deduct_date": "2019-11-22"
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"schedule_state": "NO_SCHEDULED",
|
||||
"deduct_start_date": "2019-11-22",
|
||||
"deduct_end_date": "2019-11-22",
|
||||
"scheduled_amount": {
|
||||
"total": 1,
|
||||
"currency": "CNY"
|
||||
},
|
||||
"deduct_amount": {
|
||||
"total": 1,
|
||||
"currency": "CNY"
|
||||
},
|
||||
"deduct_date": "2019-11-22"
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"appid": "wxd678efh567hg6787",
|
||||
"out_trade_no": "1217752501201407033233368018",
|
||||
"description": "Image形象店-深圳腾大-QQ公仔",
|
||||
"transaction_notify_url": "https://www.qq.com/",
|
||||
"contract_id": "123124412412423431",
|
||||
"amount": {
|
||||
"total": 1,
|
||||
"currency": "CNY"
|
||||
},
|
||||
"goods_tag": "DISCOUNTS",
|
||||
"attach": "自定义数据"
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"out_trade_no": "1217752501201407033233368018",
|
||||
"amount": {
|
||||
"total": 1,
|
||||
"currency": "CNY"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"appid": "wxd678efh567hg6787",
|
||||
"openid": "oYobu0MVnQfWpSMOYJz2AHPG_gQw",
|
||||
"plan_id": 12535,
|
||||
"out_contract_code": "wxwtdk20200910100000",
|
||||
"contract_display_account": "微信代扣用户A",
|
||||
"contract_notify_url": "https://yourapp.com/notify",
|
||||
"out_user_code": "用户A",
|
||||
"deduct_schedule": {
|
||||
"estimated_deduct_date": "2019-11-22",
|
||||
"estimated_deduct_amount": {
|
||||
"total": 1,
|
||||
"currency": "CNY"
|
||||
},
|
||||
"description": "小乔-碎云皮肤(微信83区沧海之耀)"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"pre_entrustweb_id": "5778aadY9nltAsZzXixCkFIGYnV2V"
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"appid": "wxd678efh567hg6787",
|
||||
"openid": "oYobu0MVnQfWpSMOYJz2AHPG_gQw",
|
||||
"plan_id": 12535,
|
||||
"out_contract_code": "wxwtdk20200910100000",
|
||||
"contract_display_account": "微信代扣用户A",
|
||||
"contract_notify_url": "https://yourapp.com/notify",
|
||||
"out_user_code": "用户A",
|
||||
"deduct_schedule": {
|
||||
"estimated_deduct_date": "2019-11-22",
|
||||
"estimated_deduct_amount": {
|
||||
"total": 1,
|
||||
"currency": "CNY"
|
||||
},
|
||||
"description": "小乔-碎云皮肤(微信83区沧海之耀)"
|
||||
},
|
||||
"jump_control": {
|
||||
"jump_appid": "wxd678efh567hg6787"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"redirect_url": "https://www.xxx.com/xxxtemplate?session_id=wx12334"
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"appid": "wxd678efh567hg6787",
|
||||
"openid": "oYobu0MVnQfWpSMOYJz2AHPG_gQw",
|
||||
"plan_id": 12535,
|
||||
"out_contract_code": "wxwtdk20200910100000",
|
||||
"contract_display_account": "微信代扣用户A",
|
||||
"contract_notify_url": "https://yourapp.com/notify",
|
||||
"out_user_code": "用户A",
|
||||
"deduct_schedule": {
|
||||
"estimated_deduct_date": "2019-11-22",
|
||||
"estimated_deduct_amount": {
|
||||
"total": 1,
|
||||
"currency": "CNY"
|
||||
},
|
||||
"description": "小乔-碎云皮肤(微信83区沧海之耀)"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"redirect_url": "https://www.xxx.com?pre_entrust_id=wx12334"
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"appid": "wxd678efh567hg6787",
|
||||
"openid": "oYobu0MVnQfWpSMOYJz2AHPG_gQw",
|
||||
"plan_id": 12535,
|
||||
"out_contract_code": "wxwtdk20200910100000",
|
||||
"contract_display_account": "微信代扣用户A",
|
||||
"contract_notify_url": "https://yourapp.com/notify",
|
||||
"out_user_code": "用户A",
|
||||
"deduct_schedule": {
|
||||
"estimated_deduct_date": "2019-11-22",
|
||||
"estimated_deduct_amount": {
|
||||
"total": 1,
|
||||
"currency": "CNY"
|
||||
},
|
||||
"description": "小乔-碎云皮肤(微信83区沧海之耀)"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"pre_entrustweb_id": "5778aadY9nltAsZzXixCkFIGYnV2V",
|
||||
"redirect_appid": "wxbd687630cd02ce1d",
|
||||
"redirect_path": "pages/PwdExemptContract/index"
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"mchid": "1900000109",
|
||||
"contract_id": "123124412412423431",
|
||||
"appid": "wxd678efh567hg6787",
|
||||
"plan_id": 12535,
|
||||
"out_contract_code": "wxwtdk20200910100000",
|
||||
"contract_display_account": "微信代扣用户A",
|
||||
"contract_state": "SIGNED",
|
||||
"contract_signed_time": "2020-09-10T13:29:35+08:00",
|
||||
"contract_expired_time": "2021-09-10T13:29:35+08:00",
|
||||
"openid": "o-MYE42l80oelYMDE34nYD456Xoy",
|
||||
"contract_terminate_info": {
|
||||
"contract_termination_mode": "USER_TERMINATE",
|
||||
"contract_terminated_time": "2020-10-10T13:29:35+08:00",
|
||||
"contract_termination_remark": "用户解约"
|
||||
},
|
||||
"out_user_code": "用户A",
|
||||
"deduct_schedule": {
|
||||
"estimated_deduct_date": "2019-11-22",
|
||||
"estimated_deduct_amount": {
|
||||
"total": 1,
|
||||
"currency": "CNY"
|
||||
},
|
||||
"schedule_state": "NO_SCHEDULED",
|
||||
"scheduled_amount": {
|
||||
"total": 1,
|
||||
"currency": "CNY"
|
||||
},
|
||||
"deduct_amount": {
|
||||
"total": 1,
|
||||
"currency": "CNY"
|
||||
},
|
||||
"deduct_date": "2019-11-22"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"contract_termination_remark": "用户解约"
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"mchid": "1900000109",
|
||||
"contract_id": "123124412412423431",
|
||||
"appid": "wxd678efh567hg6787",
|
||||
"plan_id": 12535,
|
||||
"out_contract_code": "wxwtdk20200910100000",
|
||||
"contract_display_account": "微信代扣用户A",
|
||||
"contract_state": "SIGNED",
|
||||
"contract_signed_time": "2020-09-10T13:29:35+08:00",
|
||||
"contract_expired_time": "2021-09-10T13:29:35+08:00",
|
||||
"openid": "o-MYE42l80oelYMDE34nYD456Xoy",
|
||||
"contract_terminate_info": {
|
||||
"contract_termination_mode": "USER_TERMINATE",
|
||||
"contract_terminated_time": "2020-10-10T13:29:35+08:00",
|
||||
"contract_termination_remark": "用户解约"
|
||||
},
|
||||
"out_user_code": "用户A",
|
||||
"deduct_schedule": {
|
||||
"estimated_deduct_date": "2019-11-22",
|
||||
"estimated_deduct_amount": {
|
||||
"total": 1,
|
||||
"currency": "CNY"
|
||||
},
|
||||
"schedule_state": "NO_SCHEDULED",
|
||||
"scheduled_amount": {
|
||||
"total": 1,
|
||||
"currency": "CNY"
|
||||
},
|
||||
"deduct_amount": {
|
||||
"total": 1,
|
||||
"currency": "CNY"
|
||||
},
|
||||
"deduct_date": "2019-11-22"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user