From 992bbf1ee0e90fe35367efd4b5a0315046a603b5 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Sun, 13 Jul 2025 22:30:22 +0800 Subject: [PATCH] =?UTF-8?q?feat(tenpayv3):=20=E6=96=B0=E5=A2=9E=E5=BE=AE?= =?UTF-8?q?=E4=BF=A1=E5=88=86=E4=BB=98=E6=94=AF=E4=BB=98=E6=96=B9=E5=BC=8F?= =?UTF-8?q?=E5=89=8D=E7=BD=AE=E6=9B=9D=E5=85=89=E7=9B=B8=E5=85=B3=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ePayAcquiringBankTransactionsExtensions.cs | 35 ++++++++ ...ExecutePayPartnerTransactionsExtensions.cs | 27 ++++++ ...yClientExecutePayTransactionsExtensions.cs | 27 ++++++ .../CreatePayTransactionExposureRequest.cs | 56 +++++++++++++ .../CreatePayTransactionExposureResponse.cs | 22 +++++ ...AcquiringBankTransactionExposureRequest.cs | 84 +++++++++++++++++++ ...cquiringBankTransactionExposureResponse.cs | 9 ++ ...atePayPartnerTransactionExposureRequest.cs | 77 +++++++++++++++++ ...tePayPartnerTransactionExposureResponse.cs | 9 ++ .../CreatePayTransactionExposureRequest.json | 9 ++ .../CreatePayTransactionExposureResponse.json | 4 + ...quiringBankTransactionExposureRequest.json | 13 +++ ...uiringBankTransactionExposureResponse.json | 4 + ...ePayPartnerTransactionExposureRequest.json | 12 +++ ...PayPartnerTransactionExposureResponse.json | 4 + 15 files changed, 392 insertions(+) create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePayAcquiringBankTransactionsExtensions.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayTransactions/Exposure/CreatePayTransactionExposureRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayTransactions/Exposure/CreatePayTransactionExposureResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Bank/PayTransactions/Exposure/CreatePayAcquiringBankTransactionExposureRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Bank/PayTransactions/Exposure/CreatePayAcquiringBankTransactionExposureResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PayTransactions/Exposure/CreatePayPartnerTransactionExposureRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PayTransactions/Exposure/CreatePayPartnerTransactionExposureResponse.cs create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/PayTransactions/Exposure/CreatePayTransactionExposureRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/PayTransactions/Exposure/CreatePayTransactionExposureResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Bank/PayTransactions/Exposure/CreatePayAcquiringBankTransactionExposureRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Bank/PayTransactions/Exposure/CreatePayAcquiringBankTransactionExposureResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/PayTransactions/Exposure/CreatePayPartnerTransactionExposureRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/PayTransactions/Exposure/CreatePayPartnerTransactionExposureResponse.json diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePayAcquiringBankTransactionsExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePayAcquiringBankTransactionsExtensions.cs new file mode 100644 index 00000000..f73b9426 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePayAcquiringBankTransactionsExtensions.cs @@ -0,0 +1,35 @@ +using System; +using System.Net.Http; +using System.Threading; +using System.Threading.Tasks; +using Flurl.Http; + +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 +{ + public static class WechatTenpayClientExecutePayAcquiringBankTransactionsExtensions + { + #region Exposure + /// + /// 异步调用 [POST] /pay/acquiring-bank/transactions/exposure 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteCreatePayAcquiringBankTransactionExposureAsync(this WechatTenpayClient client, Models.CreatePayAcquiringBankTransactionExposureRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateFlurlRequest(request, HttpMethod.Post, "pay", "acquiring-bank", "transactions", "exposure"); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + #endregion + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePayPartnerTransactionsExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePayPartnerTransactionsExtensions.cs index 20ae3449..4d34f847 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePayPartnerTransactionsExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePayPartnerTransactionsExtensions.cs @@ -283,5 +283,32 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } + + #region Exposure + /// + /// 异步调用 [POST] /pay/partner/transactions/exposure 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteCreatePayPartnerTransactionExposureAsync(this WechatTenpayClient client, Models.CreatePayPartnerTransactionExposureRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + if (request.MerchantId is null) + request.MerchantId = client.Credentials.MerchantId; + + IFlurlRequest flurlReq = client + .CreateFlurlRequest(request, HttpMethod.Post, "pay", "partner", "transactions", "exposure"); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + #endregion } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePayTransactionsExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePayTransactionsExtensions.cs index 493a4d22..bb4756df 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePayTransactionsExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePayTransactionsExtensions.cs @@ -248,5 +248,32 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); } + + #region Exposure + /// + /// 异步调用 [POST] /pay/transactions/exposure 接口。 + /// + /// REF:
+ /// + ///
+ ///
+ /// + /// + /// + /// + public static async Task ExecuteCreatePayTransactionExposureAsync(this WechatTenpayClient client, Models.CreatePayTransactionExposureRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + if (request.MerchantId is null) + request.MerchantId = client.Credentials.MerchantId; + + IFlurlRequest flurlReq = client + .CreateFlurlRequest(request, HttpMethod.Post, "pay", "transactions", "exposure"); + + return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false); + } + #endregion } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayTransactions/Exposure/CreatePayTransactionExposureRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayTransactions/Exposure/CreatePayTransactionExposureRequest.cs new file mode 100644 index 00000000..cef094bc --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayTransactions/Exposure/CreatePayTransactionExposureRequest.cs @@ -0,0 +1,56 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /pay/transactions/exposure 接口的请求。 + /// + public class CreatePayTransactionExposureRequest : WechatTenpayRequest + { + public static class Types + { + public class Payer + { + /// + /// 获取或设置用户唯一标识。 + /// + [Newtonsoft.Json.JsonProperty("openid")] + [System.Text.Json.Serialization.JsonPropertyName("openid")] + public string? OpenId { get; set; } + + /// + /// 获取或设置手机号哈希值。 + /// + [Newtonsoft.Json.JsonProperty("phone_number_hash")] + [System.Text.Json.Serialization.JsonPropertyName("phone_number_hash")] + public string? PhoneNumberHash { get; set; } + } + } + + /// + /// 获取或设置微信商户号。如果不指定将使用构造 时的 参数。 + /// + [Newtonsoft.Json.JsonProperty("mchid")] + [System.Text.Json.Serialization.JsonPropertyName("mchid")] + public string? MerchantId { get; set; } + + /// + /// 获取或设置微信 AppId。 + /// + [Newtonsoft.Json.JsonProperty("appid")] + [System.Text.Json.Serialization.JsonPropertyName("appid")] + public string AppId { get; set; } = string.Empty; + + /// + /// 获取或设置商户订单号。 + /// + [Newtonsoft.Json.JsonProperty("out_trade_no")] + [System.Text.Json.Serialization.JsonPropertyName("out_trade_no")] + public string OutTradeNumber { get; set; } = string.Empty; + + /// + /// 获取或设置支付者信息。 + /// + [Newtonsoft.Json.JsonProperty("payer")] + [System.Text.Json.Serialization.JsonPropertyName("payer")] + public Types.Payer? Payer { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayTransactions/Exposure/CreatePayTransactionExposureResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayTransactions/Exposure/CreatePayTransactionExposureResponse.cs new file mode 100644 index 00000000..f023da45 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayTransactions/Exposure/CreatePayTransactionExposureResponse.cs @@ -0,0 +1,22 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /pay/transactions/exposure 接口的响应。 + /// + public class CreatePayTransactionExposureResponse : WechatTenpayResponse + { + /// + /// 获取或设置是否建议曝光微信分付。 + /// + [Newtonsoft.Json.JsonProperty("fqf_exposure")] + [System.Text.Json.Serialization.JsonPropertyName("fqf_exposure")] + public bool IsExposed { get; set; } + + /// + /// 获取或设置曝光凭证。 + /// + [Newtonsoft.Json.JsonProperty("market_exposure_token")] + [System.Text.Json.Serialization.JsonPropertyName("market_exposure_token")] + public string? MarketExposureToken { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Bank/PayTransactions/Exposure/CreatePayAcquiringBankTransactionExposureRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Bank/PayTransactions/Exposure/CreatePayAcquiringBankTransactionExposureRequest.cs new file mode 100644 index 00000000..44f6a706 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Bank/PayTransactions/Exposure/CreatePayAcquiringBankTransactionExposureRequest.cs @@ -0,0 +1,84 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /pay/acquiring-bank/transactions/exposure 接口的请求。 + /// + public class CreatePayAcquiringBankTransactionExposureRequest : WechatTenpayRequest + { + public static class Types + { + public class Payer + { + /// + /// 获取或设置用户唯一标识。 + /// + [Newtonsoft.Json.JsonProperty("acquiring_bank_openid")] + [System.Text.Json.Serialization.JsonPropertyName("acquiring_bank_openid")] + public string? OpenId { get; set; } + + /// + /// 获取或设置用户在特约商户下的唯一标识。 + /// + [Newtonsoft.Json.JsonProperty("merchant_openid")] + [System.Text.Json.Serialization.JsonPropertyName("merchant_openid")] + public string? SubOpenId { get; set; } + + /// + /// 获取或设置手机号哈希值。 + /// + [Newtonsoft.Json.JsonProperty("phone_number_hash")] + [System.Text.Json.Serialization.JsonPropertyName("phone_number_hash")] + public string? PhoneNumberHash { get; set; } + } + } + + /// + /// 获取或设置从业机构号。 + /// + [Newtonsoft.Json.JsonProperty("acquiring_bank_id")] + [System.Text.Json.Serialization.JsonPropertyName("acquiring_bank_id")] + public string AquiringBankId { get; set; } = string.Empty; + + /// + /// 获取或设置从业机构 AppId。 + /// + [Newtonsoft.Json.JsonProperty("acquiring_bank_appid")] + [System.Text.Json.Serialization.JsonPropertyName("acquiring_bank_appid")] + public string? AquiringBankAppId { get; set; } + + /// + /// 获取或设置特约商户号。 + /// + [Newtonsoft.Json.JsonProperty("merchant_id")] + [System.Text.Json.Serialization.JsonPropertyName("merchant_id")] + public string SubMerchantId { get; set; } = string.Empty; + + /// + /// 获取或设置特约商户 AppId。 + /// + [Newtonsoft.Json.JsonProperty("merchant_appid")] + [System.Text.Json.Serialization.JsonPropertyName("merchant_appid")] + public string? SubAppId { get; set; } + + /// + /// 获取或设置渠道商户号。 + /// + [Newtonsoft.Json.JsonProperty("channel_id")] + [System.Text.Json.Serialization.JsonPropertyName("channel_id")] + public string ChannelId { get; set; } = string.Empty; + + /// + /// 获取或设置商户订单号。 + /// + [Newtonsoft.Json.JsonProperty("out_trade_no")] + [System.Text.Json.Serialization.JsonPropertyName("out_trade_no")] + public string OutTradeNumber { get; set; } = string.Empty; + + /// + /// 获取或设置支付者信息。 + /// + [Newtonsoft.Json.JsonProperty("payer")] + [System.Text.Json.Serialization.JsonPropertyName("payer")] + public Types.Payer? Payer { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Bank/PayTransactions/Exposure/CreatePayAcquiringBankTransactionExposureResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Bank/PayTransactions/Exposure/CreatePayAcquiringBankTransactionExposureResponse.cs new file mode 100644 index 00000000..910cd323 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Bank/PayTransactions/Exposure/CreatePayAcquiringBankTransactionExposureResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /pay/acquiring-bank/transactions/exposure 接口的响应。 + /// + public class CreatePayAcquiringBankTransactionExposureResponse : CreatePayTransactionExposureResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PayTransactions/Exposure/CreatePayPartnerTransactionExposureRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PayTransactions/Exposure/CreatePayPartnerTransactionExposureRequest.cs new file mode 100644 index 00000000..f5bb4e32 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PayTransactions/Exposure/CreatePayPartnerTransactionExposureRequest.cs @@ -0,0 +1,77 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /pay/partner/transactions/exposure 接口的请求。 + /// + public class CreatePayPartnerTransactionExposureRequest : WechatTenpayRequest + { + public static class Types + { + public class Payer + { + /// + /// 获取或设置用户唯一标识。 + /// + [Newtonsoft.Json.JsonProperty("sp_openid")] + [System.Text.Json.Serialization.JsonPropertyName("sp_openid")] + public string? OpenId { get; set; } + + /// + /// 获取或设置用户在子商户下的唯一标识。 + /// + [Newtonsoft.Json.JsonProperty("sub_openid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_openid")] + public string? SubOpenId { get; set; } + + /// + /// 获取或设置手机号哈希值。 + /// + [Newtonsoft.Json.JsonProperty("phone_number_hash")] + [System.Text.Json.Serialization.JsonPropertyName("phone_number_hash")] + public string? PhoneNumberHash { get; set; } + } + } + + /// + /// 获取或设置服务商商户号。如果不指定将使用构造 时的 参数。 + /// + [Newtonsoft.Json.JsonProperty("sp_mchid")] + [System.Text.Json.Serialization.JsonPropertyName("sp_mchid")] + public string? MerchantId { get; set; } + + /// + /// 获取或设置子商户号。 + /// + [Newtonsoft.Json.JsonProperty("sub_mchid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_mchid")] + public string SubMerchantId { get; set; } = string.Empty; + + /// + /// 获取或设置服务商 AppId。 + /// + [Newtonsoft.Json.JsonProperty("sp_appid")] + [System.Text.Json.Serialization.JsonPropertyName("sp_appid")] + public string AppId { get; set; } = string.Empty; + + /// + /// 获取或设置子商户 AppId。 + /// + [Newtonsoft.Json.JsonProperty("sub_appid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_appid")] + public string? SubAppId { get; set; } + + /// + /// 获取或设置商户订单号。 + /// + [Newtonsoft.Json.JsonProperty("out_trade_no")] + [System.Text.Json.Serialization.JsonPropertyName("out_trade_no")] + public string OutTradeNumber { get; set; } = string.Empty; + + /// + /// 获取或设置支付者信息。 + /// + [Newtonsoft.Json.JsonProperty("payer")] + [System.Text.Json.Serialization.JsonPropertyName("payer")] + public Types.Payer? Payer { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PayTransactions/Exposure/CreatePayPartnerTransactionExposureResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PayTransactions/Exposure/CreatePayPartnerTransactionExposureResponse.cs new file mode 100644 index 00000000..8a205d00 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/_Partner/PayTransactions/Exposure/CreatePayPartnerTransactionExposureResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /pay/partner/transactions/exposure 接口的响应。 + /// + public class CreatePayPartnerTransactionExposureResponse : CreatePayTransactionExposureResponse + { + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/PayTransactions/Exposure/CreatePayTransactionExposureRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/PayTransactions/Exposure/CreatePayTransactionExposureRequest.json new file mode 100644 index 00000000..d9651778 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/PayTransactions/Exposure/CreatePayTransactionExposureRequest.json @@ -0,0 +1,9 @@ +{ + "mchid": "example_mchid", + "appid": "wxd678efh567hg6787", + "payer": { + "openid": "oLTPCuEfSOSZA6X5uR_JxNKjrGLg", + "phone_number_hash": "ABDEF3445546456B" + }, + "out_trade_no": "example_out_trade_no" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/PayTransactions/Exposure/CreatePayTransactionExposureResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/PayTransactions/Exposure/CreatePayTransactionExposureResponse.json new file mode 100644 index 00000000..d07e829e --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/PayTransactions/Exposure/CreatePayTransactionExposureResponse.json @@ -0,0 +1,4 @@ +{ + "fqf_exposure": true, + "market_exposure_token": "Dfkdsf324+-LKFD=" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Bank/PayTransactions/Exposure/CreatePayAcquiringBankTransactionExposureRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Bank/PayTransactions/Exposure/CreatePayAcquiringBankTransactionExposureRequest.json new file mode 100644 index 00000000..53b2fd20 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Bank/PayTransactions/Exposure/CreatePayAcquiringBankTransactionExposureRequest.json @@ -0,0 +1,13 @@ +{ + "acquiring_bank_id": "1900000100", + "acquiring_bank_appid": "wx8888888888888888", + "merchant_id": "1900000109", + "merchant_appid": "wx8888888888888888", + "channel_id": "19000001", + "payer": { + "acquiring_bank_openid": "oLTPCuEfSOSZA6X5uR_JxNKjrGLg", + "phone_number_hash": "ABDEF3445546456B", + "merchant_openid": "oLTPCuEfSOSZA6X5uR_JxNKjrGLg" + }, + "out_trade_no": "example_out_trade_no" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Bank/PayTransactions/Exposure/CreatePayAcquiringBankTransactionExposureResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Bank/PayTransactions/Exposure/CreatePayAcquiringBankTransactionExposureResponse.json new file mode 100644 index 00000000..d07e829e --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Bank/PayTransactions/Exposure/CreatePayAcquiringBankTransactionExposureResponse.json @@ -0,0 +1,4 @@ +{ + "fqf_exposure": true, + "market_exposure_token": "Dfkdsf324+-LKFD=" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/PayTransactions/Exposure/CreatePayPartnerTransactionExposureRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/PayTransactions/Exposure/CreatePayPartnerTransactionExposureRequest.json new file mode 100644 index 00000000..9df175ba --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/PayTransactions/Exposure/CreatePayPartnerTransactionExposureRequest.json @@ -0,0 +1,12 @@ +{ + "sp_mchid": "example_sp_mchid", + "sp_appid": "wxd678efh567hg6787", + "sub_mchid": "example_sub_mchid", + "sub_appid": "wxd678efh567hg6787", + "payer": { + "sp_openid": "oLTPCuEfSOSZA6X5uR_JxNKjrGLg", + "phone_number_hash": "ABDEF3445546456B", + "sub_openid": "oLTPCuEfSOSZA6X5uR_JxNKjrGLg" + }, + "out_trade_no": "example_out_trade_no" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/PayTransactions/Exposure/CreatePayPartnerTransactionExposureResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/PayTransactions/Exposure/CreatePayPartnerTransactionExposureResponse.json new file mode 100644 index 00000000..d07e829e --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/_/_Partner/PayTransactions/Exposure/CreatePayPartnerTransactionExposureResponse.json @@ -0,0 +1,4 @@ +{ + "fqf_exposure": true, + "market_exposure_token": "Dfkdsf324+-LKFD=" +}