feat(wxapi): 随官方更新小程序虚拟支付相关接口模型

This commit is contained in:
Fu Diwei 2024-01-15 21:18:13 +08:00
parent 2328072132
commit 3a3097a36a
30 changed files with 1090 additions and 0 deletions

View File

@ -0,0 +1,105 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Events
{
/// <summary>
/// <para>表示 EVENT.xpay_refund_notify 事件的数据。</para>
/// <para>https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/virtual-payment.html </para>
/// </summary>
public class XPayRefundNotifyEvent : WechatApiEvent, WechatApiEvent.Serialization.IJsonSerializable, WechatApiEvent.Serialization.IXmlSerializable
{
/// <summary>
/// 获取或设置用户 OpenId。
/// </summary>
[Newtonsoft.Json.JsonProperty("OpenId")]
[System.Text.Json.Serialization.JsonPropertyName("OpenId")]
[System.Xml.Serialization.XmlElement("OpenId")]
public string OpenId { get; set; } = default!;
/// <summary>
/// 获取或设置商户退款单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("MchRefundId")]
[System.Text.Json.Serialization.JsonPropertyName("MchRefundId")]
[System.Xml.Serialization.XmlElement("MchRefundId")]
public string MerchantRefundId { get; set; } = default!;
/// <summary>
/// 获取或设置微信支付退款单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("WxRefundId")]
[System.Text.Json.Serialization.JsonPropertyName("WxRefundId")]
[System.Xml.Serialization.XmlElement("WxRefundId")]
public string WechatpayRefundId { get; set; } = default!;
/// <summary>
/// 获取或设置商户订单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("MchOrderId")]
[System.Text.Json.Serialization.JsonPropertyName("MchOrderId")]
[System.Xml.Serialization.XmlElement("MchOrderId")]
public string MerchantOrderId { get; set; } = default!;
/// <summary>
/// 获取或设置微信支付订单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("WxOrderId")]
[System.Text.Json.Serialization.JsonPropertyName("WxOrderId")]
[System.Xml.Serialization.XmlElement("WxOrderId")]
public string WechatpayOrderId { get; set; } = default!;
/// <summary>
/// 获取或设置退款单的微信支付单号。
/// </summary>
[Newtonsoft.Json.JsonProperty("WxpayRefundTransactionId")]
[System.Text.Json.Serialization.JsonPropertyName("WxpayRefundTransactionId")]
[System.Xml.Serialization.XmlElement("WxpayRefundTransactionId", IsNullable = true)]
public string? WechatpayRefundTransactionId { get; set; }
/// <summary>
/// 获取或设置退款金额(单位:分)。
/// </summary>
[Newtonsoft.Json.JsonProperty("RefundFee")]
[System.Text.Json.Serialization.JsonPropertyName("RefundFee")]
[System.Xml.Serialization.XmlElement("RefundFee")]
public int RefundFee { get; set; }
/// <summary>
/// 获取或设置退款结果。
/// </summary>
[Newtonsoft.Json.JsonProperty("RetCode")]
[System.Text.Json.Serialization.JsonPropertyName("RetCode")]
[System.Xml.Serialization.XmlElement("RetCode")]
public int ReturnCode { get; set; }
/// <summary>
/// 获取或设置退款结果详情。
/// </summary>
[Newtonsoft.Json.JsonProperty("RetMsg")]
[System.Text.Json.Serialization.JsonPropertyName("RetMsg")]
[System.Xml.Serialization.XmlElement("RetMsg", IsNullable = true)]
public string? ReturnMessage { get; set; }
/// <summary>
/// 获取或设置开始退款时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("RefundStartTimestamp")]
[System.Text.Json.Serialization.JsonPropertyName("RefundStartTimestamp")]
[System.Xml.Serialization.XmlElement("RefundStartTimestamp")]
public long StartTimestamp { get; set; }
/// <summary>
/// 获取或设置结束退款时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("RefundSuccTimestamp")]
[System.Text.Json.Serialization.JsonPropertyName("RefundSuccTimestamp")]
[System.Xml.Serialization.XmlElement("RefundSuccTimestamp")]
public long? SuccessTimestamp { get; set; }
/// <summary>
/// 获取或设置重试次数。
/// </summary>
[Newtonsoft.Json.JsonProperty("RetryTimes")]
[System.Text.Json.Serialization.JsonPropertyName("RetryTimes")]
[System.Xml.Serialization.XmlElement("RetryTimes")]
public int RetryTimes { get; set; }
}
}

