feat(tenpayv3): 新增微信支付分服务商相关 API 封装

This commit is contained in:
Fu Diwei 2021-05-12 01:05:49 +08:00
parent 94d14f83c5
commit af21939651
48 changed files with 1258 additions and 183 deletions

View File

@ -0,0 +1,129 @@
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Flurl;
using Flurl.Http;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
{
/// <summary>
/// 为 <see cref="WechatTenpayClient"/> 提供微信支付分服务商(免确认模式)相关的 API 扩展方法。
/// </summary>
public static class WechatTenpayClientExecutePayScorePartnerPermissionsExtensions
{
/// <summary>
/// <para>异步调用 [POST] /payscore/partner/permissions 接口。</para>
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/payscore_partner/chapter5_1.shtml </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ApplyPayScorePartnerPermissionsResponse> ExecuteApplyPayScorePartnerPermissionsAsync(this WechatTenpayClient client, Models.ApplyPayScorePartnerPermissionsRequest 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
.CreateRequest(HttpMethod.Post, "payscore", "partner", "permissions")
.SetOptions(request);
return await client.SendRequestWithJsonAsync<Models.ApplyPayScorePartnerPermissionsResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [GET] /payscore/partner/permissions/authorization-code/{authorization_code} 接口。</para>
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/payscore_partner/chapter5_2.shtml </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.GetPayScorePartnerPermissionsByAuthorizationCodeResponse> ExecuteGetPayScorePartnerPermissionsByAuthorizationCodeAsync(this WechatTenpayClient client, Models.GetPayScorePartnerPermissionsByAuthorizationCodeRequest 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
.CreateRequest(HttpMethod.Get, "payscore", "partner", "permissions", "authorization-code", request.AuthorizationCode)
.SetOptions(request)
.SetQueryParam("service_id", request.ServiceId)
.SetQueryParam("sub_mchid", request.SubMerchantId);
return await client.SendRequestAsync<Models.GetPayScorePartnerPermissionsByAuthorizationCodeResponse>(flurlReq, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /payscore/partner/permissions/authorization-code/{authorization_code}/terminate 接口。</para>
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/payscore_partner/chapter5_4.shtml </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.TerminatePayScorePartnerPermissionsByAuthorizationCodeResponse> ExecuteTerminatePayScorePartnerPermissionsByAuthorizationCodeAsync(this WechatTenpayClient client, Models.TerminatePayScorePartnerPermissionsByAuthorizationCodeRequest 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
.CreateRequest(HttpMethod.Post, "payscore", "partner", "permissions", "authorization-code", request.AuthorizationCode, "terminate")
.SetOptions(request);
return await client.SendRequestWithJsonAsync<Models.TerminatePayScorePartnerPermissionsByAuthorizationCodeResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [GET] /payscore/partner/permissions/search 接口。</para>
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/payscore_partner/chapter5_3.shtml </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.GetPayScorePartnerPermissionsByOpenIdResponse> ExecuteGetPayScorePartnerPermissionsByOpenIdAsync(this WechatTenpayClient client, Models.GetPayScorePartnerPermissionsByOpenIdRequest 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
.CreateRequest(HttpMethod.Get, "payscore", "partner", "permissions", "search")
.SetOptions(request)
.SetQueryParam("service_id", request.ServiceId)
.SetQueryParam("sub_mchid", request.SubMerchantId)
.SetQueryParam("appid", request.AppId)
.SetQueryParam("sub_appid", request.SubAppId);
if (!string.IsNullOrEmpty(request.OpenId))
flurlReq.SetQueryParam("openid", request.OpenId);
if (!string.IsNullOrEmpty(request.SubOpenId))
flurlReq.SetQueryParam("sub_openid", request.SubOpenId);
return await client.SendRequestAsync<Models.GetPayScorePartnerPermissionsByOpenIdResponse>(flurlReq, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /payscore/partner/permissions/terminate 接口。</para>
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/payscore_partner/chapter5_5.shtml </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.TerminatePayScorePartnerPermissionsByOpenIdResponse> ExecuteTerminatePayScorePartnerPermissionsByOpenIdAsync(this WechatTenpayClient client, Models.TerminatePayScorePartnerPermissionsByOpenIdRequest 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
.CreateRequest(HttpMethod.Post, "payscore", "partner", "permissions", "terminate")
.SetOptions(request);
return await client.SendRequestWithJsonAsync<Models.TerminatePayScorePartnerPermissionsByOpenIdResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
}
}

View File

@ -0,0 +1,183 @@
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Flurl;
using Flurl.Http;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
{
/// <summary>
/// 为 <see cref="WechatTenpayClient"/> 提供微信支付分服务商相关的 API 扩展方法。
/// </summary>
public static class WechatTenpayClientExecutePayScorePartnerServiceOrderExtensions
{
/// <summary>
/// <para>异步调用 [POST] /payscore/serviceorder 接口。</para>
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/payscore_partner/chapter3_1.shtml </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CreatePayScorePartnerServiceOrderResponse> ExecuteCreatePayScorePartnerServiceOrderAsync(this WechatTenpayClient client, Models.CreatePayScorePartnerServiceOrderRequest 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
.CreateRequest(HttpMethod.Post, "payscore", "partner", "serviceorder")
.SetOptions(request);
return await client.SendRequestWithJsonAsync<Models.CreatePayScorePartnerServiceOrderResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [GET] /payscore/serviceorder 接口。</para>
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/payscore_partner/chapter3_2.shtml </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.GetPayScorePartnerServiceOrderByOutOrderNumberResponse> ExecuteGetPayScorePartnerServiceOrderByOutOrderNumberAsync(this WechatTenpayClient client, Models.GetPayScorePartnerServiceOrderByOutOrderNumberRequest 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
.CreateRequest(HttpMethod.Get, "payscore", "partner", "serviceorder")
.SetOptions(request)
.SetQueryParam("out_order_no", request.OutOrderNumber)
.SetQueryParam("service_id", request.ServiceId)
.SetQueryParam("sub_mchid", request.SubMerchantId);
return await client.SendRequestAsync<Models.GetPayScorePartnerServiceOrderByOutOrderNumberResponse>(flurlReq, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [GET] /payscore/serviceorder 接口。</para>
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/payscore_partner/chapter3_2.shtml </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.GetPayScorePartnerServiceOrderByQueryIdResponse> ExecuteGetPayScorePartnerServiceOrderByQueryIdAsync(this WechatTenpayClient client, Models.GetPayScorePartnerServiceOrderByQueryIdRequest 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
.CreateRequest(HttpMethod.Get, "payscore", "partner", "serviceorder")
.SetOptions(request)
.SetQueryParam("query_id", request.QueryId)
.SetQueryParam("service_id", request.ServiceId)
.SetQueryParam("sub_mchid", request.SubMerchantId);
return await client.SendRequestAsync<Models.GetPayScorePartnerServiceOrderByQueryIdResponse>(flurlReq, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /payscore/serviceorder/{out_order_no}/cancel 接口。</para>
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/payscore_partner/chapter3_3.shtml </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.CancelPayScorePartnerServiceOrderResponse> ExecuteCancelPayScorePartnerServiceOrderAsync(this WechatTenpayClient client, Models.CancelPayScorePartnerServiceOrderRequest 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
.CreateRequest(HttpMethod.Post, "payscore", "partner", "serviceorder", request.OutOrderNumber, "cancel")
.SetOptions(request);
return await client.SendRequestWithJsonAsync<Models.CancelPayScorePartnerServiceOrderResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /payscore/serviceorder/{out_order_no}/modify 接口。</para>
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/payscore_partner/chapter3_4.shtml </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.ModifyPayScorePartnerServiceOrderResponse> ExecuteModifyPayScorePartnerServiceOrderAsync(this WechatTenpayClient client, Models.ModifyPayScorePartnerServiceOrderRequest 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
.CreateRequest(HttpMethod.Post, "payscore", "partner", "serviceorder", request.OutOrderNumber, "modify")
.SetOptions(request);
return await client.SendRequestWithJsonAsync<Models.ModifyPayScorePartnerServiceOrderResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /payscore/serviceorder/{out_order_no}/complete 接口。</para>
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/payscore_partner/chapter3_5.shtml </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.SetPayScorePartnerServiceOrderCompleteResponse> ExecuteSetPayScorePartnerServiceOrderCompleteAsync(this WechatTenpayClient client, Models.SetPayScorePartnerServiceOrderCompleteRequest 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
.CreateRequest(HttpMethod.Post, "payscore", "partner", "serviceorder", request.OutOrderNumber, "complete")
.SetOptions(request);
return await client.SendRequestWithJsonAsync<Models.SetPayScorePartnerServiceOrderCompleteResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /payscore/serviceorder/{out_order_no}/pay 接口。</para>
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/payscore_partner/chapter3_6.shtml </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.SetPayScorePartnerServiceOrderPayResponse> ExecuteSetPayScorePartnerServiceOrderPayAsync(this WechatTenpayClient client, Models.SetPayScorePartnerServiceOrderPayRequest 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
.CreateRequest(HttpMethod.Post, "payscore", "partner", "serviceorder", request.OutOrderNumber, "pay")
.SetOptions(request);
return await client.SendRequestWithJsonAsync<Models.SetPayScorePartnerServiceOrderPayResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /payscore/serviceorder/{out_order_no}/sync 接口。</para>
/// <para>REF: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/payscore_partner/chapter3_7.shtml </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.SetPayScorePartnerServiceOrderSyncResponse> ExecuteSetPayScorePartnerServiceOrderSyncAsync(this WechatTenpayClient client, Models.SetPayScorePartnerServiceOrderSyncRequest 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
.CreateRequest(HttpMethod.Post, "payscore", "partner", "serviceorder", request.OutOrderNumber, "sync")
.SetOptions(request);
return await client.SendRequestWithJsonAsync<Models.SetPayScorePartnerServiceOrderSyncResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
}
}

View File

@ -89,7 +89,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateRequest(HttpMethod.Get, "payscore", "permissions", "openid", request.OpenId)
.CreateRequest(HttpMethod.Get, "payscore", "permissions", "openid", request.OpenId!)
.SetOptions(request)
.SetQueryParam("appid", request.AppId)
.SetQueryParam("service_id", request.ServiceId);
@ -111,7 +111,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateRequest(HttpMethod.Post, "payscore", "permissions", "openid", request.OpenId, "terminate")
.CreateRequest(HttpMethod.Post, "payscore", "permissions", "openid", request.OpenId!, "terminate")
.SetOptions(request);
return await client.SendRequestWithJsonAsync<Models.TerminatePayScorePermissionsByOpenIdResponse>(flurlReq, data: request, cancellationToken: cancellationToken);

View File

@ -48,7 +48,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
public string MerchantId { get; set; } = default!;
/// <summary>
/// 获取或设置子商户商户号。
/// 获取或设置子商户号。
/// </summary>
[Newtonsoft.Json.JsonProperty("sub_mchid")]
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]

View File

@ -0,0 +1,32 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /payscore/partner/permissions 接口的请求。</para>
/// </summary>
public class ApplyPayScorePartnerPermissionsRequest : ApplyPayScorePermissionsRequest
{
/// <summary>
/// 获取或设置子商户号。
/// </summary>
[Newtonsoft.Json.JsonProperty("sub_mchid")]
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
public string SubMerchantId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置服务商 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("appid")]
[System.Text.Json.Serialization.JsonPropertyName("appid")]
public override 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; } = string.Empty;
}
}

View File

@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /payscore/partner/permissions 接口的响应。</para>
/// </summary>
public class ApplyPayScorePartnerPermissionsResponse : ApplyPayScorePermissionsResponse
{
}
}

View File

@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [GET] /payscore/partner/permissions/authorization-code/{authorization_code} 接口的请求。</para>
/// </summary>
public class GetPayScorePartnerPermissionsByAuthorizationCodeRequest : GetPayScorePermissionsByAuthorizationCodeRequest
{
/// <summary>
/// 获取或设置子商户号。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string SubMerchantId { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,46 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [GET] /payscore/partner/permissions/authorization-code/{authorization_code} 接口的响应。</para>
/// </summary>
public class GetPayScorePartnerPermissionsByAuthorizationCodeResponse : GetPayScorePermissionsByAuthorizationCodeResponse
{
/// <summary>
/// 获取或设置服务商商户号。
/// </summary>
[Newtonsoft.Json.JsonProperty("mchid")]
[System.Text.Json.Serialization.JsonPropertyName("mchid")]
public override string MerchantId { get; set; } = default!;
/// <summary>
/// 获取或设置子商户号。
/// </summary>
[Newtonsoft.Json.JsonProperty("sub_mchid")]
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
public string SubMerchantId { get; set; } = default!;
/// <summary>
/// 获取或设置服务商 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("appid")]
[System.Text.Json.Serialization.JsonPropertyName("appid")]
public override 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>
/// 获取或设置子商户用户唯一标识。
/// </summary>
[Newtonsoft.Json.JsonProperty("sub_openid")]
[System.Text.Json.Serialization.JsonPropertyName("sub_openid")]
public string? SubOpenId { get; set; }
}
}

View File

@ -0,0 +1,46 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [GET] /payscore/partner/permissions/search 接口的请求。</para>
/// </summary>
public class GetPayScorePartnerPermissionsByOpenIdRequest : GetPayScorePermissionsByOpenIdRequest
{
/// <summary>
/// 获取或设置子商户号。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string SubMerchantId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置服务商 AppId。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public override string AppId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置子商户 AppId。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string? SubAppId { get; set; }
/// <summary>
/// 获取或设置用户在服务商下唯一标识。与字段 <see cref="SubOpenId"/> 二选一。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public override string? OpenId { get; set; }
/// <summary>
/// 获取或设置用户在子商户下唯一标识。与字段 <see cref="OpenId"/> 二选一。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string? SubOpenId { get; set; }
}
}

View File

@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [GET] /payscore/partner/permissions/search 接口的响应。</para>
/// </summary>
public class GetPayScorePartnerPermissionsByOpenIdResponse : GetPayScorePartnerPermissionsByAuthorizationCodeResponse
{
}
}

View File

@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /payscore/partner/permissions/authorization-code/{authorization_code}/terminate 接口的请求。</para>
/// </summary>
public class TerminatePayScorePartnerPermissionsByAuthorizationCodeRequest : TerminatePayScorePermissionsByAuthorizationCodeRequest
{
/// <summary>
/// 获取或设置子商户号。
/// </summary>
[Newtonsoft.Json.JsonProperty("sub_mchid")]
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
public string SubMerchantId { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /payscore/partner/permissions/authorization-code/{authorization_code}/terminate 接口的响应。</para>
/// </summary>
public class TerminatePayScorePartnerPermissionsByAuthorizationCodeResponse : TerminatePayScorePermissionsByAuthorizationCodeResponse
{
}
}

View File

@ -0,0 +1,46 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /payscore/permissions/terminate 接口的请求。</para>
/// </summary>
public class TerminatePayScorePartnerPermissionsByOpenIdRequest : TerminatePayScorePermissionsByOpenIdRequest
{
/// <summary>
/// 获取或设置子商户号。
/// </summary>
[Newtonsoft.Json.JsonProperty("sub_mchid")]
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
public string SubMerchantId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置服务商 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("appid")]
[System.Text.Json.Serialization.JsonPropertyName("appid")]
public override 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; } = string.Empty;
/// <summary>
/// 获取或设置用户在服务商下唯一标识。与字段 <see cref="SubOpenId"/> 二选一。
/// </summary>
[Newtonsoft.Json.JsonProperty("openid")]
[System.Text.Json.Serialization.JsonPropertyName("openid")]
public override string? OpenId { get; set; }
/// <summary>
/// 获取或设置用户在子商户下唯一标识。与字段 <see cref="OpenId"/> 二选一。
/// </summary>
[Newtonsoft.Json.JsonProperty("sub_openid")]
[System.Text.Json.Serialization.JsonPropertyName("sub_openid")]
public string? SubOpenId { get; set; }
}
}

View File

@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /payscore/partner/permissions/terminate 接口的响应。</para>
/// </summary>
public class TerminatePayScorePartnerPermissionsByOpenIdResponse : TerminatePayScorePartnerPermissionsByAuthorizationCodeResponse
{
}
}

View File

@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /payscore/partner/serviceorder/{out_order_no}/cancel 接口的请求。</para>
/// </summary>
public class CancelPayScorePartnerServiceOrderRequest : CancelPayScoreServiceOrderRequest
{
/// <summary>
/// 获取或设置子商户号。
/// </summary>
[Newtonsoft.Json.JsonProperty("sub_mchid")]
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
public string SubMerchantId { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /payscore/partner/serviceorder/{out_order_no}/cancel 接口的响应。</para>
/// </summary>
public class CancelPayScorePartnerServiceOrderResponse : WechatTenpayResponse
{
}
}

View File

@ -0,0 +1,46 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /payscore/partner/serviceorder 接口的请求。</para>
/// </summary>
public class CreatePayScorePartnerServiceOrderRequest : CreatePayScoreServiceOrderRequest
{
/// <summary>
/// 获取或设置子商户号。
/// </summary>
[Newtonsoft.Json.JsonProperty("sub_mchid")]
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
public string SubMerchantId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置服务商 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("appid")]
[System.Text.Json.Serialization.JsonPropertyName("appid")]
public override 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>
/// 获取或设置用户在服务商下唯一标识。与字段 <see cref="SubOpenId"/> 二选一。
/// </summary>
[Newtonsoft.Json.JsonProperty("openid")]
[System.Text.Json.Serialization.JsonPropertyName("openid")]
public override string? OpenId { get; set; }
/// <summary>
/// 获取或设置用户在子商户下唯一标识。与字段 <see cref="OpenId"/> 二选一。
/// </summary>
[Newtonsoft.Json.JsonProperty("sub_openid")]
[System.Text.Json.Serialization.JsonPropertyName("sub_openid")]
public string? SubOpenId { get; set; }
}
}

View File

@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /payscore/partner/serviceorder 接口的响应。</para>
/// </summary>
public class CreatePayScorePartnerServiceOrderResponse : GetPayScorePartnerServiceOrderByOutOrderNumberResponse
{
/// <summary>
/// 获取或设置跳转微信侧小程序订单数据。
/// </summary>
[Newtonsoft.Json.JsonProperty("package")]
[System.Text.Json.Serialization.JsonPropertyName("package")]
public string Package { get; set; } = default!;
}
}

View File

@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [GET] /payscore/partner/serviceorder 接口的请求。</para>
/// </summary>
public class GetPayScorePartnerServiceOrderByOutOrderNumberRequest : GetPayScoreServiceOrderByOutOrderNumberRequest
{
/// <summary>
/// 获取或设置子商户号。
/// </summary>
[Newtonsoft.Json.JsonProperty("sub_mchid")]
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
public string SubMerchantId { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,53 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [GET] /payscore/partner/serviceorder 接口的响应。</para>
/// </summary>
public class GetPayScorePartnerServiceOrderByOutOrderNumberResponse : GetPayScoreServiceOrderByOutOrderNumberResponse
{
/// <summary>
/// 获取或设置服务商商户号。
/// </summary>
[Newtonsoft.Json.JsonProperty("mchid")]
[System.Text.Json.Serialization.JsonPropertyName("mchid")]
public override string MerchantId { get; set; } = default!;
/// <summary>
/// 获取或设置子商户号。
/// </summary>
[Newtonsoft.Json.JsonProperty("sub_mchid")]
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
public string SubMerchantId { get; set; } = default!;
/// <summary>
/// 获取或设置服务商 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("appid")]
[System.Text.Json.Serialization.JsonPropertyName("appid")]
public override 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>
/// 获取或设置用户在服务商下唯一标识。
/// </summary>
[Newtonsoft.Json.JsonProperty("openid")]
[System.Text.Json.Serialization.JsonPropertyName("openid")]
public override string? OpenId { get; set; }
/// <summary>
/// 获取或设置用户在子商户下唯一标识。
/// </summary>
[Newtonsoft.Json.JsonProperty("sub_openid")]
[System.Text.Json.Serialization.JsonPropertyName("sub_openid")]
public string? SubOpenId { get; set; }
}
}

View File

@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [GET] /payscore/partner/serviceorder 接口的请求。</para>
/// </summary>
public class GetPayScorePartnerServiceOrderByQueryIdRequest : GetPayScoreServiceOrderByQueryIdRequest
{
/// <summary>
/// 获取或设置子商户号。
/// </summary>
[Newtonsoft.Json.JsonProperty("sub_mchid")]
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
public string SubMerchantId { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [GET] /payscore/partner/serviceorder 接口的响应。</para>
/// </summary>
public class GetPayScorePartnerServiceOrderByQueryIdResponse : GetPayScorePartnerServiceOrderByOutOrderNumberResponse
{
}
}

View File

@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /payscore/partner/serviceorder/{out_order_no}/modify 接口的请求。</para>
/// </summary>
public class ModifyPayScorePartnerServiceOrderRequest : ModifyPayScoreServiceOrderRequest
{
/// <summary>
/// 获取或设置子商户号。
/// </summary>
[Newtonsoft.Json.JsonProperty("sub_mchid")]
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
public string SubMerchantId { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /payscore/partner/serviceorder/{out_order_no}/modify 接口的响应。</para>
/// </summary>
public class ModifyPayScorePartnerServiceOrderResponse : WechatTenpayResponse
{
}
}

View File

@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /payscore/partner/serviceorder/{out_order_no}/complete 接口的请求。</para>
/// </summary>
public class SetPayScorePartnerServiceOrderCompleteRequest : SetPayScoreServiceOrderCompleteRequest
{
/// <summary>
/// 获取或设置子商户号。
/// </summary>
[Newtonsoft.Json.JsonProperty("sub_mchid")]
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
public string SubMerchantId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置服务完结时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("complete_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RFC3339NullableDateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("complete_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RFC3339NullableDateTimeOffsetConverter))]
public DateTimeOffset? CompleteTime { get; set; }
}
}

View File

@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /payscore/partner/serviceorder/{out_order_no}/complete 接口的响应。</para>
/// </summary>
public class SetPayScorePartnerServiceOrderCompleteResponse : WechatTenpayResponse
{
}
}

View File

@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /payscore/partner/serviceorder/{out_order_no}/pay 接口的请求。</para>
/// </summary>
public class SetPayScorePartnerServiceOrderPayRequest : SetPayScoreServiceOrderPayRequest
{
/// <summary>
/// 获取或设置子商户号。
/// </summary>
[Newtonsoft.Json.JsonProperty("sub_mchid")]
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
public string SubMerchantId { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,46 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /payscore/partner/serviceorder/{out_order_no}/pay 接口的响应。</para>
/// </summary>
public class SetPayScorePartnerServiceOrderPayResponse : WechatTenpayResponse
{
/// <summary>
/// 获取或设置微信 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("appid")]
[System.Text.Json.Serialization.JsonPropertyName("appid")]
public string AppId { 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")]
[System.Text.Json.Serialization.JsonPropertyName("service_id")]
public string ServiceId { get; set; } = default!;
/// <summary>
/// 获取或设置商户服务订单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("out_order_no")]
[System.Text.Json.Serialization.JsonPropertyName("out_order_no")]
public string OutOrderNumber { get; set; } = default!;
/// <summary>
/// 获取或设置微信支付服务订单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("order_id")]
[System.Text.Json.Serialization.JsonPropertyName("order_id")]
public string OrderId { get; set; } = default!;
}
}

View File

@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /payscore/partner/serviceorder/{out_order_no}/sync 接口的请求。</para>
/// </summary>
public class SetPayScorePartnerServiceOrderSyncRequest : SetPayScoreServiceOrderSyncRequest
{
/// <summary>
/// 获取或设置子商户号。
/// </summary>
[Newtonsoft.Json.JsonProperty("sub_mchid")]
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
public string SubMerchantId { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
/// <summary>
/// <para>表示 [POST] /payscore/partner/serviceorder/{out_order_no}/sync 接口的响应。</para>
/// </summary>
public class SetPayScorePartnerServiceOrderSyncResponse : WechatTenpayResponse
{
}
}

View File

@ -13,7 +13,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("appid")]
[System.Text.Json.Serialization.JsonPropertyName("appid")]
public string AppId { get; set; } = string.Empty;
public virtual string AppId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置授权协议号。

View File

@ -13,14 +13,14 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("mchid")]
[System.Text.Json.Serialization.JsonPropertyName("mchid")]
public string MerchantId { get; set; } = default!;
public virtual string MerchantId { get; set; } = default!;
/// <summary>
/// 获取或设置微信 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("appid")]
[System.Text.Json.Serialization.JsonPropertyName("appid")]
public string AppId { get; set; } = default!;
public virtual string AppId { get; set; } = default!;
/// <summary>
/// 获取或设置服务 ID。

View File

@ -8,25 +8,25 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
/// </summary>
public class GetPayScorePermissionsByOpenIdRequest : WechatTenpayRequest
{
/// <summary>
/// 获取或设置服务 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string ServiceId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置微信 AppId。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string AppId { get; set; } = string.Empty;
public virtual string AppId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置用户唯一标识。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string OpenId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置服务 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string ServiceId { get; set; } = string.Empty;
public virtual string? OpenId { get; set; }
}
}

View File

@ -13,14 +13,14 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("appid")]
[System.Text.Json.Serialization.JsonPropertyName("appid")]
public string AppId { get; set; } = string.Empty;
public virtual string AppId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置用户唯一标识。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string OpenId { get; set; } = string.Empty;
public virtual string? OpenId { get; set; }
/// <summary>
/// 获取或设置服务 ID。

View File

@ -20,7 +20,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("appid")]
[System.Text.Json.Serialization.JsonPropertyName("appid")]
public string AppId { get; set; } = string.Empty;
public string? AppId { get; set; }
/// <summary>
/// 获取或设置服务 ID。

View File

@ -150,7 +150,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("appid")]
[System.Text.Json.Serialization.JsonPropertyName("appid")]
public string AppId { get; set; } = string.Empty;
public virtual string AppId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置商户服务订单号。
@ -192,7 +192,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("openid")]
[System.Text.Json.Serialization.JsonPropertyName("openid")]
public string? OpenId { get; set; }
public virtual string? OpenId { get; set; }
/// <summary>
/// 获取或设置是否需要用户确认。

