diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/XPay/XPayRefundNotifyEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/XPay/XPayRefundNotifyEvent.cs new file mode 100644 index 00000000..8c0fed44 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/XPay/XPayRefundNotifyEvent.cs @@ -0,0 +1,105 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Events +{ + /// + /// 表示 EVENT.xpay_refund_notify 事件的数据。 + /// https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/virtual-payment.html + /// + public class XPayRefundNotifyEvent : WechatApiEvent, WechatApiEvent.Serialization.IJsonSerializable, WechatApiEvent.Serialization.IXmlSerializable + { + /// + /// 获取或设置用户 OpenId。 + /// + [Newtonsoft.Json.JsonProperty("OpenId")] + [System.Text.Json.Serialization.JsonPropertyName("OpenId")] + [System.Xml.Serialization.XmlElement("OpenId")] + public string OpenId { get; set; } = default!; + + /// + /// 获取或设置商户退款单号。 + /// + [Newtonsoft.Json.JsonProperty("MchRefundId")] + [System.Text.Json.Serialization.JsonPropertyName("MchRefundId")] + [System.Xml.Serialization.XmlElement("MchRefundId")] + public string MerchantRefundId { get; set; } = default!; + + /// + /// 获取或设置微信支付退款单号。 + /// + [Newtonsoft.Json.JsonProperty("WxRefundId")] + [System.Text.Json.Serialization.JsonPropertyName("WxRefundId")] + [System.Xml.Serialization.XmlElement("WxRefundId")] + public string WechatpayRefundId { get; set; } = default!; + + /// + /// 获取或设置商户订单号。 + /// + [Newtonsoft.Json.JsonProperty("MchOrderId")] + [System.Text.Json.Serialization.JsonPropertyName("MchOrderId")] + [System.Xml.Serialization.XmlElement("MchOrderId")] + public string MerchantOrderId { get; set; } = default!; + + /// + /// 获取或设置微信支付订单号。 + /// + [Newtonsoft.Json.JsonProperty("WxOrderId")] + [System.Text.Json.Serialization.JsonPropertyName("WxOrderId")] + [System.Xml.Serialization.XmlElement("WxOrderId")] + public string WechatpayOrderId { get; set; } = default!; + + /// + /// 获取或设置退款单的微信支付单号。 + /// + [Newtonsoft.Json.JsonProperty("WxpayRefundTransactionId")] + [System.Text.Json.Serialization.JsonPropertyName("WxpayRefundTransactionId")] + [System.Xml.Serialization.XmlElement("WxpayRefundTransactionId", IsNullable = true)] + public string? WechatpayRefundTransactionId { get; set; } + + /// + /// 获取或设置退款金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("RefundFee")] + [System.Text.Json.Serialization.JsonPropertyName("RefundFee")] + [System.Xml.Serialization.XmlElement("RefundFee")] + public int RefundFee { get; set; } + + /// + /// 获取或设置退款结果。 + /// + [Newtonsoft.Json.JsonProperty("RetCode")] + [System.Text.Json.Serialization.JsonPropertyName("RetCode")] + [System.Xml.Serialization.XmlElement("RetCode")] + public int ReturnCode { get; set; } + + /// + /// 获取或设置退款结果详情。 + /// + [Newtonsoft.Json.JsonProperty("RetMsg")] + [System.Text.Json.Serialization.JsonPropertyName("RetMsg")] + [System.Xml.Serialization.XmlElement("RetMsg", IsNullable = true)] + public string? ReturnMessage { get; set; } + + /// + /// 获取或设置开始退款时间戳。 + /// + [Newtonsoft.Json.JsonProperty("RefundStartTimestamp")] + [System.Text.Json.Serialization.JsonPropertyName("RefundStartTimestamp")] + [System.Xml.Serialization.XmlElement("RefundStartTimestamp")] + public long StartTimestamp { get; set; } + + /// + /// 获取或设置结束退款时间戳。 + /// + [Newtonsoft.Json.JsonProperty("RefundSuccTimestamp")] + [System.Text.Json.Serialization.JsonPropertyName("RefundSuccTimestamp")] + [System.Xml.Serialization.XmlElement("RefundSuccTimestamp")] + public long? SuccessTimestamp { get; set; } + + /// + /// 获取或设置重试次数。 + /// + [Newtonsoft.Json.JsonProperty("RetryTimes")] + [System.Text.Json.Serialization.JsonPropertyName("RetryTimes")] + [System.Xml.Serialization.XmlElement("RetryTimes")] + public int RetryTimes { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteXPayExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteXPayExtensions.cs index 85821e26..2ac642ec 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteXPayExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Extensions/WechatApiClientExecuteXPayExtensions.cs @@ -360,5 +360,166 @@ namespace SKIT.FlurlHttpClient.Wechat.Api return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } + + /// + /// 异步调用 [POST] /xpay/query_biz_balance 接口。 + /// 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 + /// + /// + /// + /// + /// + public static async Task 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(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /xpay/query_transfer_account 接口。 + /// 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 + /// + /// + /// + /// + /// + public static async Task 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(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /xpay/query_adver_funds 接口。 + /// 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 + /// + /// + /// + /// + /// + public static async Task 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(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /xpay/create_funds_bill 接口。 + /// 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 + /// + /// + /// + /// + /// + public static async Task 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(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /xpay/bind_transfer_accout 接口。 + /// 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 + /// + /// + /// + /// + /// + public static async Task 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(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /xpay/query_funds_bill 接口。 + /// 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 + /// + /// + /// + /// + /// + public static async Task 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(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /xpay/query_recover_bill 接口。 + /// 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 + /// + /// + /// + /// + /// + public static async Task 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(flurlReq, data: request, cancellationToken: cancellationToken); + } } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayBindTransferAccountRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayBindTransferAccountRequest.cs new file mode 100644 index 00000000..1f6552db --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayBindTransferAccountRequest.cs @@ -0,0 +1,27 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /xpay/bind_transfer_accout 接口的请求。 + /// + public class XPayBindTransferAccountRequest : XPayRequestBase, IInferable + { + /// + /// 获取或设置充值账户 UID。 + /// + [Newtonsoft.Json.JsonProperty("transfer_account_uid")] + [System.Text.Json.Serialization.JsonPropertyName("transfer_account_uid")] + public int TransferAccountUID { get; set; } + + /// + /// 获取或设置充值账户主体名称。 + /// + [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"; + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayBindTransferAccountResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayBindTransferAccountResponse.cs new file mode 100644 index 00000000..dd9abe87 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayBindTransferAccountResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /xpay/bind_transfer_accout 接口的响应。 + /// + public class XPayBindTransferAccountResponse : WechatApiResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayCreateFundsBillRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayCreateFundsBillRequest.cs new file mode 100644 index 00000000..f3b3e0eb --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayCreateFundsBillRequest.cs @@ -0,0 +1,78 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /xpay/create_funds_bill 接口的请求。 + /// + public class XPayCreateFundsBillRequest : XPayRequestBase, IInferable + { + /// + /// 获取或设置充值账户 UID。 + /// + [Newtonsoft.Json.JsonProperty("transfer_account_uid")] + [System.Text.Json.Serialization.JsonPropertyName("transfer_account_uid")] + public int TransferAccountUID { get; set; } + + /// + /// 获取或设置充值账户名称。 + /// + [Newtonsoft.Json.JsonProperty("transfer_account_name")] + [System.Text.Json.Serialization.JsonPropertyName("transfer_account_name")] + public string TransferAccountName { get; set; } = string.Empty; + + /// + /// 获取或设置充值账户服务商账号 ID。 + /// + [Newtonsoft.Json.JsonProperty("transfer_account_agency_id")] + [System.Text.Json.Serialization.JsonPropertyName("transfer_account_agency_id")] + public int? TransferAccountAgencyId { get; set; } + + /// + /// 获取或设置充值金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("transfer_amount")] + [System.Text.Json.Serialization.JsonPropertyName("transfer_amount")] + public int TransferAmount { get; set; } + + /// + /// 获取或设置请求唯一 ID。 + /// + [Newtonsoft.Json.JsonProperty("request_id")] + [System.Text.Json.Serialization.JsonPropertyName("request_id")] + public string RequestId { get; set; } = string.Empty; + + /// + /// 获取或设置结算周期开始时间戳。 + /// + [Newtonsoft.Json.JsonProperty("settle_begin")] + [System.Text.Json.Serialization.JsonPropertyName("settle_begin")] + public long SettleBeginTimestamp { get; set; } + + /// + /// 获取或设置结算周期结束时间戳。 + /// + [Newtonsoft.Json.JsonProperty("settle_end")] + [System.Text.Json.Serialization.JsonPropertyName("settle_end")] + public long SettleEndTimestamp { get; set; } + + /// + /// 获取或设置广告金类型。 + /// + [Newtonsoft.Json.JsonProperty("fund_type")] + [System.Text.Json.Serialization.JsonPropertyName("fund_type")] + public int FundsType { get; set; } + + /// + /// 获取或设置是否授权广告数据。 + /// + [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"; + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayCreateFundsBillResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayCreateFundsBillResponse.cs new file mode 100644 index 00000000..61deeb38 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayCreateFundsBillResponse.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /xpay/create_funds_bill 接口的响应。 + /// + public class XPayCreateFundsBillResponse : WechatApiResponse + { + /// + /// 获取或设置充值单 ID。 + /// + [Newtonsoft.Json.JsonProperty("bill_id")] + [System.Text.Json.Serialization.JsonPropertyName("bill_id")] + public string BillId { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayQueryAdverFundsRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayQueryAdverFundsRequest.cs new file mode 100644 index 00000000..5552fb05 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayQueryAdverFundsRequest.cs @@ -0,0 +1,63 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /xpay/query_adver_funds 接口的请求。 + /// + public class XPayQueryAdverFundsRequest : XPayRequestBase, IInferable + { + public static class Types + { + public class Filter + { + /// + /// 获取或设置结算周期开始时间戳。 + /// + [Newtonsoft.Json.JsonProperty("settle_begin")] + [System.Text.Json.Serialization.JsonPropertyName("settle_begin")] + public long SettleBeginTimestamp { get; set; } + + /// + /// 获取或设置结算周期结束时间戳。 + /// + [Newtonsoft.Json.JsonProperty("settle_end")] + [System.Text.Json.Serialization.JsonPropertyName("settle_end")] + public long SettleEndTimestamp { get; set; } + + /// + /// 获取或设置广告金类型。 + /// + [Newtonsoft.Json.JsonProperty("fund_type")] + [System.Text.Json.Serialization.JsonPropertyName("fund_type")] + public int? FundsType { get; set; } + } + } + + /// + /// 获取或设置分页页数。 + /// 默认值:1 + /// + [Newtonsoft.Json.JsonProperty("page")] + [System.Text.Json.Serialization.JsonPropertyName("page")] + public int Page { get; set; } = 1; + + /// + /// 获取或设置分页每页数量。 + /// 默认值:10 + /// + [Newtonsoft.Json.JsonProperty("page_size")] + [System.Text.Json.Serialization.JsonPropertyName("page_size")] + public int Limit { get; set; } = 10; + + /// + /// 获取或设置查询过滤条件。 + /// + [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"; + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayQueryAdverFundsResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayQueryAdverFundsResponse.cs new file mode 100644 index 00000000..41e5fc47 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayQueryAdverFundsResponse.cs @@ -0,0 +1,77 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /xpay/query_adver_funds 接口的响应。 + /// + public class XPayQueryAdverFundsResponse : WechatApiResponse + { + public static class Types + { + public class AdverFund + { + /// + /// 获取或设置广告金发放 ID。 + /// + [Newtonsoft.Json.JsonProperty("fund_id")] + [System.Text.Json.Serialization.JsonPropertyName("fund_id")] + public string FundId { get; set; } = default!; + + /// + /// 获取或设置广告金发放类型。 + /// + [Newtonsoft.Json.JsonProperty("fund_type")] + [System.Text.Json.Serialization.JsonPropertyName("fund_type")] + public int FundType { get; set; } + + /// + /// 获取或设置结算周期开始时间戳。 + /// + [Newtonsoft.Json.JsonProperty("settle_begin")] + [System.Text.Json.Serialization.JsonPropertyName("settle_begin")] + public long SettleBeginTimestamp { get; set; } + + /// + /// 获取或设置结算周期结束时间戳。 + /// + [Newtonsoft.Json.JsonProperty("settle_end")] + [System.Text.Json.Serialization.JsonPropertyName("settle_end")] + public long SettleEndTimestamp { get; set; } + + /// + /// 获取或设置发放广告金金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("total_amount")] + [System.Text.Json.Serialization.JsonPropertyName("total_amount")] + public int TotalAmount { get; set; } + + /// + /// 获取或设置剩余可用金金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("remain_amount")] + [System.Text.Json.Serialization.JsonPropertyName("remain_amount")] + public int RemainAmount { get; set; } + + /// + /// 获取或设置过期时间戳。 + /// + [Newtonsoft.Json.JsonProperty("expire_time")] + [System.Text.Json.Serialization.JsonPropertyName("expire_time")] + public long? ExpireTimestamp { get; set; } + } + } + + /// + /// 获取或设置广告金发放记录列表。 + /// + [Newtonsoft.Json.JsonProperty("adver_funds_list")] + [System.Text.Json.Serialization.JsonPropertyName("adver_funds_list")] + public Types.AdverFund[] AdverFundList { get; set; } = default!; + + /// + /// 获取或设置总页数。 + /// + [Newtonsoft.Json.JsonProperty("total_page")] + [System.Text.Json.Serialization.JsonPropertyName("total_page")] + public int TotalPage { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayQueryBusinessBalanceRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayQueryBusinessBalanceRequest.cs new file mode 100644 index 00000000..c29d2b06 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayQueryBusinessBalanceRequest.cs @@ -0,0 +1,13 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /xpay/query_biz_balance 接口的请求。 + /// + public class XPayQueryBusinessBalanceRequest : XPayRequestBase, IInferable + { + protected internal override string GetRequestPath() + { + return "/xpay/query_biz_balance"; + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayQueryBusinessBalanceResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayQueryBusinessBalanceResponse.cs new file mode 100644 index 00000000..5cfe1285 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayQueryBusinessBalanceResponse.cs @@ -0,0 +1,36 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /xpay/query_biz_balance 接口的响应。 + /// + public class XPayQueryBusinessBalanceResponse : WechatApiResponse + { + public static class Types + { + public class Balance + { + /// + /// 获取或设置余额(单位:元)。 + /// + [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; } + + /// + /// 获取或设置币种。 + /// + [Newtonsoft.Json.JsonProperty("currency_code")] + [System.Text.Json.Serialization.JsonPropertyName("currency_code")] + public string Currency { get; set; } = default!; + } + } + + /// + /// 获取或设置可提现余额信息。 + /// + [Newtonsoft.Json.JsonProperty("balance_available")] + [System.Text.Json.Serialization.JsonPropertyName("balance_available")] + public Types.Balance AvailableBalance { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayQueryFundsListRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayQueryFundsListRequest.cs new file mode 100644 index 00000000..eb3d5ad4 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayQueryFundsListRequest.cs @@ -0,0 +1,63 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /xpay/query_funds_bill 接口的请求。 + /// + public class XPayQueryFundsListRequest : XPayRequestBase, IInferable + { + public static class Types + { + public class Filter + { + /// + /// 获取或设置充值开始时间戳。 + /// + [Newtonsoft.Json.JsonProperty("oper_time_begin")] + [System.Text.Json.Serialization.JsonPropertyName("oper_time_begin")] + public long? OperateBeginTimestamp { get; set; } + + /// + /// 获取或设置充值结束时间戳。 + /// + [Newtonsoft.Json.JsonProperty("oper_time_end")] + [System.Text.Json.Serialization.JsonPropertyName("oper_time_end")] + public long? OperateEndTimestamp { get; set; } + + /// + /// 获取或设置广告金充值单 ID。 + /// + [Newtonsoft.Json.JsonProperty("bill_id")] + [System.Text.Json.Serialization.JsonPropertyName("bill_id")] + public string? BillId { get; set; } + } + } + + /// + /// 获取或设置分页页数。 + /// 默认值:1 + /// + [Newtonsoft.Json.JsonProperty("page")] + [System.Text.Json.Serialization.JsonPropertyName("page")] + public int Page { get; set; } = 1; + + /// + /// 获取或设置分页每页数量。 + /// 默认值:10 + /// + [Newtonsoft.Json.JsonProperty("page_size")] + [System.Text.Json.Serialization.JsonPropertyName("page_size")] + public int Limit { get; set; } = 10; + + /// + /// 获取或设置查询过滤条件。 + /// + [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"; + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayQueryFundsListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayQueryFundsListResponse.cs new file mode 100644 index 00000000..dbdfb792 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayQueryFundsListResponse.cs @@ -0,0 +1,91 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /xpay/query_funds_bill 接口的响应。 + /// + public class XPayQueryFundsListResponse : WechatApiResponse + { + public static class Types + { + public class Bill + { + /// + /// 获取或设置充值单 ID。 + /// + [Newtonsoft.Json.JsonProperty("bill_id")] + [System.Text.Json.Serialization.JsonPropertyName("bill_id")] + public string BillId { get; set; } = default!; + + /// + /// 获取或设置充值时间。 + /// + [Newtonsoft.Json.JsonProperty("oper_time")] + [System.Text.Json.Serialization.JsonPropertyName("oper_time")] + public long OperateTimestamp { get; set; } + + /// + /// 获取或设置对应广告金 ID。 + /// + [Newtonsoft.Json.JsonProperty("fund_id")] + [System.Text.Json.Serialization.JsonPropertyName("fund_id")] + public string FundId { get; set; } = default!; + + /// + /// 获取或设置结算周期开始时间戳。 + /// + [Newtonsoft.Json.JsonProperty("settle_begin")] + [System.Text.Json.Serialization.JsonPropertyName("settle_begin")] + public long SettleBeginTimestamp { get; set; } + + /// + /// 获取或设置结算周期结束时间戳。 + /// + [Newtonsoft.Json.JsonProperty("settle_end")] + [System.Text.Json.Serialization.JsonPropertyName("settle_end")] + public long SettleEndTimestamp { get; set; } + + /// + /// 获取或设置充值账户 UID。 + /// + [Newtonsoft.Json.JsonProperty("transfer_account_uid")] + [System.Text.Json.Serialization.JsonPropertyName("transfer_account_uid")] + public int TransferAccountUID { get; set; } + + /// + /// 获取或设置充值账户名称。 + /// + [Newtonsoft.Json.JsonProperty("transfer_account_name")] + [System.Text.Json.Serialization.JsonPropertyName("transfer_account_name")] + public string TransferAccountName { get; set; } = default!; + + /// + /// 获取或设置充值金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("transfer_amount")] + [System.Text.Json.Serialization.JsonPropertyName("transfer_amount")] + public int RransferAmount { get; set; } + + /// + /// 获取或设置充值状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int Status { get; set; } + } + } + + /// + /// 获取或设置广告金充值记录列表。 + /// + [Newtonsoft.Json.JsonProperty("bill_list")] + [System.Text.Json.Serialization.JsonPropertyName("bill_list")] + public Types.Bill[] BillList { get; set; } = default!; + + /// + /// 获取或设置总页数。 + /// + [Newtonsoft.Json.JsonProperty("total_page")] + [System.Text.Json.Serialization.JsonPropertyName("total_page")] + public int TotalPage { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayQueryOrderResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayQueryOrderResponse.cs index 795af64f..179488af 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayQueryOrderResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayQueryOrderResponse.cs @@ -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; } + + /// + /// 获取或设置结算状态。 + /// + [Newtonsoft.Json.JsonProperty("sett_state")] + [System.Text.Json.Serialization.JsonPropertyName("sett_state")] + public long SettleState { get; set; } + + /// + /// 获取或设置结算时间戳。 + /// + [Newtonsoft.Json.JsonProperty("sett_time")] + [System.Text.Json.Serialization.JsonPropertyName("sett_time")] + public long SettleTimestamp { get; set; } } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayQueryRecoverListRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayQueryRecoverListRequest.cs new file mode 100644 index 00000000..daad756e --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayQueryRecoverListRequest.cs @@ -0,0 +1,63 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /xpay/query_recover_bill 接口的请求。 + /// + public class XPayQueryRecoverListRequest : XPayRequestBase, IInferable + { + public static class Types + { + public class Filter + { + /// + /// 获取或设置回收开始时间戳。 + /// + [Newtonsoft.Json.JsonProperty("recover_time_begin")] + [System.Text.Json.Serialization.JsonPropertyName("recover_time_begin")] + public long? RecoverBeginTimestamp { get; set; } + + /// + /// 获取或设置回收结束时间戳。 + /// + [Newtonsoft.Json.JsonProperty("recover_time_end")] + [System.Text.Json.Serialization.JsonPropertyName("recover_time_end")] + public long? RecoverEndTimestamp { get; set; } + + /// + /// 获取或设置广告金充值单 ID。 + /// + [Newtonsoft.Json.JsonProperty("bill_id")] + [System.Text.Json.Serialization.JsonPropertyName("bill_id")] + public string? BillId { get; set; } + } + } + + /// + /// 获取或设置分页页数。 + /// 默认值:1 + /// + [Newtonsoft.Json.JsonProperty("page")] + [System.Text.Json.Serialization.JsonPropertyName("page")] + public int Page { get; set; } = 1; + + /// + /// 获取或设置分页每页数量。 + /// 默认值:10 + /// + [Newtonsoft.Json.JsonProperty("page_size")] + [System.Text.Json.Serialization.JsonPropertyName("page_size")] + public int Limit { get; set; } = 10; + + /// + /// 获取或设置查询过滤条件。 + /// + [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"; + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayQueryRecoverListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayQueryRecoverListResponse.cs new file mode 100644 index 00000000..68c08a4f --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayQueryRecoverListResponse.cs @@ -0,0 +1,84 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /xpay/query_recover_bill 接口的响应。 + /// + public class XPayQueryRecoverListResponse : WechatApiResponse + { + public static class Types + { + public class Bill + { + /// + /// 获取或设置回收单 ID。 + /// + [Newtonsoft.Json.JsonProperty("bill_id")] + [System.Text.Json.Serialization.JsonPropertyName("bill_id")] + public string BillId { get; set; } = default!; + + /// + /// 获取或设置回收时间。 + /// + [Newtonsoft.Json.JsonProperty("recover_time")] + [System.Text.Json.Serialization.JsonPropertyName("recover_time")] + public long RecoverTimestamp { get; set; } + + /// + /// 获取或设置对应广告金 ID。 + /// + [Newtonsoft.Json.JsonProperty("fund_id")] + [System.Text.Json.Serialization.JsonPropertyName("fund_id")] + public string FundId { get; set; } = default!; + + /// + /// 获取或设置结算周期开始时间戳。 + /// + [Newtonsoft.Json.JsonProperty("settle_begin")] + [System.Text.Json.Serialization.JsonPropertyName("settle_begin")] + public long SettleBeginTimestamp { get; set; } + + /// + /// 获取或设置结算周期结束时间戳。 + /// + [Newtonsoft.Json.JsonProperty("settle_end")] + [System.Text.Json.Serialization.JsonPropertyName("settle_end")] + public long SettleEndTimestamp { get; set; } + + /// + /// 获取或设置回收账户名称。 + /// + [Newtonsoft.Json.JsonProperty("recover_account_name")] + [System.Text.Json.Serialization.JsonPropertyName("recover_account_name")] + public string TransferAccountName { get; set; } = default!; + + /// + /// 获取或设置回收金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("recover_amount")] + [System.Text.Json.Serialization.JsonPropertyName("recover_amount")] + public int RecoverAmount { get; set; } + + /// + /// 获取或设置对应的退款订单 ID 列表。 + /// + [Newtonsoft.Json.JsonProperty("refund_order_list")] + [System.Text.Json.Serialization.JsonPropertyName("refund_order_list")] + public string[]? RefundOrderIdList { get; set; } + } + } + + /// + /// 获取或设置广告金回收记录列表。 + /// + [Newtonsoft.Json.JsonProperty("bill_list")] + [System.Text.Json.Serialization.JsonPropertyName("bill_list")] + public Types.Bill[] BillList { get; set; } = default!; + + /// + /// 获取或设置总页数。 + /// + [Newtonsoft.Json.JsonProperty("total_page")] + [System.Text.Json.Serialization.JsonPropertyName("total_page")] + public int TotalPage { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayQueryTransferAccountRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayQueryTransferAccountRequest.cs new file mode 100644 index 00000000..2d96fa32 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayQueryTransferAccountRequest.cs @@ -0,0 +1,13 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /xpay/query_transfer_account 接口的请求。 + /// + public class XPayQueryTransferAccountRequest : XPayRequestBase, IInferable + { + protected internal override string GetRequestPath() + { + return "/xpay/query_transfer_account"; + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayQueryTransferAccountResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayQueryTransferAccountResponse.cs new file mode 100644 index 00000000..b0bdd178 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Models/XPay/XPayQueryTransferAccountResponse.cs @@ -0,0 +1,49 @@ +namespace SKIT.FlurlHttpClient.Wechat.Api.Models +{ + /// + /// 表示 [POST] /xpay/query_transfer_account 接口的响应。 + /// + public class XPayQueryTransferAccountResponse : WechatApiResponse + { + public static class Types + { + public class Account + { + /// + /// 获取或设置充值账户 UID。 + /// + [Newtonsoft.Json.JsonProperty("transfer_account_uid")] + [System.Text.Json.Serialization.JsonPropertyName("transfer_account_uid")] + public int TransferAccountUID { get; set; } + + /// + /// 获取或设置充值账户名称。 + /// + [Newtonsoft.Json.JsonProperty("transfer_account_name")] + [System.Text.Json.Serialization.JsonPropertyName("transfer_account_name")] + public string TransferAccountName { get; set; } = default!; + + /// + /// 获取或设置充值账户服务商账号 ID。 + /// + [Newtonsoft.Json.JsonProperty("transfer_account_agency_id")] + [System.Text.Json.Serialization.JsonPropertyName("transfer_account_agency_id")] + public int? TransferAccountAgencyId { get; set; } + + /// + /// 获取或设置充值账户服务商账号名称。 + /// + [Newtonsoft.Json.JsonProperty("transfer_account_agency_name")] + [System.Text.Json.Serialization.JsonPropertyName("transfer_account_agency_name")] + public string? TransferAccountAgencyName { get; set; } + } + } + + /// + /// 获取或设置广告金充值账户列表。 + /// + [Newtonsoft.Json.JsonProperty("acct_list")] + [System.Text.Json.Serialization.JsonPropertyName("acct_list")] + public Types.Account[] AccountList { get; set; } = default!; + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayBindTransferAccountRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayBindTransferAccountRequest.json new file mode 100644 index 00000000..287fe600 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayBindTransferAccountRequest.json @@ -0,0 +1,5 @@ +{ + "transfer_account_uid": 0, + "transfer_account_org_name": "", + "env": 1 +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayCreateFundsBillRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayCreateFundsBillRequest.json new file mode 100644 index 00000000..22d37367 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayCreateFundsBillRequest.json @@ -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 +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayCreateFundsBillResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayCreateFundsBillResponse.json new file mode 100644 index 00000000..63928b57 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayCreateFundsBillResponse.json @@ -0,0 +1,5 @@ +{ + "errcode": 0, + "errmsg": "ok", + "bill_id": "" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayQueryAdverFundsRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayQueryAdverFundsRequest.json new file mode 100644 index 00000000..ab5e4335 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayQueryAdverFundsRequest.json @@ -0,0 +1,10 @@ +{ + "page": 0, + "page_size": 0, + "filter": { + "settle_begin": 0, + "settle_end": 0, + "fund_type": 0 + }, + "env": 1 +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayQueryAdverFundsResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayQueryAdverFundsResponse.json new file mode 100644 index 00000000..50c9f0ff --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayQueryAdverFundsResponse.json @@ -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 +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayQueryBusinessBalanceRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayQueryBusinessBalanceRequest.json new file mode 100644 index 00000000..7848df61 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayQueryBusinessBalanceRequest.json @@ -0,0 +1,3 @@ +{ + "env": 1 +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayQueryBusinessBalanceResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayQueryBusinessBalanceResponse.json new file mode 100644 index 00000000..cee4e889 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayQueryBusinessBalanceResponse.json @@ -0,0 +1,8 @@ +{ + "errcode": 0, + "errmsg": "ok", + "balance_available": { + "amount": 1, + "currency_code": "CNY" + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayQueryFundsListRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayQueryFundsListRequest.json new file mode 100644 index 00000000..feb2bfa2 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayQueryFundsListRequest.json @@ -0,0 +1,10 @@ +{ + "page": 0, + "page_size": 0, + "filter": { + "oper_time_begin": 0, + "oper_time_end": 0, + "bill_id": "" + }, + "env": 1 +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayQueryFundsListResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayQueryFundsListResponse.json new file mode 100644 index 00000000..526c14e4 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayQueryFundsListResponse.json @@ -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 + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayQueryRecoverListRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayQueryRecoverListRequest.json new file mode 100644 index 00000000..b6e0f2ae --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayQueryRecoverListRequest.json @@ -0,0 +1,10 @@ +{ + "page": 0, + "page_size": 0, + "filter": { + "recover_time_begin": 0, + "recover_time_end": 0, + "bill_id": "" + }, + "env": 1 +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayQueryRecoverListResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayQueryRecoverListResponse.json new file mode 100644 index 00000000..7e4ea113 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayQueryRecoverListResponse.json @@ -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": [""] + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayQueryTransferAccountRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayQueryTransferAccountRequest.json new file mode 100644 index 00000000..7848df61 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayQueryTransferAccountRequest.json @@ -0,0 +1,3 @@ +{ + "env": 1 +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayQueryTransferAccountResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayQueryTransferAccountResponse.json new file mode 100644 index 00000000..0bb08383 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/ModelSamples/XPay/XPayQueryTransferAccountResponse.json @@ -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": "" + } + ] +}