View File

@ -360,5 +360,166 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
return await client.SendRequestWithJsonAsync<Models.XPayQueryPublishGoodsResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /xpay/query_biz_balance 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/virtual-payment.html#_2-3-%E6%9C%8D%E5%8A%A1%E5%99%A8API </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.XPayQueryBusinessBalanceResponse> ExecuteXPayQueryBusinessBalanceAsync(this WechatApiClient client, Models.XPayQueryBusinessBalanceRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
PreprocessRequest(client, ref request);
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "xpay", "query_biz_balance")
.SetQueryParam("access_token", request.AccessToken)
.SetQueryParam("pay_sig", request.PaySign);
return await client.SendRequestWithJsonAsync<Models.XPayQueryBusinessBalanceResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /xpay/query_transfer_account 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/virtual-payment.html#_2-3-%E6%9C%8D%E5%8A%A1%E5%99%A8API </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.XPayQueryTransferAccountResponse> ExecuteXPayQueryTransferAccountAsync(this WechatApiClient client, Models.XPayQueryTransferAccountRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
PreprocessRequest(client, ref request);
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "xpay", "query_transfer_account")
.SetQueryParam("access_token", request.AccessToken)
.SetQueryParam("pay_sig", request.PaySign);
return await client.SendRequestWithJsonAsync<Models.XPayQueryTransferAccountResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /xpay/query_adver_funds 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/virtual-payment.html#_2-3-%E6%9C%8D%E5%8A%A1%E5%99%A8API </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.XPayQueryAdverFundsResponse> ExecuteXPayQueryAdverFundsAsync(this WechatApiClient client, Models.XPayQueryAdverFundsRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
PreprocessRequest(client, ref request);
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "xpay", "query_adver_funds")
.SetQueryParam("access_token", request.AccessToken)
.SetQueryParam("pay_sig", request.PaySign);
return await client.SendRequestWithJsonAsync<Models.XPayQueryAdverFundsResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /xpay/create_funds_bill 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/virtual-payment.html#_2-3-%E6%9C%8D%E5%8A%A1%E5%99%A8API </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.XPayCreateFundsBillResponse> ExecuteXPayCreateFundsBillAsync(this WechatApiClient client, Models.XPayCreateFundsBillRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
PreprocessRequest(client, ref request);
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "xpay", "create_funds_bill")
.SetQueryParam("access_token", request.AccessToken)
.SetQueryParam("pay_sig", request.PaySign);
return await client.SendRequestWithJsonAsync<Models.XPayCreateFundsBillResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /xpay/bind_transfer_accout 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/virtual-payment.html#_2-3-%E6%9C%8D%E5%8A%A1%E5%99%A8API </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.XPayBindTransferAccountResponse> ExecuteXPayBindTransferAccountAsync(this WechatApiClient client, Models.XPayBindTransferAccountRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
PreprocessRequest(client, ref request);
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "xpay", "bind_transfer_accout")
.SetQueryParam("access_token", request.AccessToken)
.SetQueryParam("pay_sig", request.PaySign);
return await client.SendRequestWithJsonAsync<Models.XPayBindTransferAccountResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /xpay/query_funds_bill 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/virtual-payment.html#_2-3-%E6%9C%8D%E5%8A%A1%E5%99%A8API </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.XPayQueryFundsListResponse> ExecuteXPayQueryFundsListAsync(this WechatApiClient client, Models.XPayQueryFundsListRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
PreprocessRequest(client, ref request);
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "xpay", "query_funds_bill")
.SetQueryParam("access_token", request.AccessToken)
.SetQueryParam("pay_sig", request.PaySign);
return await client.SendRequestWithJsonAsync<Models.XPayQueryFundsListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /xpay/query_recover_bill 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/virtual-payment.html#_2-3-%E6%9C%8D%E5%8A%A1%E5%99%A8API </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.XPayQueryRecoverListResponse> ExecuteXPayQueryRecoverListAsync(this WechatApiClient client, Models.XPayQueryRecoverListRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
PreprocessRequest(client, ref request);
IFlurlRequest flurlReq = client
.CreateRequest(request, HttpMethod.Post, "xpay", "query_recover_bill")
.SetQueryParam("access_token", request.AccessToken)
.SetQueryParam("pay_sig", request.PaySign);
return await client.SendRequestWithJsonAsync<Models.XPayQueryRecoverListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
}
}