View File

@ -6,141 +6,13 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
/// <summary>
/// <para>表示 [POST] /payscore/serviceorder 接口的响应。</para>
/// </summary>
public class CreatePayScoreServiceOrderResponse : WechatTenpayResponse
public class CreatePayScoreServiceOrderResponse : GetPayScoreServiceOrderByOutOrderNumberResponse
{
public static class Types
{
public class Payment : GetPayScoreServiceOrderByOutOrderNumberResponse.Types.Payment
{
}
public class Discount : GetPayScoreServiceOrderByOutOrderNumberResponse.Types.Discount
{
}
public class TimeRange : GetPayScoreServiceOrderByOutOrderNumberResponse.Types.TimeRange
{
}
public class Location : GetPayScoreServiceOrderByOutOrderNumberResponse.Types.Location
{
}
public class RiskFund : GetPayScoreServiceOrderByOutOrderNumberResponse.Types.RiskFund
{
}
}
/// <summary>
/// 获取或设置微信 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("appid")]
[System.Text.Json.Serialization.JsonPropertyName("appid")]
public string AppId { 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("order_id")]
[System.Text.Json.Serialization.JsonPropertyName("order_id")]
public string OrderId { get; set; } = default!;
/// <summary>
/// 获取或设置商户服务订单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("out_order_no")]
[System.Text.Json.Serialization.JsonPropertyName("out_order_no")]
public string OutOrderNumber { get; set; } = default!;
/// <summary>
/// 获取或设置服务 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("service_id")]
[System.Text.Json.Serialization.JsonPropertyName("service_id")]
public string ServiceId { get; set; } = default!;
/// <summary>
/// 获取或设置服务信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("service_introduction")]
[System.Text.Json.Serialization.JsonPropertyName("service_introduction")]
public string ServiceIntroduction { get; set; } = default!;
/// <summary>
/// 获取或设置服务订单状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("state")]
[System.Text.Json.Serialization.JsonPropertyName("state")]
public string State { get; set; } = default!;
/// <summary>
/// 获取或设置服务订单状态说明。
/// </summary>
[Newtonsoft.Json.JsonProperty("state_description")]
[System.Text.Json.Serialization.JsonPropertyName("state_description")]
public string StateDescription { get; set; } = default!;
/// <summary>
/// 获取或设置跳转微信侧小程序订单数据。
/// </summary>
[Newtonsoft.Json.JsonProperty("package")]
[System.Text.Json.Serialization.JsonPropertyName("package")]
public string Package { get; set; } = default!;
/// <summary>
/// 获取或设置附加数据。
/// </summary>
[Newtonsoft.Json.JsonProperty("attach")]
[System.Text.Json.Serialization.JsonPropertyName("attach")]
public string Attachment { get; set; } = default!;
/// <summary>
/// 获取或设置付费项目列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("post_payments")]
[System.Text.Json.Serialization.JsonPropertyName("post_payments")]
public Types.Payment[]? PostPaymentList { get; set; }
/// <summary>
/// 获取或设置商户优惠列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("post_discounts")]
[System.Text.Json.Serialization.JsonPropertyName("post_discounts")]
public Types.Discount[]? PostDiscountList { get; set; }
/// <summary>
/// 获取或设置服务时间段信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("time_range")]
[System.Text.Json.Serialization.JsonPropertyName("time_range")]
public Types.TimeRange? TimeRange { get; set; }
/// <summary>
/// 获取或设置服务位置信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("location")]
[System.Text.Json.Serialization.JsonPropertyName("location")]
public Types.Location? Location { get; set; }
/// <summary>
/// 获取或设置订单风险金信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("risk_fund")]
[System.Text.Json.Serialization.JsonPropertyName("risk_fund")]
public Types.RiskFund? RiskFund { get; set; }
/// <summary>
/// 获取或设置通知回调地址。
/// </summary>
[Newtonsoft.Json.JsonProperty("notify_url")]
[System.Text.Json.Serialization.JsonPropertyName("notify_url")]
public string? NotifyUrl { get; set; }
}
}

