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
d2ecffba9b
commit
16867bfd7a
@ -0,0 +1,143 @@
|
||||
using System;
|
||||
using System.Net.Http;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Flurl.Http;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
|
||||
{
|
||||
public static class WechatTenpayClientExecutePasswordExemptContractExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /password-exempt-contract/contracts/qs/pre-entrust-sign/mini-program 接口。</para>
|
||||
/// <para>
|
||||
/// REF: <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/partner/apis/partner-password-free-contract/sign/qs-mini-program-pre-entrust-sign.html ]]>
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.PresignPasswordExemptContractQsEntrustMiniProgramResponse> ExecutePresignPasswordExemptContractQsEntrustMiniProgramAsync(this WechatTenpayClient client, Models.PresignPasswordExemptContractQsEntrustMiniProgramRequest 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, "password-exempt-contract", "contracts", "qs", "pre-entrust-sign", "mini-program");
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.PresignPasswordExemptContractQsEntrustMiniProgramResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /password-exempt-contract/contracts/qs/pre-entrust-sign/pay-redirect-sign 接口。</para>
|
||||
/// <para>
|
||||
/// REF: <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/partner/apis/partner-password-free-contract/sign/qs-pay-redirect-sign-pre-entrust-sign.html ]]>
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.PresignPasswordExemptContractQsEntrustPayRedirectSignResponse> ExecutePresignPasswordExemptContractQsEntrustPayRedirectSignAsync(this WechatTenpayClient client, Models.PresignPasswordExemptContractQsEntrustPayRedirectSignRequest 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, "password-exempt-contract", "contracts", "qs", "pre-entrust-sign", "pay-redirect-sign");
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.PresignPasswordExemptContractQsEntrustPayRedirectSignResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /password-exempt-contract/contracts/service-provider/pre-entrust-sign/mini-program 接口。</para>
|
||||
/// <para>
|
||||
/// REF: <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/partner/apis/partner-password-free-contract/sign/sp-mini-program-pre-entrust-sign.html ]]>
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.PresignPasswordExemptContractServiceProviderEntrustMiniProgramResponse> ExecutePresignPasswordExemptContractServiceProviderEntrustMiniProgramAsync(this WechatTenpayClient client, Models.PresignPasswordExemptContractServiceProviderEntrustMiniProgramRequest 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, "password-exempt-contract", "contracts", "service-provider", "pre-entrust-sign", "mini-program");
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.PresignPasswordExemptContractServiceProviderEntrustMiniProgramResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /password-exempt-contract/contracts/service-provider/pre-entrust-sign/pay-redirect-sign 接口。</para>
|
||||
/// <para>
|
||||
/// REF: <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/partner/apis/partner-password-free-contract/sign/sp-pay-redirect-sign-pre-entrust-sign.html ]]>
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.PresignPasswordExemptContractServiceProviderEntrustPayRedirectSignResponse> ExecutePresignPasswordExemptContractServiceProviderEntrustPayRedirectSignAsync(this WechatTenpayClient client, Models.PresignPasswordExemptContractServiceProviderEntrustPayRedirectSignRequest 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, "password-exempt-contract", "contracts", "service-provider", "pre-entrust-sign", "pay-redirect-sign");
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.PresignPasswordExemptContractServiceProviderEntrustPayRedirectSignResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [GET] /password-exempt-contract/contracts/service-id/{service_id}/out-contract-code/{out_contract_code} 接口。</para>
|
||||
/// <para>
|
||||
/// REF: <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/partner/apis/partner-password-free-contract/contract/partner-get-by-code.html ]]>
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.GetPasswordExemptContractByOutContractCodeResponse> ExecuteGetPasswordExemptContractByOutContractCodeAsync(this WechatTenpayClient client, Models.GetPasswordExemptContractByOutContractCodeRequest 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, "password-exempt-contract", "contracts", "service-id", request.ServiceId, "out-contract-code", request.OutContractCode);
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.GetPasswordExemptContractByOutContractCodeResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>异步调用 [POST] /password-exempt-contract/contracts/service-id/{service_id}/out-contract-code/{out_contract_code}/terminate 接口。</para>
|
||||
/// <para>
|
||||
/// REF: <br/>
|
||||
/// <![CDATA[ https://pay.weixin.qq.com/docs/partner/apis/partner-password-free-contract/contract/partner-terminate-by-code.html ]]>
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<Models.TerminatePasswordExemptContractResponse> ExecuteTerminatePasswordExemptContractAsync(this WechatTenpayClient client, Models.TerminatePasswordExemptContractRequest 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, "password-exempt-contract", "contracts", "service-id", request.ServiceId, "out-contract-code", request.OutContractCode, "terminate");
|
||||
|
||||
return await client.SendFlurlRequestAsJsonAsync<Models.TerminatePasswordExemptContractResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /password-exempt-contract/contracts/service-id/{service_id}/out-contract-code/{out_contract_code} 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class GetPasswordExemptContractByOutContractCodeRequest : WechatTenpayRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置服务 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonIgnore]
|
||||
[System.Text.Json.Serialization.JsonIgnore]
|
||||
public string ServiceId { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户签约协议号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonIgnore]
|
||||
[System.Text.Json.Serialization.JsonIgnore]
|
||||
public string OutContractCode { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
@ -0,0 +1,127 @@
|
||||
using System;
|
||||
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [GET] /password-exempt-contract/contracts/service-id/{service_id}/out-contract-code/{out_contract_code} 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class GetPasswordExemptContractByOutContractCodeResponse : WechatTenpayResponse
|
||||
{
|
||||
public static class Types
|
||||
{
|
||||
public class Termination
|
||||
{
|
||||
/// <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_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_remark")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("contract_termination_remark")]
|
||||
public string? TerminationRemark { 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>
|
||||
/// 获取或设置子商户 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("service_id")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalStringConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("service_id")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringConverter))]
|
||||
public string ServiceId { get; set; } = default!;
|
||||
|
||||
/// <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("openid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("openid")]
|
||||
public string? OpenId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置用户在子商户下的唯一标识。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sub_openid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sub_openid")]
|
||||
public string? SubOpenId { get; set; } = default!;
|
||||
|
||||
/// <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("contract_terminate_info")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("contract_terminate_info")]
|
||||
public Types.Termination? Termination { get; set; }
|
||||
}
|
||||
}
|
@ -0,0 +1,73 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /password-exempt-contract/contracts/qs/pre-entrust-sign/mini-program 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class PresignPasswordExemptContractQsEntrustMiniProgramRequest : WechatTenpayRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置子商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sub_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
|
||||
public string? SubMerchantId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置微信 AppId。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("appid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("appid")]
|
||||
public string AppId { 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>
|
||||
/// 获取或设置服务 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("service_id")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalStringConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("service_id")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringConverter))]
|
||||
public string ServiceId { get; set; } = string.Empty;
|
||||
|
||||
/// <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("sub_openid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sub_openid")]
|
||||
public string? SubOpenId { 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("notify_url")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("notify_url")]
|
||||
public string NotifyUrl { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
@ -0,0 +1,52 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /password-exempt-contract/contracts/qs/pre-entrust-sign/mini-program 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class PresignPasswordExemptContractQsEntrustMiniProgramResponse : 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("sign_mp_appid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sign_mp_appid")]
|
||||
public string MiniProgramAppId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置跳转小程序页面路径。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sign_mp_path")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sign_mp_path")]
|
||||
public string MiniProgramPagePath { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置微信商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("mchid")]
|
||||
public string MerchantId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置服务 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("service_id")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalStringConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("service_id")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringConverter))]
|
||||
public string ServiceId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户签约协议号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("out_contract_code")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("out_contract_code")]
|
||||
public string OutContractCode { get; set; } = default!;
|
||||
}
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /password-exempt-contract/contracts/qs/pre-entrust-sign/pay-redirect-sign 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class PresignPasswordExemptContractQsEntrustPayRedirectSignRequest : PresignPasswordExemptContractQsEntrustMiniProgramRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置预支付交易会话标识。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("prepay_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("prepay_id")]
|
||||
public string PrepayId { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /password-exempt-contract/contracts/qs/pre-entrust-sign/pay-redirect-sign 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class PresignPasswordExemptContractQsEntrustPayRedirectSignResponse : WechatTenpayResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置微信商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("mchid")]
|
||||
public string MerchantId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置服务 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("service_id")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalStringConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("service_id")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringConverter))]
|
||||
public string ServiceId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户签约协议号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("out_contract_code")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("out_contract_code")]
|
||||
public string OutContractCode { get; set; } = default!;
|
||||
}
|
||||
}
|
@ -0,0 +1,73 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /password-exempt-contract/contracts/service-provider/pre-entrust-sign/mini-program 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class PresignPasswordExemptContractServiceProviderEntrustMiniProgramRequest : WechatTenpayRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置子商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sub_mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
|
||||
public string? SubMerchantId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置微信 AppId。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sp_appid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sp_appid")]
|
||||
public string AppId { 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>
|
||||
/// 获取或设置服务 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("service_id")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalStringConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("service_id")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringConverter))]
|
||||
public string ServiceId { get; set; } = string.Empty;
|
||||
|
||||
/// <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("sp_openid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sp_openid")]
|
||||
public string? OpenId { 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("contract_display_account")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("contract_display_account")]
|
||||
public string ContractDisplayAccount { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置回调通知地址。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("notify_url")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("notify_url")]
|
||||
public string NotifyUrl { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
@ -0,0 +1,59 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /password-exempt-contract/contracts/service-provider/pre-entrust-sign/mini-program 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class PresignPasswordExemptContractServiceProviderEntrustMiniProgramResponse : 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("sign_mp_appid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sign_mp_appid")]
|
||||
public string MiniProgramAppId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置跳转小程序页面路径。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("sign_mp_path")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("sign_mp_path")]
|
||||
public string MiniProgramPagePath { get; set; } = default!;
|
||||
|
||||
/// <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; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置服务 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("service_id")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalStringConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("service_id")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringConverter))]
|
||||
public string ServiceId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户签约协议号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("out_contract_code")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("out_contract_code")]
|
||||
public string OutContractCode { get; set; } = default!;
|
||||
}
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /password-exempt-contract/contracts/service-provider/pre-entrust-sign/pay-redirect-sign 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class PresignPasswordExemptContractServiceProviderEntrustPayRedirectSignRequest : PresignPasswordExemptContractServiceProviderEntrustMiniProgramRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置预支付交易会话标识。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("prepay_id")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("prepay_id")]
|
||||
public string PrepayId { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
@ -0,0 +1,38 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /password-exempt-contract/contracts/service-provider/pre-entrust-sign/pay-redirect-sign 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class PresignPasswordExemptContractServiceProviderEntrustPayRedirectSignResponse : WechatTenpayResponse
|
||||
{
|
||||
/// <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; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置服务 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("service_id")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalStringConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("service_id")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringConverter))]
|
||||
public string ServiceId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户签约协议号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("out_contract_code")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("out_contract_code")]
|
||||
public string OutContractCode { get; set; } = default!;
|
||||
}
|
||||
}
|
@ -0,0 +1,29 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /password-exempt-contract/contracts/service-id/{service_id}/out-contract-code/{out_contract_code}/terminate 接口的请求。</para>
|
||||
/// </summary>
|
||||
public class TerminatePasswordExemptContractRequest : WechatTenpayRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置服务 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonIgnore]
|
||||
[System.Text.Json.Serialization.JsonIgnore]
|
||||
public string ServiceId { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户签约协议号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonIgnore]
|
||||
[System.Text.Json.Serialization.JsonIgnore]
|
||||
public string OutContractCode { get; set; } = string.Empty;
|
||||
|
||||
/// <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,31 @@
|
||||
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// <para>表示 [POST] /password-exempt-contract/contracts/service-id/{service_id}/out-contract-code/{out_contract_code}/terminate 接口的响应。</para>
|
||||
/// </summary>
|
||||
public class TerminatePasswordExemptContractResponse : WechatTenpayResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取或设置微信商户号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("mchid")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("mchid")]
|
||||
public string MerchantId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置服务 ID。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("service_id")]
|
||||
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalStringConverter))]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("service_id")]
|
||||
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringConverter))]
|
||||
public string ServiceId { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置商户签约协议号。
|
||||
/// </summary>
|
||||
[Newtonsoft.Json.JsonProperty("out_contract_code")]
|
||||
[System.Text.Json.Serialization.JsonPropertyName("out_contract_code")]
|
||||
public string OutContractCode { get; set; } = default!;
|
||||
}
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
{
|
||||
"mchid": "1900000109",
|
||||
"contract_id": "123124412412423431",
|
||||
"appid": "wxd678efh567hg6787",
|
||||
"openid": "wxd678efh567hg6787",
|
||||
"sub_appid": "wxd678efh567hg6787",
|
||||
"sub_openid": "wxd678efh567hg6787",
|
||||
"service_id": 12535,
|
||||
"out_contract_code": "wxwtdk20200910100000",
|
||||
"contract_display_account": "微信代扣用户A",
|
||||
"contract_state": "SIGNED",
|
||||
"contract_signed_time": "2020-09-10T13:29:35+08:00",
|
||||
"contract_terminate_info": {
|
||||
"contract_termination_mode": "USER_TERMINATE",
|
||||
"contract_terminated_time": "2020-10-10T13:29:35+08:00",
|
||||
"contract_termination_remark": "用户解约"
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
{
|
||||
"appid": "wxd678efh567hg6787",
|
||||
"sub_appid": "wxd678efh567hg6787",
|
||||
"sub_mchid": "1900000109",
|
||||
"service_id": 12535,
|
||||
"out_contract_code": "wxwtdk20200910100000",
|
||||
"notify_url": "https://yourapp.com/notify",
|
||||
"contract_display_account": "微信代扣用户A",
|
||||
"openid": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o",
|
||||
"sub_openid": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o"
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
{
|
||||
"pre_entrustweb_id": "5778aadY9nltAsZzXixCkFIGYnV2V",
|
||||
"mchid": "1900000109",
|
||||
"service_id": 12535,
|
||||
"out_contract_code": "wxwtdk20200910100000",
|
||||
"sign_mp_appid": "wxbd687630cd02ce1d",
|
||||
"sign_mp_path": "pages/PwdExemptContract/index"
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
{
|
||||
"appid": "wxd678efh567hg6787",
|
||||
"sub_appid": "wxd678efh567hg6787",
|
||||
"sub_mchid": "1900000109",
|
||||
"service_id": 12535,
|
||||
"out_contract_code": "wxwtdk20200910100000",
|
||||
"notify_url": "https://yourapp.com/notify",
|
||||
"contract_display_account": "微信代扣用户A",
|
||||
"prepay_id": "wx201410272009395522657a690389285100",
|
||||
"openid": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o",
|
||||
"sub_openid": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o"
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
{
|
||||
"mchid": "1900000109",
|
||||
"service_id": 12535,
|
||||
"out_contract_code": "wxwtdk20200910100000"
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
{
|
||||
"sp_appid": "wxd678efh567hg6787",
|
||||
"sp_openid": "oYobu0MVnQfWpSMOYJz2AHPG_gQw",
|
||||
"sub_mchid": "1900000109",
|
||||
"sub_appid": "wxd678efh567hg6787",
|
||||
"sub_openid": "wxd678efh567hg6787",
|
||||
"service_id": 12535,
|
||||
"out_contract_code": "wxwtdk20200910100000",
|
||||
"notify_url": "https://yourapp.com/notify",
|
||||
"contract_display_account": "微信代扣用户A"
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
{
|
||||
"pre_entrustweb_id": "5778aadY9nltAsZzXixCkFIGYnV2V",
|
||||
"mchid": "1900000109",
|
||||
"sub_mchid": "1900000109",
|
||||
"service_id": 12535,
|
||||
"out_contract_code": "wxwtdk20200910100000",
|
||||
"sign_mp_appid": "wxbd687630cd02ce1d",
|
||||
"sign_mp_path": "pages/PwdExemptContract/index"
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
{
|
||||
"sp_appid": "wxd678efh567hg6787",
|
||||
"sp_openid": "oYobu0MVnQfWpSMOYJz2AHPG_gQw",
|
||||
"sub_mchid": "1900000109",
|
||||
"sub_appid": "wxd678efh567hg6787",
|
||||
"sub_openid": "wxd678efh567hg6787",
|
||||
"service_id": 12535,
|
||||
"out_contract_code": "wxwtdk20200910100000",
|
||||
"notify_url": "https://yourapp.com/notify",
|
||||
"contract_display_account": "微信代扣用户A",
|
||||
"prepay_id": "wx201410272009395522657a690389285100"
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"mchid": "1900000109",
|
||||
"sub_mchid": "1900000109",
|
||||
"service_id": 12535,
|
||||
"out_contract_code": "wxwtdk20200910100000"
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
{
|
||||
"contract_termination_remark": "用户解约"
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
{
|
||||
"mchid": "1900000109",
|
||||
"service_id": 12535,
|
||||
"out_contract_code": "wxwtdk20200910100000"
|
||||
}
|
Loading…
Reference in New Issue
Block a user