View File

@ -0,0 +1,27 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /xpay/bind_transfer_accout 接口的请求。</para>
/// </summary>
public class XPayBindTransferAccountRequest : XPayRequestBase, IInferable<XPayBindTransferAccountRequest, XPayBindTransferAccountResponse>
{
/// <summary>
/// 获取或设置充值账户 UID。
/// </summary>
[Newtonsoft.Json.JsonProperty("transfer_account_uid")]
[System.Text.Json.Serialization.JsonPropertyName("transfer_account_uid")]
public int TransferAccountUID { get; set; }
/// <summary>
/// 获取或设置充值账户主体名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("transfer_account_org_name")]
[System.Text.Json.Serialization.JsonPropertyName("transfer_account_org_name")]
public string TransferAccountOrganizationName { get; set; } = string.Empty;
protected internal override string GetRequestPath()
{
return "/xpay/bind_transfer_accout";
}
}
}

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /xpay/bind_transfer_accout 接口的响应。</para>
/// </summary>
public class XPayBindTransferAccountResponse : WechatApiResponse
{
}
}

View File

@ -0,0 +1,78 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /xpay/create_funds_bill 接口的请求。</para>
/// </summary>
public class XPayCreateFundsBillRequest : XPayRequestBase, IInferable<XPayCreateFundsBillRequest, XPayCreateFundsBillResponse>
{
/// <summary>
/// 获取或设置充值账户 UID。
/// </summary>
[Newtonsoft.Json.JsonProperty("transfer_account_uid")]
[System.Text.Json.Serialization.JsonPropertyName("transfer_account_uid")]
public int TransferAccountUID { get; set; }
/// <summary>
/// 获取或设置充值账户名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("transfer_account_name")]
[System.Text.Json.Serialization.JsonPropertyName("transfer_account_name")]
public string TransferAccountName { get; set; } = string.Empty;
/// <summary>
/// 获取或设置充值账户服务商账号 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("transfer_account_agency_id")]
[System.Text.Json.Serialization.JsonPropertyName("transfer_account_agency_id")]
public int? TransferAccountAgencyId { get; set; }
/// <summary>
/// 获取或设置充值金额(单位:分)。
/// </summary>
[Newtonsoft.Json.JsonProperty("transfer_amount")]
[System.Text.Json.Serialization.JsonPropertyName("transfer_amount")]
public int TransferAmount { get; set; }
/// <summary>
/// 获取或设置请求唯一 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("request_id")]
[System.Text.Json.Serialization.JsonPropertyName("request_id")]
public string RequestId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置结算周期开始时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("settle_begin")]
[System.Text.Json.Serialization.JsonPropertyName("settle_begin")]
public long SettleBeginTimestamp { get; set; }
/// <summary>
/// 获取或设置结算周期结束时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("settle_end")]
[System.Text.Json.Serialization.JsonPropertyName("settle_end")]
public long SettleEndTimestamp { get; set; }
/// <summary>
/// 获取或设置广告金类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("fund_type")]
[System.Text.Json.Serialization.JsonPropertyName("fund_type")]
public int FundsType { get; set; }
/// <summary>
/// 获取或设置是否授权广告数据。
/// </summary>
[Newtonsoft.Json.JsonProperty("authorize_advertise")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalBooleanConverter))]
[System.Text.Json.Serialization.JsonPropertyName("authorize_advertise")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalBooleanConverter))]
public bool IsAdvertiseAuthorized { get; set; }
protected internal override string GetRequestPath()
{
return "/xpay/create_funds_bill";
}
}
}