View File

@ -18,15 +18,15 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
/// <summary>
/// 获取或设置微信 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("appid")]
[System.Text.Json.Serialization.JsonPropertyName("appid")]
public string AppId { get; set; } = string.Empty;
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string? AppId { get; set; }
/// <summary>
/// 获取或设置服务 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("service_id")]
[System.Text.Json.Serialization.JsonPropertyName("service_id")]
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string ServiceId { get; set; } = string.Empty;
}
}

View File

@ -155,7 +155,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("seq")]
[System.Text.Json.Serialization.JsonPropertyName("seq")]
public int SequenceNumber { get; set; }
public int Sequence { get; set; }
/// <summary>
/// 获取或设置单笔收款金额(单位:分)。
@ -226,19 +226,19 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
}
}
/// <summary>
/// 获取或设置微信 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("appid")]
[System.Text.Json.Serialization.JsonPropertyName("appid")]
public string AppId { get; set; } = default!;
/// <summary>
/// 获取或设置微信商户号。
/// </summary>
[Newtonsoft.Json.JsonProperty("mchid")]
[System.Text.Json.Serialization.JsonPropertyName("mchid")]
public string MerchantId { get; set; } = default!;
public virtual string MerchantId { get; set; } = default!;
/// <summary>
/// 获取或设置微信 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("appid")]
[System.Text.Json.Serialization.JsonPropertyName("appid")]
public virtual string AppId { get; set; } = default!;
/// <summary>
/// 获取或设置商户服务订单号。
@ -301,7 +301,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("openid")]
[System.Text.Json.Serialization.JsonPropertyName("openid")]
public string? OpenId { get; set; }
public virtual string? OpenId { get; set; }
/// <summary>
/// 获取或设置付费项目列表。
@ -350,6 +350,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("need_collection")]
[System.Text.Json.Serialization.JsonPropertyName("need_collection")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.StringTypedNullableBooleanConverter))]
public bool? RequireCollection { get; set; }
/// <summary>