View File

@ -0,0 +1,15 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /xpay/create_funds_bill 接口的响应。</para>
/// </summary>
public class XPayCreateFundsBillResponse : WechatApiResponse
{
/// <summary>
/// 获取或设置充值单 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("bill_id")]
[System.Text.Json.Serialization.JsonPropertyName("bill_id")]
public string BillId { get; set; } = default!;
}
}

View File

@ -0,0 +1,63 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /xpay/query_adver_funds 接口的请求。</para>
/// </summary>
public class XPayQueryAdverFundsRequest : XPayRequestBase, IInferable<XPayQueryAdverFundsRequest, XPayQueryAdverFundsResponse>
{
public static class Types
{
public class Filter
{
/// <summary>
/// 获取或设置结算周期开始时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("settle_begin")]
[System.Text.Json.Serialization.JsonPropertyName("settle_begin")]
public long SettleBeginTimestamp { get; set; }
/// <summary>
/// 获取或设置结算周期结束时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("settle_end")]
[System.Text.Json.Serialization.JsonPropertyName("settle_end")]
public long SettleEndTimestamp { get; set; }
/// <summary>
/// 获取或设置广告金类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("fund_type")]
[System.Text.Json.Serialization.JsonPropertyName("fund_type")]
public int? FundsType { get; set; }
}
}
/// <summary>
/// 获取或设置分页页数。
/// <para>默认值1</para>
/// </summary>
[Newtonsoft.Json.JsonProperty("page")]
[System.Text.Json.Serialization.JsonPropertyName("page")]
public int Page { get; set; } = 1;
/// <summary>
/// 获取或设置分页每页数量。
/// <para>默认值10</para>
/// </summary>
[Newtonsoft.Json.JsonProperty("page_size")]
[System.Text.Json.Serialization.JsonPropertyName("page_size")]
public int Limit { get; set; } = 10;
/// <summary>
/// 获取或设置查询过滤条件。
/// </summary>
[Newtonsoft.Json.JsonProperty("filter")]
[System.Text.Json.Serialization.JsonPropertyName("filter")]
public Types.Filter? Filter { get; set; }
protected internal override string GetRequestPath()
{
return "/xpay/query_adver_funds";
}
}
}

View File

@ -0,0 +1,77 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /xpay/query_adver_funds 接口的响应。</para>
/// </summary>
public class XPayQueryAdverFundsResponse : WechatApiResponse
{
public static class Types
{
public class AdverFund
{
/// <summary>
/// 获取或设置广告金发放 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("fund_id")]
[System.Text.Json.Serialization.JsonPropertyName("fund_id")]
public string FundId { get; set; } = default!;
/// <summary>
/// 获取或设置广告金发放类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("fund_type")]
[System.Text.Json.Serialization.JsonPropertyName("fund_type")]
public int FundType { get; set; }
/// <summary>
/// 获取或设置结算周期开始时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("settle_begin")]
[System.Text.Json.Serialization.JsonPropertyName("settle_begin")]
public long SettleBeginTimestamp { get; set; }
/// <summary>
/// 获取或设置结算周期结束时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("settle_end")]
[System.Text.Json.Serialization.JsonPropertyName("settle_end")]
public long SettleEndTimestamp { 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("remain_amount")]
[System.Text.Json.Serialization.JsonPropertyName("remain_amount")]
public int RemainAmount { get; set; }
/// <summary>
/// 获取或设置过期时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("expire_time")]
[System.Text.Json.Serialization.JsonPropertyName("expire_time")]
public long? ExpireTimestamp { get; set; }
}
}
/// <summary>
/// 获取或设置广告金发放记录列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("adver_funds_list")]
[System.Text.Json.Serialization.JsonPropertyName("adver_funds_list")]
public Types.AdverFund[] AdverFundList { get; set; } = default!;
/// <summary>
/// 获取或设置总页数。
/// </summary>
[Newtonsoft.Json.JsonProperty("total_page")]
[System.Text.Json.Serialization.JsonPropertyName("total_page")]
public int TotalPage { get; set; }
}
}

View File

@ -0,0 +1,13 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /xpay/query_biz_balance 接口的请求。</para>
/// </summary>
public class XPayQueryBusinessBalanceRequest : XPayRequestBase, IInferable<XPayQueryBusinessBalanceRequest, XPayQueryBusinessBalanceResponse>
{
protected internal override string GetRequestPath()
{
return "/xpay/query_biz_balance";
}
}
}

View File

@ -0,0 +1,36 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /xpay/query_biz_balance 接口的响应。</para>
/// </summary>
public class XPayQueryBusinessBalanceResponse : WechatApiResponse
{
public static class Types
{
public class Balance
{
/// <summary>
/// 获取或设置余额(单位:元)。
/// </summary>
[Newtonsoft.Json.JsonProperty("amount")]
[System.Text.Json.Serialization.JsonPropertyName("amount")]
[System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
public decimal Amount { get; set; }
/// <summary>
/// 获取或设置币种。
/// </summary>
[Newtonsoft.Json.JsonProperty("currency_code")]
[System.Text.Json.Serialization.JsonPropertyName("currency_code")]
public string Currency { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置可提现余额信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("balance_available")]
[System.Text.Json.Serialization.JsonPropertyName("balance_available")]
public Types.Balance AvailableBalance { get; set; } = default!;
}
}

View File

@ -0,0 +1,63 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /xpay/query_funds_bill 接口的请求。</para>
/// </summary>
public class XPayQueryFundsListRequest : XPayRequestBase, IInferable<XPayQueryFundsListRequest, XPayQueryFundsListResponse>
{
public static class Types
{
public class Filter
{
/// <summary>
/// 获取或设置充值开始时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("oper_time_begin")]
[System.Text.Json.Serialization.JsonPropertyName("oper_time_begin")]
public long? OperateBeginTimestamp { get; set; }
/// <summary>
/// 获取或设置充值结束时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("oper_time_end")]
[System.Text.Json.Serialization.JsonPropertyName("oper_time_end")]
public long? OperateEndTimestamp { get; set; }
/// <summary>
/// 获取或设置广告金充值单 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("bill_id")]
[System.Text.Json.Serialization.JsonPropertyName("bill_id")]
public string? BillId { get; set; }
}
}
/// <summary>
/// 获取或设置分页页数。
/// <para>默认值1</para>
/// </summary>
[Newtonsoft.Json.JsonProperty("page")]
[System.Text.Json.Serialization.JsonPropertyName("page")]
public int Page { get; set; } = 1;
/// <summary>
/// 获取或设置分页每页数量。
/// <para>默认值10</para>
/// </summary>
[Newtonsoft.Json.JsonProperty("page_size")]
[System.Text.Json.Serialization.JsonPropertyName("page_size")]
public int Limit { get; set; } = 10;
/// <summary>
/// 获取或设置查询过滤条件。
/// </summary>
[Newtonsoft.Json.JsonProperty("filter")]
[System.Text.Json.Serialization.JsonPropertyName("filter")]
public Types.Filter? Filter { get; set; }
protected internal override string GetRequestPath()
{
return "/xpay/query_funds_bill";
}
}
}

View File

@ -0,0 +1,91 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /xpay/query_funds_bill 接口的响应。</para>
/// </summary>
public class XPayQueryFundsListResponse : WechatApiResponse
{
public static class Types
{
public class Bill
{
/// <summary>
/// 获取或设置充值单 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("bill_id")]
[System.Text.Json.Serialization.JsonPropertyName("bill_id")]
public string BillId { get; set; } = default!;
/// <summary>
/// 获取或设置充值时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("oper_time")]
[System.Text.Json.Serialization.JsonPropertyName("oper_time")]
public long OperateTimestamp { get; set; }
/// <summary>
/// 获取或设置对应广告金 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("fund_id")]
[System.Text.Json.Serialization.JsonPropertyName("fund_id")]
public string FundId { get; set; } = default!;
/// <summary>
/// 获取或设置结算周期开始时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("settle_begin")]
[System.Text.Json.Serialization.JsonPropertyName("settle_begin")]
public long SettleBeginTimestamp { get; set; }
/// <summary>
/// 获取或设置结算周期结束时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("settle_end")]
[System.Text.Json.Serialization.JsonPropertyName("settle_end")]
public long SettleEndTimestamp { get; set; }
/// <summary>
/// 获取或设置充值账户 UID。
/// </summary>
[Newtonsoft.Json.JsonProperty("transfer_account_uid")]
[System.Text.Json.Serialization.JsonPropertyName("transfer_account_uid")]
public int TransferAccountUID { get; set; }
/// <summary>
/// 获取或设置充值账户名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("transfer_account_name")]
[System.Text.Json.Serialization.JsonPropertyName("transfer_account_name")]
public string TransferAccountName { get; set; } = default!;
/// <summary>
/// 获取或设置充值金额(单位:分)。
/// </summary>
[Newtonsoft.Json.JsonProperty("transfer_amount")]
[System.Text.Json.Serialization.JsonPropertyName("transfer_amount")]
public int RransferAmount { get; set; }
/// <summary>
/// 获取或设置充值状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("status")]
[System.Text.Json.Serialization.JsonPropertyName("status")]
public int Status { get; set; }
}
}
/// <summary>
/// 获取或设置广告金充值记录列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("bill_list")]
[System.Text.Json.Serialization.JsonPropertyName("bill_list")]
public Types.Bill[] BillList { get; set; } = default!;
/// <summary>
/// 获取或设置总页数。
/// </summary>
[Newtonsoft.Json.JsonProperty("total_page")]
[System.Text.Json.Serialization.JsonPropertyName("total_page")]
public int TotalPage { get; set; }
}
}