View File

@ -18,15 +18,15 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
/// <summary>
/// 获取或设置微信 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("appid")]
[System.Text.Json.Serialization.JsonPropertyName("appid")]
public string AppId { get; set; } = string.Empty;
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string? AppId { get; set; }
/// <summary>
/// 获取或设置服务 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("service_id")]
[System.Text.Json.Serialization.JsonPropertyName("service_id")]
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string ServiceId { get; set; } = string.Empty;
}
}

View File

@ -31,7 +31,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("appid")]
[System.Text.Json.Serialization.JsonPropertyName("appid")]
public string AppId { get; set; } = string.Empty;
public string? AppId { get; set; }
/// <summary>
/// 获取或设置服务 ID。

View File

@ -22,14 +22,8 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
{
}
public class Location
public class Location : CreatePayScoreServiceOrderRequest.Types.Location
{
/// <summary>
/// 获取或设置服务结束地点。
/// </summary>
[Newtonsoft.Json.JsonProperty("end_location")]
[System.Text.Json.Serialization.JsonPropertyName("end_location")]
public string EndLocation { get; set; } = string.Empty;
}
}
@ -45,7 +39,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("appid")]
[System.Text.Json.Serialization.JsonPropertyName("appid")]
public string AppId { get; set; } = string.Empty;
public string? AppId { get; set; }
/// <summary>
/// 获取或设置服务 ID。