View File

@ -141,6 +141,20 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
[Newtonsoft.Json.JsonProperty("wxpay_order_id")]
[System.Text.Json.Serialization.JsonPropertyName("wxpay_order_id")]
public string? TransactionId { get; set; }
/// <summary>
/// 获取或设置结算状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("sett_state")]
[System.Text.Json.Serialization.JsonPropertyName("sett_state")]
public long SettleState { get; set; }
/// <summary>
/// 获取或设置结算时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("sett_time")]
[System.Text.Json.Serialization.JsonPropertyName("sett_time")]
public long SettleTimestamp { get; set; }
}
}

View File

@ -0,0 +1,63 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /xpay/query_recover_bill 接口的请求。</para>
/// </summary>
public class XPayQueryRecoverListRequest : XPayRequestBase, IInferable<XPayQueryRecoverListRequest, XPayQueryRecoverListResponse>
{
public static class Types
{
public class Filter
{
/// <summary>
/// 获取或设置回收开始时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("recover_time_begin")]
[System.Text.Json.Serialization.JsonPropertyName("recover_time_begin")]
public long? RecoverBeginTimestamp { get; set; }
/// <summary>
/// 获取或设置回收结束时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("recover_time_end")]
[System.Text.Json.Serialization.JsonPropertyName("recover_time_end")]
public long? RecoverEndTimestamp { get; set; }
/// <summary>
/// 获取或设置广告金充值单 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("bill_id")]
[System.Text.Json.Serialization.JsonPropertyName("bill_id")]
public string? BillId { get; set; }
}
}
/// <summary>
/// 获取或设置分页页数。
/// <para>默认值1</para>
/// </summary>
[Newtonsoft.Json.JsonProperty("page")]
[System.Text.Json.Serialization.JsonPropertyName("page")]
public int Page { get; set; } = 1;
/// <summary>
/// 获取或设置分页每页数量。
/// <para>默认值10</para>
/// </summary>
[Newtonsoft.Json.JsonProperty("page_size")]
[System.Text.Json.Serialization.JsonPropertyName("page_size")]
public int Limit { get; set; } = 10;
/// <summary>
/// 获取或设置查询过滤条件。
/// </summary>
[Newtonsoft.Json.JsonProperty("filter")]
[System.Text.Json.Serialization.JsonPropertyName("filter")]
public Types.Filter? Filter { get; set; }
protected internal override string GetRequestPath()
{
return "/xpay/query_recover_bill";
}
}
}

View File

@ -0,0 +1,84 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /xpay/query_recover_bill 接口的响应。</para>
/// </summary>
public class XPayQueryRecoverListResponse : WechatApiResponse
{
public static class Types
{
public class Bill
{
/// <summary>
/// 获取或设置回收单 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("bill_id")]
[System.Text.Json.Serialization.JsonPropertyName("bill_id")]
public string BillId { get; set; } = default!;
/// <summary>
/// 获取或设置回收时间。
/// </summary>
[Newtonsoft.Json.JsonProperty("recover_time")]
[System.Text.Json.Serialization.JsonPropertyName("recover_time")]
public long RecoverTimestamp { get; set; }
/// <summary>
/// 获取或设置对应广告金 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("fund_id")]
[System.Text.Json.Serialization.JsonPropertyName("fund_id")]
public string FundId { get; set; } = default!;
/// <summary>
/// 获取或设置结算周期开始时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("settle_begin")]
[System.Text.Json.Serialization.JsonPropertyName("settle_begin")]
public long SettleBeginTimestamp { get; set; }
/// <summary>
/// 获取或设置结算周期结束时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("settle_end")]
[System.Text.Json.Serialization.JsonPropertyName("settle_end")]
public long SettleEndTimestamp { get; set; }
/// <summary>
/// 获取或设置回收账户名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("recover_account_name")]
[System.Text.Json.Serialization.JsonPropertyName("recover_account_name")]
public string TransferAccountName { get; set; } = default!;
/// <summary>
/// 获取或设置回收金额(单位:分)。
/// </summary>
[Newtonsoft.Json.JsonProperty("recover_amount")]
[System.Text.Json.Serialization.JsonPropertyName("recover_amount")]
public int RecoverAmount { get; set; }
/// <summary>
/// 获取或设置对应的退款订单 ID 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("refund_order_list")]
[System.Text.Json.Serialization.JsonPropertyName("refund_order_list")]
public string[]? RefundOrderIdList { get; set; }
}
}
/// <summary>
/// 获取或设置广告金回收记录列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("bill_list")]
[System.Text.Json.Serialization.JsonPropertyName("bill_list")]
public Types.Bill[] BillList { get; set; } = default!;
/// <summary>
/// 获取或设置总页数。
/// </summary>
[Newtonsoft.Json.JsonProperty("total_page")]
[System.Text.Json.Serialization.JsonPropertyName("total_page")]
public int TotalPage { get; set; }
}
}

View File

@ -0,0 +1,13 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /xpay/query_transfer_account 接口的请求。</para>
/// </summary>
public class XPayQueryTransferAccountRequest : XPayRequestBase, IInferable<XPayQueryTransferAccountRequest, XPayQueryTransferAccountResponse>
{
protected internal override string GetRequestPath()
{
return "/xpay/query_transfer_account";
}
}
}

View File