View File

@ -41,7 +41,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("appid")]
[System.Text.Json.Serialization.JsonPropertyName("appid")]
public string AppId { get; set; } = string.Empty;
public string? AppId { get; set; }
/// <summary>
/// 获取或设置服务 ID。

View File

@ -13,13 +13,27 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
public class Detail
{
/// <summary>
/// 获取或设置收款成功时间字符串格式yyyyMMddHHmmss 或 yyyyMMdd
/// 获取或设置收款序号。
/// </summary>
[Newtonsoft.Json.JsonProperty("seq")]
[System.Text.Json.Serialization.JsonPropertyName("seq")]
public int? Sequence { get; set; }
/// <summary>
/// 获取或设置收款成功时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("paid_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.CommonWithoutSeparatorsNullableDateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("paid_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.CommonWithoutSeparatorsNullableDateTimeOffsetConverter))]
public DateTimeOffset? PaidTime { get; set; }
/// <summary>
/// 获取或设置收款金额(单位:分)。
/// </summary>
[Newtonsoft.Json.JsonProperty("paid_amount")]
[System.Text.Json.Serialization.JsonPropertyName("paid_amount")]
public int? PaidAmount { get; set; }
}
}
@ -35,7 +49,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models
/// </summary>
[Newtonsoft.Json.JsonProperty("appid")]
[System.Text.Json.Serialization.JsonPropertyName("appid")]
public string AppId { get; set; } = string.Empty;
public string? AppId { get; set; }
/// <summary>
/// 获取或设置服务 ID。