@ -0,0 +1,49 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /xpay/query_transfer_account 接口的响应。</para>
/// </summary>
public class XPayQueryTransferAccountResponse : WechatApiResponse
{
public static class Types
{
public class Account
{
/// <summary>
/// 获取或设置充值账户 UID。
/// </summary>
[Newtonsoft.Json.JsonProperty("transfer_account_uid")]
[System.Text.Json.Serialization.JsonPropertyName("transfer_account_uid")]
public int TransferAccountUID { get; set; }
/// <summary>
/// 获取或设置充值账户名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("transfer_account_name")]
[System.Text.Json.Serialization.JsonPropertyName("transfer_account_name")]
public string TransferAccountName { get; set; } = default!;
/// <summary>
/// 获取或设置充值账户服务商账号 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("transfer_account_agency_id")]
[System.Text.Json.Serialization.JsonPropertyName("transfer_account_agency_id")]
public int? TransferAccountAgencyId { get; set; }
/// <summary>
/// 获取或设置充值账户服务商账号名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("transfer_account_agency_name")]
[System.Text.Json.Serialization.JsonPropertyName("transfer_account_agency_name")]
public string? TransferAccountAgencyName { get; set; }
}
}
/// <summary>
/// 获取或设置广告金充值账户列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("acct_list")]
[System.Text.Json.Serialization.JsonPropertyName("acct_list")]
public Types.Account[] AccountList { get; set; } = default!;
}
}

View File

@ -0,0 +1,5 @@
{
"transfer_account_uid": 0,
"transfer_account_org_name": "",
"env": 1
}

View File

@ -0,0 +1,12 @@
{
"transfer_amount": 0,
"transfer_account_uid": 0,
"transfer_account_name": "",
"transfer_account_agency_id": 0,
"request_id": "",
"settle_begin": 0,
"settle_end": 0,
"env": 1,
"authorize_advertise": 0,
"fund_type": 0
}

View File

@ -0,0 +1,5 @@
{
"errcode": 0,
"errmsg": "ok",
"bill_id": ""
}

View File

@ -0,0 +1,10 @@
{
"page": 0,
"page_size": 0,
"filter": {
"settle_begin": 0,
"settle_end": 0,
"fund_type": 0
},
"env": 1
}

View File

@ -0,0 +1,16 @@
{
"errcode": 0,
"errmsg": "ok",
"adver_funds_list": [
{
"settle_begin": 0,
"settle_end": 0,
"total_amount": 0,
"remain_amount": 0,
"expire_time": 0,
"fund_type": 0,
"fund_id": ""
}
],
"total_page": 0
}

View File

@ -0,0 +1,8 @@
{
"errcode": 0,
"errmsg": "ok",
"balance_available": {
"amount": 1,
"currency_code": "CNY"
}
}

View File

@ -0,0 +1,10 @@
{
"page": 0,
"page_size": 0,
"filter": {
"oper_time_begin": 0,
"oper_time_end": 0,
"bill_id": ""
},
"env": 1
}

View File

@ -0,0 +1,18 @@
{
"errcode": 0,
"errmsg": "ok",
"total_page": 0,
"bill_list": [
{
"bill_id": "",
"oper_time": 0,
"settle_begin": 0,
"settle_end": 0,
"fund_id": "",
"transfer_account_name": "",
"transfer_account_uid": 0,
"transfer_amount": 0,
"status": 0
}
]
}

View File

@ -0,0 +1,10 @@
{
"page": 0,
"page_size": 0,
"filter": {
"recover_time_begin": 0,
"recover_time_end": 0,
"bill_id": ""
},
"env": 1
}

View File

@ -0,0 +1,17 @@
{
"errcode": 0,
"errmsg": "ok",
"total_page": 0,
"bill_list": [
{
"bill_id": "",
"recover_time": 0,
"settle_begin": 0,
"settle_end": 0,
"fund_id": "",
"recover_account_name": "",
"recover_amount": 0,
"refund_order_list": [""]
}
]
}

View File

@ -0,0 +1,12 @@
{
"errcode": 0,
"errmsg": "ok",
"acct_list": [
{
"transfer_account_name": "",
"transfer_account_uid": 0,
"transfer_account_agency_id": 0,
"transfer_account_agency_name": ""
}
]
}