View File

@ -25,7 +25,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Resources
public string MerchantId { get; set; } = default!;
/// <summary>
/// 获取或设置子商户商户号。
/// 获取或设置子商户号。
/// </summary>
[Newtonsoft.Json.JsonProperty("sub_mchid")]
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]

View File

@ -35,7 +35,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Resources
public string MerchantId { get; set; } = default!;
/// <summary>
/// 获取或设置子商户商户号。
/// 获取或设置子商户号。
/// </summary>
[Newtonsoft.Json.JsonProperty("sub_mchid")]
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]

View File

@ -0,0 +1,84 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Resources
{
/// <summary>
/// <para>表示 PAYSCORE.USER_OPEN_SERVICE 通知的数据。</para>
/// <para>表示 PAYSCORE.USER_CLOSE_SERVICE 通知的数据。</para>
/// </summary>
public class PayScorePartnerPermissionsResource : WechatTenpayCallback.Types.IDecryptedResource
{
/// <summary>
/// 获取或设置服务商商户号。
/// </summary>
[Newtonsoft.Json.JsonProperty("mch_id")]
[System.Text.Json.Serialization.JsonPropertyName("mch_id")]
public string MerchantId { get; set; } = default!;
/// <summary>
/// 获取或设置子商户号。
/// </summary>
[Newtonsoft.Json.JsonProperty("sub_mch_id")]
[System.Text.Json.Serialization.JsonPropertyName("sub_mch_id")]
public string SubMerchantId { get; set; } = default!;
/// <summary>
/// 获取或设置服务商 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("appid")]
[System.Text.Json.Serialization.JsonPropertyName("appid")]
public string AppId { get; set; } = default!;
/// <summary>
/// 获取或设置子商户 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("sub_appid")]
[System.Text.Json.Serialization.JsonPropertyName("sub_appid")]
public string? SubAppId { get; set; }
/// <summary>
/// 获取或设置授权协议号。
/// </summary>
[Newtonsoft.Json.JsonProperty("authorization_code")]
[System.Text.Json.Serialization.JsonPropertyName("authorization_code")]
public string? AuthorizationCode { get; set; }
/// <summary>
/// 获取或设置服务 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("service_id")]
[System.Text.Json.Serialization.JsonPropertyName("service_id")]
public string ServiceId { get; set; } = default!;
/// <summary>
/// 获取或设置用户在服务商下唯一标识。
/// </summary>
[Newtonsoft.Json.JsonProperty("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("user_service_status")]
[System.Text.Json.Serialization.JsonPropertyName("user_service_status")]
public string? UserServiceStatus { get; set; }
/// <summary>
/// 获取或设置服务开启或解除授权时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("openorclose_time")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.CommonWithoutSeparatorsNullableDateTimeOffsetConverter))]
[System.Text.Json.Serialization.JsonPropertyName("openorclose_time")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.CommonWithoutSeparatorsNullableDateTimeOffsetConverter))]
public DateTimeOffset? OpenOrCloseTime { get; set; }
}
}

View File

@ -0,0 +1,186 @@
using System;
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Resources
{
/// <summary>
/// <para>表示 PAYSCORE.USER_CONFIRM 通知的数据。</para>
/// <para>表示 PAYSCORE.USER_PAID 通知的数据。</para>
/// </summary>
public class PayScorePartnerServiceOrderResource : WechatTenpayCallback.Types.IDecryptedResource
{
public static class Types
{
public class Payment : PayScoreServiceOrderResource.Types.Payment
{
}
public class Discount : PayScoreServiceOrderResource.Types.Discount
{
}
public class TimeRange : PayScoreServiceOrderResource.Types.TimeRange
{
}
public class Location : PayScoreServiceOrderResource.Types.Location
{
}
public class RiskFund : PayScoreServiceOrderResource.Types.RiskFund
{
}
public class Collection : PayScoreServiceOrderResource.Types.Collection
{
}
}
/// <summary>
/// 获取或设置服务商商户号。
/// </summary>
[Newtonsoft.Json.JsonProperty("mchid")]
[System.Text.Json.Serialization.JsonPropertyName("mchid")]
public string MerchantId { get; set; } = default!;
/// <summary>
/// 获取或设置子商户商户号。
/// </summary>
[Newtonsoft.Json.JsonProperty("sub_mchid")]
[System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
public string SubMerchantId { get; set; } = default!;
/// <summary>
/// 获取或设置服务商 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("appid")]
[System.Text.Json.Serialization.JsonPropertyName("appid")]
public string AppId { get; set; } = default!;
/// <summary>
/// 获取或设置子商户 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("sub_appid")]
[System.Text.Json.Serialization.JsonPropertyName("sub_appid")]
public string? SubAppId { get; set; }
/// <summary>
/// 获取或设置商户服务订单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("out_order_no")]
[System.Text.Json.Serialization.JsonPropertyName("out_order_no")]
public string OutOrderNumber { get; set; } = default!;
/// <summary>
/// 获取或设置微信支付服务订单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("order_id")]
[System.Text.Json.Serialization.JsonPropertyName("order_id")]
public string? OrderId { get; set; }
/// <summary>
/// 获取或设置服务 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("service_id")]
[System.Text.Json.Serialization.JsonPropertyName("service_id")]
public string ServiceId { get; set; } = default!;
/// <summary>
/// 获取或设置服务信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("service_introduction")]
[System.Text.Json.Serialization.JsonPropertyName("service_introduction")]
public string ServiceIntroduction { get; set; } = default!;
/// <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("state")]
[System.Text.Json.Serialization.JsonPropertyName("state")]
public string State { get; set; } = default!;
/// <summary>
/// 获取或设置服务订单状态说明。
/// </summary>
[Newtonsoft.Json.JsonProperty("state_description")]
[System.Text.Json.Serialization.JsonPropertyName("state_description")]
public string? StateDescription { get; set; }
/// <summary>
/// 获取或设置商户收款总金额(单位:分)。
/// </summary>
[Newtonsoft.Json.JsonProperty("total_amount")]
[System.Text.Json.Serialization.JsonPropertyName("total_amount")]
public int? TotalAmount { get; set; }
/// <summary>
/// 获取或设置附加数据。
/// </summary>
[Newtonsoft.Json.JsonProperty("attach")]
[System.Text.Json.Serialization.JsonPropertyName("attach")]
public string? Attachment { get; set; }
/// <summary>
/// 获取或设置付费项目列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("post_payments")]
[System.Text.Json.Serialization.JsonPropertyName("post_payments")]
public Types.Payment[]? PostPaymentList { get; set; }
/// <summary>
/// 获取或设置商户优惠列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("post_discounts")]
[System.Text.Json.Serialization.JsonPropertyName("post_discounts")]
public Types.Discount[]? PostDiscountList { get; set; }
/// <summary>
/// 获取或设置服务时间段信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("time_range")]
[System.Text.Json.Serialization.JsonPropertyName("time_range")]
public Types.TimeRange? TimeRange { get; set; }
/// <summary>
/// 获取或设置服务位置信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("location")]
[System.Text.Json.Serialization.JsonPropertyName("location")]
public Types.Location? Location { get; set; }
/// <summary>
/// 获取或设置订单风险金信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("risk_fund")]
[System.Text.Json.Serialization.JsonPropertyName("risk_fund")]
public Types.RiskFund? RiskFund { get; set; }
/// <summary>
/// 获取或设置是否需要收款。
/// </summary>
[Newtonsoft.Json.JsonProperty("need_collection")]
[System.Text.Json.Serialization.JsonPropertyName("need_collection")]
public bool? RequireCollection { get; set; }
/// <summary>
/// 获取或设置收款信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("collection")]
[System.Text.Json.Serialization.JsonPropertyName("collection")]
public Types.Collection? Collection { get; set; }
}
}