diff --git a/docs/WechatTenpayV3/Basic_GlobalAPI.md b/docs/WechatTenpayV3/Basic_GlobalAPI.md
new file mode 100644
index 00000000..0344fe25
--- /dev/null
+++ b/docs/WechatTenpayV3/Basic_GlobalAPI.md
@@ -0,0 +1,21 @@
+## 如何接入境外支付 API?
+
+微信支付境外支付 API 的接入点、接口模型公共参数等配置项与基础 API 完全不同,需要使用独立的扩展客户端。
+
+```csharp
+using SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global;
+using SKIT.FlurlHttpClient.Wechat.TenpayV3.Settings;
+
+var manager = new InMemoryCertificateManager();
+var options = new WechatTenpayGlobalClientOptions()
+{
+ MerchantId = "微信商户号",
+ MerchantV3Secret = "微信商户 v3 API 密钥",
+ MerchantCertificateSerialNumber = "微信商户证书序列号",
+ MerchantCertificatePrivateKey = System.IO.File.ReadAllText("/微信商户证书私钥文件路径/apiclient_key.pem"),
+ PlatformCertificateManager = manager
+};
+var client = WechatTenpayGlobalClientBuilder.Create(options).Build();
+```
+
+该扩展客户端在用法上基础客户端完全相同,只需引入相应的命名空间即可。
diff --git a/docs/WechatTenpayV3/Basic_ModelDefinition.md b/docs/WechatTenpayV3/Basic_ModelDefinition.md
index 050f114b..5372626b 100644
--- a/docs/WechatTenpayV3/Basic_ModelDefinition.md
+++ b/docs/WechatTenpayV3/Basic_ModelDefinition.md
@@ -1465,151 +1465,151 @@
- Quick Pay
- - Quick Pay:`CreateHKTransactionMicroPay` / `CreateHKPartnerTransactionMicroPay`
+ - Quick Pay:`CreateTransactionMicroPay` / `CreatePartnerTransactionMicroPay`
- - Query Order:`GetHKTransactionByOutTradeNumber` / `GetHKTransactionById` / `GetHKPartnerTransactionByOutTradeNumber` / `GetHKPartnerTransactionById`
+ - Query Order:`GetTransactionByOutTradeNumber` / `GetTransactionById` / `GetPartnerTransactionByOutTradeNumber` / `GetPartnerTransactionById`
- - Refund Application:`CreateHKRefund` / `CreateHKPartnerRefund`
+ - Refund Application:`CreateRefund` / `CreatePartnerRefund`
- - Query Single Refund:`GetHKRefundByOutRefundNumber` / `GetHKRefundById` / `GetHKPartnerRefundByOutRefundNumber` / `GetHKPartnerRefundById`
+ - Query Single Refund:`GetRefundByOutRefundNumber` / `GetRefundById` / `GetPartnerRefundByOutRefundNumber` / `GetPartnerRefundById`
- - Query All Refunds: `QueryHKRefunds` / `QueryHKPartnerRefunds`
+ - Query All Refunds: `QueryRefunds` / `QueryPartnerRefunds`
- - Downloading Reconciliation:`DownloadHKStatements`
+ - Downloading Reconciliation:`DownloadStatements`
- - Revoke Order:`ReverseHKTransaction` / `ReverseHKPartnerTransaction`
+ - Revoke Order:`ReverseTransaction` / `ReversePartnerTransaction`
- Downloading Platform Certificate:`QueryCertificates`
- - Query Fund Settlement Details:`QueryHKSettlements`
+ - Query Fund Settlement Details:`QuerySettlements`
- Native Payment
- - Order Placement:`CreateHKTransactionMicroPay` / `CreateHKPartnerTransactionMicroPay`
+ - Order Placement:`CreateTransactionMicroPay` / `CreatePartnerTransactionMicroPay`
- - Query Order:`GetHKTransactionByOutTradeNumber` / `GetHKTransactionById` / `GetHKPartnerTransactionByOutTradeNumber` / `GetHKPartnerTransactionById`
+ - Query Order:`GetTransactionByOutTradeNumber` / `GetTransactionById` / `GetPartnerTransactionByOutTradeNumber` / `GetPartnerTransactionById`
- - Refund Application:`CreateHKRefund` / `CreateHKPartnerRefund`
+ - Refund Application:`CreateRefund` / `CreatePartnerRefund`
- - Query Single Refund:`GetHKRefundByOutRefundNumber` / `GetHKRefundById` / `GetHKPartnerRefundByOutRefundNumber` / `GetHKPartnerRefundById`
+ - Query Single Refund:`GetRefundByOutRefundNumber` / `GetRefundById` / `GetPartnerRefundByOutRefundNumber` / `GetPartnerRefundById`
- - Query All Refunds: `QueryHKRefunds` / `QueryHKPartnerRefunds`
+ - Query All Refunds: `QueryRefunds` / `QueryPartnerRefunds`
- - Downloading Reconciliation:`DownloadHKStatements`
+ - Downloading Reconciliation:`DownloadStatements`
- - Close Order:`CloseHKTransaction` / `CloseHKPartnerTransaction`
+ - Close Order:`CloseTransaction` / `ClosePartnerTransaction`
- Downloading Platform Certificate:`QueryCertificates`
- - Query Fund Settlement Details:`QueryHKSettlements`
+ - Query Fund Settlement Details:`QuerySettlements`
- JSAPI Payment
- - Order Placement:`CreateHKTransactionMicroPay` / `CreateHKPartnerTransactionMicroPay`
+ - Order Placement:`CreateTransactionMicroPay` / `CreatePartnerTransactionMicroPay`
- - Query Order:`GetHKTransactionByOutTradeNumber` / `GetHKTransactionById` / `GetHKPartnerTransactionByOutTradeNumber` / `GetHKPartnerTransactionById`
+ - Query Order:`GetTransactionByOutTradeNumber` / `GetTransactionById` / `GetPartnerTransactionByOutTradeNumber` / `GetPartnerTransactionById`
- - Refund Application:`CreateHKRefund` / `CreateHKPartnerRefund`
+ - Refund Application:`CreateRefund` / `CreatePartnerRefund`
- - Query Single Refund:`GetHKRefundByOutRefundNumber` / `GetHKRefundById` / `GetHKPartnerRefundByOutRefundNumber` / `GetHKPartnerRefundById`
+ - Query Single Refund:`GetRefundByOutRefundNumber` / `GetRefundById` / `GetPartnerRefundByOutRefundNumber` / `GetPartnerRefundById`
- - Query All Refunds: `QueryHKRefunds` / `QueryHKPartnerRefunds`
+ - Query All Refunds: `QueryRefunds` / `QueryPartnerRefunds`
- - Downloading Reconciliation:`DownloadHKStatements`
+ - Downloading Reconciliation:`DownloadStatements`
- - Close Order:`CloseHKTransaction` / `CloseHKPartnerTransaction`
+ - Close Order:`CloseTransaction` / `ClosePartnerTransaction`
- Downloading Platform Certificate:`QueryCertificates`
- - Query Fund Settlement Details:`QueryHKSettlements`
+ - Query Fund Settlement Details:`QuerySettlements`
- In-App Payment
- - Order Placement:`CreateHKTransactionMicroPay` / `CreateHKPartnerTransactionMicroPay`
+ - Order Placement:`CreateTransactionMicroPay` / `CreatePartnerTransactionMicroPay`
- - Query Order:`GetHKTransactionByOutTradeNumber` / `GetHKTransactionById` / `GetHKPartnerTransactionByOutTradeNumber` / `GetHKPartnerTransactionById`
+ - Query Order:`GetTransactionByOutTradeNumber` / `GetTransactionById` / `GetPartnerTransactionByOutTradeNumber` / `GetPartnerTransactionById`
- - Refund Application:`CreateHKRefund` / `CreateHKPartnerRefund`
+ - Refund Application:`CreateRefund` / `CreatePartnerRefund`
- - Query Single Refund:`GetHKRefundByOutRefundNumber` / `GetHKRefundById` / `GetHKPartnerRefundByOutRefundNumber` / `GetHKPartnerRefundById`
+ - Query Single Refund:`GetRefundByOutRefundNumber` / `GetRefundById` / `GetPartnerRefundByOutRefundNumber` / `GetPartnerRefundById`
- - Query All Refunds: `QueryHKRefunds` / `QueryHKPartnerRefunds`
+ - Query All Refunds: `QueryRefunds` / `QueryPartnerRefunds`
- - Downloading Reconciliation:`DownloadHKStatements`
+ - Downloading Reconciliation:`DownloadStatements`
- - Close Order:`CloseHKTransaction` / `CloseHKPartnerTransaction`
+ - Close Order:`CloseTransaction` / `ClosePartnerTransaction`
- Downloading Platform Certificate:`QueryCertificates`
- - Query Fund Settlement Details:`QueryHKSettlements`
+ - Query Fund Settlement Details:`QuerySettlements`
- Mini-Program Payment
- - Order Placement:`CreateHKTransactionMicroPay` / `CreateHKPartnerTransactionMicroPay`
+ - Order Placement:`CreateTransactionMicroPay` / `CreatePartnerTransactionMicroPay`
- - Query Order:`GetHKTransactionByOutTradeNumber` / `GetHKTransactionById` / `GetHKPartnerTransactionByOutTradeNumber` / `GetHKPartnerTransactionById`
+ - Query Order:`GetTransactionByOutTradeNumber` / `GetTransactionById` / `GetPartnerTransactionByOutTradeNumber` / `GetPartnerTransactionById`
- - Refund Application:`CreateHKRefund` / `CreateHKPartnerRefund`
+ - Refund Application:`CreateRefund` / `CreatePartnerRefund`
- - Query Single Refund:`GetHKRefundByOutRefundNumber` / `GetHKRefundById` / `GetHKPartnerRefundByOutRefundNumber` / `GetHKPartnerRefundById`
+ - Query Single Refund:`GetRefundByOutRefundNumber` / `GetRefundById` / `GetPartnerRefundByOutRefundNumber` / `GetPartnerRefundById`
- - Query All Refunds: `QueryHKRefunds` / `QueryHKPartnerRefunds`
+ - Query All Refunds: `QueryRefunds` / `QueryPartnerRefunds`
- - Downloading Reconciliation:`DownloadHKStatements`
+ - Downloading Reconciliation:`DownloadStatements`
- - Close Order:`CloseHKTransaction` / `CloseHKPartnerTransaction`
+ - Close Order:`CloseTransaction` / `ClosePartnerTransaction`
- Downloading Platform Certificate:`QueryCertificates`
- - Query Fund Settlement Details:`QueryHKSettlements`
+ - Query Fund Settlement Details:`QuerySettlements`
- H5 Payment
- - Order Placement:`CreateHKTransactionMicroPay` / `CreateHKPartnerTransactionMicroPay`
+ - Order Placement:`CreateTransactionMicroPay` / `CreatePartnerTransactionMicroPay`
- - Query Order:`GetHKTransactionByOutTradeNumber` / `GetHKTransactionById` / `GetHKPartnerTransactionByOutTradeNumber` / `GetHKPartnerTransactionById`
+ - Query Order:`GetTransactionByOutTradeNumber` / `GetTransactionById` / `GetPartnerTransactionByOutTradeNumber` / `GetPartnerTransactionById`
- - Query All Refunds: `QueryHKRefunds` / `QueryHKPartnerRefunds`
+ - Query All Refunds: `QueryRefunds` / `QueryPartnerRefunds`
- - Refund Application:`CreateHKRefund` / `CreateHKPartnerRefund`
+ - Refund Application:`CreateRefund` / `CreatePartnerRefund`
- - Query Single Refund:`GetHKRefundByOutRefundNumber` / `GetHKRefundById` / `GetHKPartnerRefundByOutRefundNumber` / `GetHKPartnerRefundById`
+ - Query Single Refund:`GetRefundByOutRefundNumber` / `GetRefundById` / `GetPartnerRefundByOutRefundNumber` / `GetPartnerRefundById`
- - Downloading Reconciliation:`DownloadHKStatements`
+ - Downloading Reconciliation:`DownloadStatements`
- - Close Order:`CloseHKTransaction` / `CloseHKPartnerTransaction`
+ - Close Order:`CloseTransaction` / `ClosePartnerTransaction`
- Downloading Platform Certificate:`QueryCertificates`
- - Query Fund Settlement Details:`QueryHKSettlements`
+ - Query Fund Settlement Details:`QuerySettlements`
- Auto-Debit Payment
- - Mini Program Signing: `PresignHKPAPayContractEntrustMiniProgram` / `PresignHKPartnerPAPayContractEntrustMiniProgram`
+ - Mini Program Signing: `PresignPAPayContractEntrustMiniProgram` / `PresignPartnerPAPayContractEntrustMiniProgram`
- - H5 Signing: `PresignHKPAPayContractEntrustH5` / `PresignHKPartnerPAPayContractEntrustH5`
+ - H5 Signing: `PresignPAPayContractEntrustH5` / `PresignPartnerPAPayContractEntrustH5`
- - JSAPI Signing: `PresignHKPAPayContractEntrustJsapi` / `PresignHKPartnerPAPayContractEntrustJsapi`
+ - JSAPI Signing: `PresignPAPayContractEntrustJsapi` / `PresignPartnerPAPayContractEntrustJsapi`
- - PC WEB Signing: `PresignHKPAPayContractEntrustJsapi` / `PresignHKPartnerPAPayContractEntrustJsapi`
+ - PC WEB Signing: `PresignPAPayContractEntrustJsapi` / `PresignPartnerPAPayContractEntrustJsapi`
- - APP Signing: `PresignHKPAPayContractEntrustApp` / `PresignHKPartnerPAPayContractEntrustApp`
+ - APP Signing: `PresignPAPayContractEntrustApp` / `PresignPartnerPAPayContractEntrustApp`
- - Querying Signing Status: `GetHKPAPayContractByOutContractCode` / `GetHKPAPayContractByContractId` / `GetHKPartnerPAPayContractByOutContractCode` / `GetHKPartnerPAPayContractByContractId`
+ - Querying Signing Status: `GetPAPayContractByOutContractCode` / `GetPAPayContractByContractId` / `GetPartnerPAPayContractByOutContractCode` / `GetPartnerPAPayContractByContractId`
- - Applying for Termination: `TerminateHKPAPayContract` / `TerminateHKPartnerPAPayContract`
+ - Applying for Termination: `TerminatePAPayContract` / `TerminatePartnerPAPayContract`
- - Deduction: `CreateHKPAPayTransaction` / `CreateHKPartnerPAPayTransaction`
+ - Deduction: `CreatePAPayTransaction` / `CreatePartnerPAPayTransaction`
- - Order Query: `GetHKPAPayTransactionByOutTradeNumber` / `GetHKPAPayTransactionById` / `GetHKPartnerPAPayTransactionByOutTradeNumber` / `GetHKPartnerPAPayTransactionById`
+ - Order Query: `GetPAPayTransactionByOutTradeNumber` / `GetPAPayTransactionById` / `GetPartnerPAPayTransactionByOutTradeNumber` / `GetPartnerPAPayTransactionById`
- - Order Reversing: `ReverseHKPAPayTransaction` / `ReverseHKPartnerPAPayTransaction`
+ - Order Reversing: `ReversePAPayTransaction` / `ReversePartnerPAPayTransaction`
- - Submit Refund: `CreateHKRefund` / `CreateHKPartnerRefund`
+ - Submit Refund: `CreateRefund` / `CreatePartnerRefund`
- - Query Single Refund: `GetHKRefundByOutRefundNumber` / `GetHKRefundById` / `GetHKPartnerRefundByOutRefundNumber` / `GetHKPartnerRefundById`
+ - Query Single Refund: `GetRefundByOutRefundNumber` / `GetRefundById` / `GetPartnerRefundByOutRefundNumber` / `GetPartnerRefundById`
- - Query All Refunds: `QueryHKRefunds` / `QueryHKPartnerRefunds`
+ - Query All Refunds: `QueryRefunds` / `QueryPartnerRefunds`
- Other
@@ -1623,6 +1623,22 @@
- Upload Image:`UploadMerchantMediaImage`
+ - H5 Payment Authorization Application
+
+ - Create Authorization Application:`CreateMerchantH5PermissionApplication`
+
+ - Query Authorization Application:`GetMerchantH5PermissionApplicationByApplymentId`
+
+ - Modify Authorization Application:`UpdateMerchantH5PermissionApplication`
+
+ - Create Domain Modification Application:`UpdateMerchantH5PermissionDomainApplication`
+
+ - Query Domain Modification Application:`GetMerchantH5PermissionDomainApplicationByApplymentId`
+
+ - Modify Domain Modification Application:`UpdateMerchantH5PermissionDomainAApplication`
+
+ - Query Authorization Status:`GetMerchantH5PermissionBySubMerchantId`
+
- Customs Declaration
- Customs Declaration:`CreateCustomsOrder`
diff --git a/docs/WechatTenpayV3/README.md b/docs/WechatTenpayV3/README.md
index 28fba214..b1463f2a 100644
--- a/docs/WechatTenpayV3/README.md
+++ b/docs/WechatTenpayV3/README.md
@@ -110,6 +110,8 @@ else
- [如何接入国密算法?](./Basic_SMAlgorithm.md)
+- [如何接入境外支付 API?](./Basic_GlobalAPI.md)
+
---
## 高级技巧
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Extensions/WechatTenpayGlobalClientExecuteMerchantH5PermissionExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Extensions/WechatTenpayGlobalClientExecuteMerchantH5PermissionExtensions.cs
new file mode 100644
index 00000000..0dda55a9
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Extensions/WechatTenpayGlobalClientExecuteMerchantH5PermissionExtensions.cs
@@ -0,0 +1,165 @@
+using System;
+using System.Net.Http;
+using System.Threading;
+using System.Threading.Tasks;
+using Flurl.Http;
+
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
+{
+ public static class WechatTenpayGlobalClientExecuteMerchantH5PermissionExtensions
+ {
+ ///
+ /// 异步调用 [POST] /merchant/h5/permission/applications 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCreateMerchantH5PermissionApplicationAsync(this WechatTenpayGlobalClient client, Models.CreateMerchantH5PermissionApplicationRequest 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, "merchant", "h5", "permission", "applications");
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+
+ ///
+ /// 异步调用 [GET] /merchant/h5/permission/applications/{applyment_id} 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteGetMerchantH5PermissionApplicationByApplymentIdAsync(this WechatTenpayGlobalClient client, Models.GetMerchantH5PermissionApplicationByApplymentIdRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateFlurlRequest(request, HttpMethod.Get, "merchant", "h5", "permission", "applications", request.ApplymentId);
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+
+ ///
+ /// 异步调用 [PATCH] /merchant/h5/permission/applications/{applyment_id} 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteUpdateMerchantH5PermissionApplicationAsync(this WechatTenpayGlobalClient client, Models.UpdateMerchantH5PermissionApplicationRequest 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, new HttpMethod("PATCH"), "merchant", "h5", "permission", "applications", request.ApplymentId);
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+
+ ///
+ /// 异步调用 [POST] /merchant/h5/permission/domain/applications 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteCreateMerchantH5PermissionDomainApplicationAsync(this WechatTenpayGlobalClient client, Models.CreateMerchantH5PermissionDomainApplicationRequest 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, "merchant", "h5", "permission", "domain", "applications");
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+
+ ///
+ /// 异步调用 [GET] /merchant/h5/permission/domain/applications/{applyment_id} 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteGetMerchantH5PermissionDomainApplicationByApplymentIdAsync(this WechatTenpayGlobalClient client, Models.GetMerchantH5PermissionDomainApplicationByApplymentIdRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateFlurlRequest(request, HttpMethod.Get, "merchant", "h5", "permission", "domain", "applications", request.ApplymentId);
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+
+ ///
+ /// 异步调用 [PATCH] /merchant/h5/permission/domain/applications/{applyment_id} 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteUpdateMerchantH5PermissionDomainApplicationAsync(this WechatTenpayGlobalClient client, Models.UpdateMerchantH5PermissionDomainApplicationRequest 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, new HttpMethod("PATCH"), "merchant", "h5", "permission", "domain", "applications", request.ApplymentId);
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+
+ ///
+ /// 异步调用 [GET] /merchant/h5/permission/{sub_mchid} 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteGetMerchantH5PermissionBySubMerchantIdAsync(this WechatTenpayGlobalClient client, Models.GetMerchantH5PermissionBySubMerchantIdRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ IFlurlRequest flurlReq = client
+ .CreateFlurlRequest(request, HttpMethod.Get, "merchant", "h5", "permissions", request.SubMerchantId);
+
+ return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Extensions/WechatTenpayGlobalClientExecuteMerchantsExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Extensions/WechatTenpayGlobalClientExecuteMerchantsExtensions.cs
index 89eaa64b..e1aa4265 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Extensions/WechatTenpayGlobalClientExecuteMerchantsExtensions.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Extensions/WechatTenpayGlobalClientExecuteMerchantsExtensions.cs
@@ -3,6 +3,7 @@ using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
using Flurl.Http;
+using SKIT.FlurlHttpClient.Primitives;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
{
@@ -85,5 +86,37 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global
return await client.SendFlurlRequestAsJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
+
+ ///
+ /// 异步调用 [POST] /merchant/media/upload 接口。
+ ///
+ /// REF:
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static async Task ExecuteUploadMerchantMediaImageAsync(this WechatTenpayClient client, Models.UploadMerchantMediaImageRequest request, CancellationToken cancellationToken = default)
+ {
+ if (client is null) throw new ArgumentNullException(nameof(client));
+ if (request is null) throw new ArgumentNullException(nameof(request));
+
+ if (request.FileName is null)
+ request.FileName = Guid.NewGuid().ToString("N").ToLower() + ".jpg";
+
+ if (request.FileHash is null)
+ request.FileHash = EncodedString.ToHexString(Utilities.SHA256Utility.Hash(request.FileBytes)).Value!.ToLower();
+
+ if (request.FileContentType is null)
+ request.FileContentType = Utilities.FileNameToContentTypeMapper.GetContentTypeForImage(request.FileName!) ?? "image/jpeg";
+
+ IFlurlRequest flurlReq = client
+ .CreateFlurlRequest(request, HttpMethod.Post, "merchant", "media", "upload");
+
+ using var httpContent = Utilities.FileHttpContentBuilder.Build(fileName: request.FileName, fileBytes: request.FileBytes, fileContentType: request.FileContentType, fileMetaJson: client.JsonSerializer.Serialize(request));
+ return await client.SendFlurlRequestAsync(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken).ConfigureAwait(false);
+ }
}
}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/CreateMerchantH5PermissionApplicationRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/CreateMerchantH5PermissionApplicationRequest.cs
new file mode 100644
index 00000000..f3be5aab
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/CreateMerchantH5PermissionApplicationRequest.cs
@@ -0,0 +1,87 @@
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global.Models
+{
+ ///
+ /// 表示 [POST] /merchant/h5/permission/applications 接口的请求。
+ ///
+ public class CreateMerchantH5PermissionApplicationRequest : WechatTenpayGlobalRequest
+ {
+ ///
+ /// 获取或设置子商户号。
+ ///
+ [Newtonsoft.Json.JsonProperty("sub_mchid")]
+ [System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
+ public string SubMerchantId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置申请类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("applyment_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("applyment_type")]
+ public string? ApplymentType { get; set; }
+
+ ///
+ /// 获取或设置业务描述。
+ ///
+ [Newtonsoft.Json.JsonProperty("business_description")]
+ [System.Text.Json.Serialization.JsonPropertyName("business_description")]
+ public string? BusinessDescription { get; set; }
+
+ ///
+ /// 获取或设置交易限制类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("transaction_limit_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("transaction_limit_type")]
+ public string? TransactionLimitType { get; set; }
+
+ ///
+ /// 获取或设置域名列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("domains")]
+ [System.Text.Json.Serialization.JsonPropertyName("domains")]
+ public IList DomainList { get; set; } = new List();
+
+ ///
+ /// 获取或设置公司注册文件编号。
+ ///
+ [Newtonsoft.Json.JsonProperty("company_register_cert")]
+ [System.Text.Json.Serialization.JsonPropertyName("company_register_cert")]
+ public string? CompanyRegisterCertificateNumber { get; set; }
+
+ ///
+ /// 获取或设置网站业务页面截图 MediaId 列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("website_business_page_pics")]
+ [System.Text.Json.Serialization.JsonPropertyName("website_business_page_pics")]
+ public IList? WebsiteBusinessPagePictureMediaIdList { get; set; }
+
+ ///
+ /// 获取或设置网站首页截图 MediaId 列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("website_homepage_pics")]
+ [System.Text.Json.Serialization.JsonPropertyName("website_homepage_pics")]
+ public IList? WebsiteHomePagePictureMediaIdList { get; set; }
+
+ ///
+ /// 获取或设置网站状态。
+ ///
+ [Newtonsoft.Json.JsonProperty("website_state")]
+ [System.Text.Json.Serialization.JsonPropertyName("website_state")]
+ public string? WebsiteState { get; set; }
+
+ ///
+ /// 获取或设置网站 URL。
+ ///
+ [Newtonsoft.Json.JsonProperty("website_url")]
+ [System.Text.Json.Serialization.JsonPropertyName("website_url")]
+ public string? WebsiteUrl { get; set; }
+
+ ///
+ /// 获取或设置回调通知地址。
+ ///
+ [Newtonsoft.Json.JsonProperty("notify_url")]
+ [System.Text.Json.Serialization.JsonPropertyName("notify_url")]
+ public string? NotifyUrl { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/CreateMerchantH5PermissionApplicationResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/CreateMerchantH5PermissionApplicationResponse.cs
new file mode 100644
index 00000000..730c9c84
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/CreateMerchantH5PermissionApplicationResponse.cs
@@ -0,0 +1,9 @@
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global.Models
+{
+ ///
+ /// 表示 [POST] /merchant/h5/permission/applications 接口的响应。
+ ///
+ public class CreateMerchantH5PermissionApplicationResponse : GetMerchantH5PermissionApplicationByApplymentIdResponse
+ {
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/CreateMerchantH5PermissionDomainApplicationRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/CreateMerchantH5PermissionDomainApplicationRequest.cs
new file mode 100644
index 00000000..fc1f8143
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/CreateMerchantH5PermissionDomainApplicationRequest.cs
@@ -0,0 +1,66 @@
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global.Models
+{
+ ///
+ /// 表示 [POST] /merchant/h5/permission/domain/applications 接口的请求。
+ ///
+ public class CreateMerchantH5PermissionDomainApplicationRequest : WechatTenpayGlobalRequest
+ {
+ ///
+ /// 获取或设置子商户号。
+ ///
+ [Newtonsoft.Json.JsonProperty("sub_mchid")]
+ [System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
+ public string SubMerchantId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置商户申请单号。
+ ///
+ [Newtonsoft.Json.JsonProperty("out_applyment_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("out_applyment_id")]
+ public string OutApplymentId { get; set; } = string.Empty;
+
+ ///
+ /// 获取或设置域名列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("domains")]
+ [System.Text.Json.Serialization.JsonPropertyName("domains")]
+ public IList DomainList { get; set; } = new List();
+
+ ///
+ /// 获取或设置网站业务页面截图 MediaId 列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("website_business_page_pics")]
+ [System.Text.Json.Serialization.JsonPropertyName("website_business_page_pics")]
+ public IList? WebsiteBusinessPagePictureMediaIdList { get; set; }
+
+ ///
+ /// 获取或设置网站首页截图 MediaId 列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("website_homepage_pics")]
+ [System.Text.Json.Serialization.JsonPropertyName("website_homepage_pics")]
+ public IList? WebsiteHomePagePictureMediaIdList { get; set; }
+
+ ///
+ /// 获取或设置网站状态。
+ ///
+ [Newtonsoft.Json.JsonProperty("website_state")]
+ [System.Text.Json.Serialization.JsonPropertyName("website_state")]
+ public string? WebsiteState { get; set; }
+
+ ///
+ /// 获取或设置网站 URL。
+ ///
+ [Newtonsoft.Json.JsonProperty("website_url")]
+ [System.Text.Json.Serialization.JsonPropertyName("website_url")]
+ public string? WebsiteUrl { get; set; }
+
+ ///
+ /// 获取或设置回调通知地址。
+ ///
+ [Newtonsoft.Json.JsonProperty("notify_url")]
+ [System.Text.Json.Serialization.JsonPropertyName("notify_url")]
+ public string? NotifyUrl { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/CreateMerchantH5PermissionDomainApplicationResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/CreateMerchantH5PermissionDomainApplicationResponse.cs
new file mode 100644
index 00000000..b37db579
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/CreateMerchantH5PermissionDomainApplicationResponse.cs
@@ -0,0 +1,9 @@
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global.Models
+{
+ ///
+ /// 表示 [POST] /merchant/h5/permission/domain/applications 接口的响应。
+ ///
+ public class CreateMerchantH5PermissionDomainApplicationResponse : GetMerchantH5PermissionDomainApplicationByApplymentIdResponse
+ {
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/GetMerchantH5PermissionApplicationByApplymentIdRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/GetMerchantH5PermissionApplicationByApplymentIdRequest.cs
new file mode 100644
index 00000000..2e80f8b9
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/GetMerchantH5PermissionApplicationByApplymentIdRequest.cs
@@ -0,0 +1,15 @@
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global.Models
+{
+ ///
+ /// 表示 [GET] /merchant/h5/permission/applications/{applyment_id} 接口的请求。
+ ///
+ public class GetMerchantH5PermissionApplicationByApplymentIdRequest : WechatTenpayGlobalRequest
+ {
+ ///
+ /// 获取或设置申请单 ID。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public long ApplymentId { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/GetMerchantH5PermissionApplicationByApplymentIdResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/GetMerchantH5PermissionApplicationByApplymentIdResponse.cs
new file mode 100644
index 00000000..d224b377
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/GetMerchantH5PermissionApplicationByApplymentIdResponse.cs
@@ -0,0 +1,107 @@
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global.Models
+{
+ ///
+ /// 表示 [GET] /merchant/h5/permission/applications/{applyment_id} 接口的响应。
+ ///
+ public class GetMerchantH5PermissionApplicationByApplymentIdResponse : WechatTenpayGlobalResponse
+ {
+ ///
+ /// 获取或设置子商户号。
+ ///
+ [Newtonsoft.Json.JsonProperty("sub_mchid")]
+ [System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
+ public string SubMerchantId { get; set; } = default!;
+
+ ///
+ /// 获取或设置申请单 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("applyment_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("applyment_id")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long ApplymentId { get; set; }
+
+ ///
+ /// 获取或设置申请类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("applyment_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("applyment_type")]
+ public string ApplymentType { get; set; } = default!;
+
+ ///
+ /// 获取或设置申请状态。
+ ///
+ [Newtonsoft.Json.JsonProperty("applyment_state")]
+ [System.Text.Json.Serialization.JsonPropertyName("applyment_state")]
+ public string ApplymentState { get; set; } = default!;
+
+ ///
+ /// 获取或设置业务描述。
+ ///
+ [Newtonsoft.Json.JsonProperty("business_description")]
+ [System.Text.Json.Serialization.JsonPropertyName("business_description")]
+ public string? BusinessDescription { get; set; }
+
+ ///
+ /// 获取或设置交易限制类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("transaction_limit_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("transaction_limit_type")]
+ public string TransactionLimitType { get; set; } = default!;
+
+ ///
+ /// 获取或设置域名列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("domains")]
+ [System.Text.Json.Serialization.JsonPropertyName("domains")]
+ public string[] DomainList { get; set; } = default!;
+
+ ///
+ /// 获取或设置公司注册文件编号。
+ ///
+ [Newtonsoft.Json.JsonProperty("company_register_cert")]
+ [System.Text.Json.Serialization.JsonPropertyName("company_register_cert")]
+ public string? CompanyRegisterCertificateNumber { get; set; }
+
+ ///
+ /// 获取或设置网站业务页面截图 MediaId 列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("website_business_page_pics")]
+ [System.Text.Json.Serialization.JsonPropertyName("website_business_page_pics")]
+ public string[]? WebsiteBusinessPagePictureMediaIdList { get; set; }
+
+ ///
+ /// 获取或设置网站首页截图 MediaId 列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("website_homepage_pics")]
+ [System.Text.Json.Serialization.JsonPropertyName("website_homepage_pics")]
+ public string[]? WebsiteHomePagePictureMediaIdList { get; set; }
+
+ ///
+ /// 获取或设置网站状态。
+ ///
+ [Newtonsoft.Json.JsonProperty("website_state")]
+ [System.Text.Json.Serialization.JsonPropertyName("website_state")]
+ public string WebsiteState { get; set; } = default!;
+
+ ///
+ /// 获取或设置网站 URL。
+ ///
+ [Newtonsoft.Json.JsonProperty("website_url")]
+ [System.Text.Json.Serialization.JsonPropertyName("website_url")]
+ public string WebsiteUrl { get; set; } = default!;
+
+ ///
+ /// 获取或设置回调通知地址。
+ ///
+ [Newtonsoft.Json.JsonProperty("notify_url")]
+ [System.Text.Json.Serialization.JsonPropertyName("notify_url")]
+ public string? NotifyUrl { get; set; }
+
+ ///
+ /// 获取或设置审核拒绝原因。
+ ///
+ [Newtonsoft.Json.JsonProperty("audit_reject_detail")]
+ [System.Text.Json.Serialization.JsonPropertyName("audit_reject_detail")]
+ public string? AuditRejectReason { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/GetMerchantH5PermissionBySubMerchantIdRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/GetMerchantH5PermissionBySubMerchantIdRequest.cs
new file mode 100644
index 00000000..15f18749
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/GetMerchantH5PermissionBySubMerchantIdRequest.cs
@@ -0,0 +1,15 @@
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global.Models
+{
+ ///
+ /// 表示 [GET] /merchant/h5/permission/{sub_mchid} 接口的请求。
+ ///
+ public class GetMerchantH5PermissionBySubMerchantIdRequest : WechatTenpayGlobalRequest
+ {
+ ///
+ /// 获取或设置子商户号。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public string SubMerchantId { get; set; } = string.Empty;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/GetMerchantH5PermissionBySubMerchantIdResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/GetMerchantH5PermissionBySubMerchantIdResponse.cs
new file mode 100644
index 00000000..5a04bb2d
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/GetMerchantH5PermissionBySubMerchantIdResponse.cs
@@ -0,0 +1,22 @@
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global.Models
+{
+ ///
+ /// 表示 [GET] /merchant/h5/permission/{sub_mchid} 接口的响应。
+ ///
+ public class GetMerchantH5PermissionBySubMerchantIdResponse : WechatTenpayGlobalResponse
+ {
+ ///
+ /// 获取或设置子商户号。
+ ///
+ [Newtonsoft.Json.JsonProperty("sub_mchid")]
+ [System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
+ public string SubMerchantId { get; set; } = default!;
+
+ ///
+ /// 获取或设置认证状态。
+ ///
+ [Newtonsoft.Json.JsonProperty("authorization_state")]
+ [System.Text.Json.Serialization.JsonPropertyName("authorization_state")]
+ public string AuthorizationState { get; set; } = default!;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/GetMerchantH5PermissionDomainApplicationByApplymentIdRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/GetMerchantH5PermissionDomainApplicationByApplymentIdRequest.cs
new file mode 100644
index 00000000..7b313ea1
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/GetMerchantH5PermissionDomainApplicationByApplymentIdRequest.cs
@@ -0,0 +1,15 @@
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global.Models
+{
+ ///
+ /// 表示 [GET] /merchant/h5/permission/domain/applications/{applyment_id} 接口的请求。
+ ///
+ public class GetMerchantH5PermissionDomainApplicationByApplymentIdRequest : WechatTenpayGlobalRequest
+ {
+ ///
+ /// 获取或设置申请单 ID。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public long ApplymentId { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/GetMerchantH5PermissionDomainApplicationByApplymentIdResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/GetMerchantH5PermissionDomainApplicationByApplymentIdResponse.cs
new file mode 100644
index 00000000..aab63386
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/GetMerchantH5PermissionDomainApplicationByApplymentIdResponse.cs
@@ -0,0 +1,86 @@
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global.Models
+{
+ ///
+ /// 表示 [GET] /merchant/h5/permission/domain/applications/{applyment_id} 接口的响应。
+ ///
+ public class GetMerchantH5PermissionDomainApplicationByApplymentIdResponse : WechatTenpayGlobalResponse
+ {
+ ///
+ /// 获取或设置子商户号。
+ ///
+ [Newtonsoft.Json.JsonProperty("sub_mchid")]
+ [System.Text.Json.Serialization.JsonPropertyName("sub_mchid")]
+ public string SubMerchantId { get; set; } = default!;
+
+ ///
+ /// 获取或设置商户申请单号。
+ ///
+ [Newtonsoft.Json.JsonProperty("out_applyment_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("out_applyment_id")]
+ public string OutApplymentId { get; set; } = default!;
+
+ ///
+ /// 获取或设置申请单 ID。
+ ///
+ [Newtonsoft.Json.JsonProperty("applyment_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("applyment_id")]
+ [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
+ public long ApplymentId { get; set; }
+
+ ///
+ /// 获取或设置申请状态。
+ ///
+ [Newtonsoft.Json.JsonProperty("applyment_state")]
+ [System.Text.Json.Serialization.JsonPropertyName("applyment_state")]
+ public string ApplymentState { get; set; } = default!;
+
+ ///
+ /// 获取或设置域名列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("domains")]
+ [System.Text.Json.Serialization.JsonPropertyName("domains")]
+ public string[] DomainList { get; set; } = default!;
+
+ ///
+ /// 获取或设置网站业务页面截图 MediaId 列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("website_business_page_pics")]
+ [System.Text.Json.Serialization.JsonPropertyName("website_business_page_pics")]
+ public string[]? WebsiteBusinessPagePictureMediaIdList { get; set; }
+
+ ///
+ /// 获取或设置网站首页截图 MediaId 列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("website_homepage_pics")]
+ [System.Text.Json.Serialization.JsonPropertyName("website_homepage_pics")]
+ public string[]? WebsiteHomePagePictureMediaIdList { get; set; }
+
+ ///
+ /// 获取或设置网站状态。
+ ///
+ [Newtonsoft.Json.JsonProperty("website_state")]
+ [System.Text.Json.Serialization.JsonPropertyName("website_state")]
+ public string WebsiteState { get; set; } = default!;
+
+ ///
+ /// 获取或设置网站 URL。
+ ///
+ [Newtonsoft.Json.JsonProperty("website_url")]
+ [System.Text.Json.Serialization.JsonPropertyName("website_url")]
+ public string WebsiteUrl { get; set; } = default!;
+
+ ///
+ /// 获取或设置回调通知地址。
+ ///
+ [Newtonsoft.Json.JsonProperty("notify_url")]
+ [System.Text.Json.Serialization.JsonPropertyName("notify_url")]
+ public string? NotifyUrl { get; set; }
+
+ ///
+ /// 获取或设置审核拒绝原因。
+ ///
+ [Newtonsoft.Json.JsonProperty("audit_reject_detail")]
+ [System.Text.Json.Serialization.JsonPropertyName("audit_reject_detail")]
+ public string? AuditRejectReason { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/UpdateMerchantH5PermissionApplicationRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/UpdateMerchantH5PermissionApplicationRequest.cs
new file mode 100644
index 00000000..ac8d2132
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/UpdateMerchantH5PermissionApplicationRequest.cs
@@ -0,0 +1,80 @@
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global.Models
+{
+ ///
+ /// 表示 [PATCH] /merchant/h5/permission/applications/{applyment_id} 接口的请求。
+ ///
+ public class UpdateMerchantH5PermissionApplicationRequest : WechatTenpayGlobalRequest
+ {
+ ///
+ /// 获取或设置申请单 ID。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public long ApplymentId { get; set; }
+
+ ///
+ /// 获取或设置申请类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("applyment_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("applyment_type")]
+ public string? ApplymentType { get; set; }
+
+ ///
+ /// 获取或设置业务描述。
+ ///
+ [Newtonsoft.Json.JsonProperty("business_description")]
+ [System.Text.Json.Serialization.JsonPropertyName("business_description")]
+ public string? BusinessDescription { get; set; }
+
+ ///
+ /// 获取或设置交易限制类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("transaction_limit_type")]
+ [System.Text.Json.Serialization.JsonPropertyName("transaction_limit_type")]
+ public string? TransactionLimitType { get; set; }
+
+ ///
+ /// 获取或设置域名列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("domains")]
+ [System.Text.Json.Serialization.JsonPropertyName("domains")]
+ public IList DomainList { get; set; } = new List();
+
+ ///
+ /// 获取或设置公司注册文件编号。
+ ///
+ [Newtonsoft.Json.JsonProperty("company_register_cert")]
+ [System.Text.Json.Serialization.JsonPropertyName("company_register_cert")]
+ public string? CompanyRegisterCertificateNumber { get; set; }
+
+ ///
+ /// 获取或设置网站业务页面截图 MediaId 列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("website_business_page_pics")]
+ [System.Text.Json.Serialization.JsonPropertyName("website_business_page_pics")]
+ public IList? WebsiteBusinessPagePictureMediaIdList { get; set; }
+
+ ///
+ /// 获取或设置网站首页截图 MediaId 列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("website_homepage_pics")]
+ [System.Text.Json.Serialization.JsonPropertyName("website_homepage_pics")]
+ public IList? WebsiteHomePagePictureMediaIdList { get; set; }
+
+ ///
+ /// 获取或设置网站状态。
+ ///
+ [Newtonsoft.Json.JsonProperty("website_state")]
+ [System.Text.Json.Serialization.JsonPropertyName("website_state")]
+ public string? WebsiteState { get; set; }
+
+ ///
+ /// 获取或设置网站 URL。
+ ///
+ [Newtonsoft.Json.JsonProperty("website_url")]
+ [System.Text.Json.Serialization.JsonPropertyName("website_url")]
+ public string? WebsiteUrl { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/UpdateMerchantH5PermissionApplicationResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/UpdateMerchantH5PermissionApplicationResponse.cs
new file mode 100644
index 00000000..2b7e9ce2
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/UpdateMerchantH5PermissionApplicationResponse.cs
@@ -0,0 +1,15 @@
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global.Models
+{
+ ///
+ /// 表示 [PATCH] /merchant/h5/permission/applications/{applyment_id} 接口的响应。
+ ///
+ public class UpdateMerchantH5PermissionApplicationResponse : GetMerchantH5PermissionApplicationByApplymentIdResponse
+ {
+ ///
+ /// 获取或设置申请单 ID。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public string ApplymentId { get; set; } = string.Empty;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/UpdateMerchantH5PermissionDomainApplicationRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/UpdateMerchantH5PermissionDomainApplicationRequest.cs
new file mode 100644
index 00000000..95da2a06
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/UpdateMerchantH5PermissionDomainApplicationRequest.cs
@@ -0,0 +1,52 @@
+using System.Collections.Generic;
+
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global.Models
+{
+ ///
+ /// 表示 [PATCH] /merchant/h5/permission/domain/applications/{applyment_id} 接口的请求。
+ ///
+ public class UpdateMerchantH5PermissionDomainApplicationRequest : WechatTenpayGlobalRequest
+ {
+ ///
+ /// 获取或设置申请单 ID。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public long ApplymentId { get; set; }
+
+ ///
+ /// 获取或设置域名列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("domains")]
+ [System.Text.Json.Serialization.JsonPropertyName("domains")]
+ public IList DomainList { get; set; } = new List();
+
+ ///
+ /// 获取或设置网站业务页面截图 MediaId 列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("website_business_page_pics")]
+ [System.Text.Json.Serialization.JsonPropertyName("website_business_page_pics")]
+ public IList? WebsiteBusinessPagePictureMediaIdList { get; set; }
+
+ ///
+ /// 获取或设置网站首页截图 MediaId 列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("website_homepage_pics")]
+ [System.Text.Json.Serialization.JsonPropertyName("website_homepage_pics")]
+ public IList? WebsiteHomePagePictureMediaIdList { get; set; }
+
+ ///
+ /// 获取或设置网站状态。
+ ///
+ [Newtonsoft.Json.JsonProperty("website_state")]
+ [System.Text.Json.Serialization.JsonPropertyName("website_state")]
+ public string? WebsiteState { get; set; }
+
+ ///
+ /// 获取或设置网站 URL。
+ ///
+ [Newtonsoft.Json.JsonProperty("website_url")]
+ [System.Text.Json.Serialization.JsonPropertyName("website_url")]
+ public string? WebsiteUrl { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/UpdateMerchantH5PermissionDomainApplicationResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/UpdateMerchantH5PermissionDomainApplicationResponse.cs
new file mode 100644
index 00000000..7be5483d
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/UpdateMerchantH5PermissionDomainApplicationResponse.cs
@@ -0,0 +1,15 @@
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global.Models
+{
+ ///
+ /// 表示 [PATCH] /merchant/h5/permission/domain/applications/{applyment_id} 接口的响应。
+ ///
+ public class UpdateMerchantH5PermissionDomainApplicationResponse : GetMerchantH5PermissionDomainApplicationByApplymentIdResponse
+ {
+ ///
+ /// 获取或设置申请单 ID。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public string ApplymentId { get; set; } = string.Empty;
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/Merchants/UploadMerchantMediaImageRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/Merchants/UploadMerchantMediaImageRequest.cs
new file mode 100644
index 00000000..348b8d3a
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/Merchants/UploadMerchantMediaImageRequest.cs
@@ -0,0 +1,38 @@
+using System;
+
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global.Models
+{
+ ///
+ /// 表示 [POST] /merchant/media/upload 接口的请求。
+ ///
+ public class UploadMerchantMediaImageRequest : WechatTenpayRequest
+ {
+ ///
+ /// 获取或设置图片文件字节数组。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public byte[] FileBytes { get; set; } = Array.Empty();
+
+ ///
+ /// 获取或设置图片文件名。如果不指定将由系统自动生成。
+ ///
+ [Newtonsoft.Json.JsonProperty("filename")]
+ [System.Text.Json.Serialization.JsonPropertyName("filename")]
+ public string? FileName { get; set; }
+
+ ///
+ /// 获取或设置图片文件摘要。如果不指定将由系统自动生成。
+ ///
+ [Newtonsoft.Json.JsonProperty("sha256")]
+ [System.Text.Json.Serialization.JsonPropertyName("sha256")]
+ public string? FileHash { get; set; }
+
+ ///
+ /// 获取或设置图片文件 Conent-Type。如果不指定将由系统自动生成。
+ ///
+ [Newtonsoft.Json.JsonIgnore]
+ [System.Text.Json.Serialization.JsonIgnore]
+ public string? FileContentType { get; set; }
+ }
+}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/Merchants/UploadMerchantMediaImageResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/Merchants/UploadMerchantMediaImageResponse.cs
new file mode 100644
index 00000000..f79ada98
--- /dev/null
+++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/Merchants/UploadMerchantMediaImageResponse.cs
@@ -0,0 +1,15 @@
+namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.ExtendedSDK.Global.Models
+{
+ ///
+ /// 表示 [POST] /merchant/media/upload 接口的响应。
+ ///
+ public class UploadMerchantMediaImageResponse : WechatTenpayResponse
+ {
+ ///
+ /// 获取或设置媒体文件标识。
+ ///
+ [Newtonsoft.Json.JsonProperty("media_id")]
+ [System.Text.Json.Serialization.JsonPropertyName("media_id")]
+ public string MediaId { get; set; } = default!;
+ }
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/CreateMerchantH5PermissionApplicationRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/CreateMerchantH5PermissionApplicationRequest.json
new file mode 100644
index 00000000..c10b77ee
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/CreateMerchantH5PermissionApplicationRequest.json
@@ -0,0 +1,12 @@
+{
+ "applyment_type": "APPLY_FOR_PAYMENT_AUTHORITY",
+ "company_register_cert": "6uqyGjvHzOhsLleGFQVRF",
+ "domains": [ "qq.com" ],
+ "notify_url": "https://pay.weixin.qq.com/wxpay/pay.action",
+ "sub_mchid": "2491935631",
+ "transaction_limit_type": "UN_LAUNCHED_WEBSITE_LIMIT",
+ "website_business_page_pics": [ "6uqyGjvHzOhsLleGFQVRF" ],
+ "website_homepage_pics": [ "6uqyGjvHzOhsLleGFQVRF" ],
+ "website_state": "HAS_LAUNCHED",
+ "website_url": "https://qq.com"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/CreateMerchantH5PermissionApplicationResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/CreateMerchantH5PermissionApplicationResponse.json
new file mode 100644
index 00000000..cd31054b
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/CreateMerchantH5PermissionApplicationResponse.json
@@ -0,0 +1,16 @@
+{
+ "applyment_id": 100000,
+ "applyment_state": "PENDING",
+ "applyment_type": "APPLY_FOR_PAYMENT_AUTHORITY",
+ "audit_reject_detail": "The merchant's certificate does not meet requirements.",
+ "business_description": "Founded in November 1998, Tencent is an Internet-based platform company that uses technology to enrich the lives of Internet users and assist enterprises with digital upgrade.",
+ "company_register_cert": "6uqyGjvHzOhsLleGFQVRF",
+ "domains": [ "qq.com" ],
+ "notify_url": "https://pay.weixin.qq.com/wxpay/pay.action",
+ "sub_mchid": "2491935631",
+ "transaction_limit_type": "UN_LAUNCHED_WEBSITE_LIMIT",
+ "website_business_page_pics": [ "6uqyGjvHzOhsLleGFQVRF" ],
+ "website_homepage_pics": [ "6uqyGjvHzOhsLleGFQVRF" ],
+ "website_state": "HAS_LAUNCHED",
+ "website_url": "https://qq.com"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/CreateMerchantH5PermissionDomainApplicationRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/CreateMerchantH5PermissionDomainApplicationRequest.json
new file mode 100644
index 00000000..ada3bc85
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/CreateMerchantH5PermissionDomainApplicationRequest.json
@@ -0,0 +1,10 @@
+{
+ "domains": [ "qq.com" ],
+ "notify_url": "https://pay.weixin.qq.com/wxpay/pay.action",
+ "sub_mchid": "2491935631",
+ "website_business_page_pics": [ "6uqyGjvHzOhsLleGFQVRF" ],
+ "website_homepage_pics": [ "6uqyGjvHzOhsLleGFQVRF" ],
+ "website_state": "HAS_LAUNCHED",
+ "website_url": "https://qq.com",
+ "out_applyment_id": "123456"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/CreateMerchantH5PermissionDomainApplicationResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/CreateMerchantH5PermissionDomainApplicationResponse.json
new file mode 100644
index 00000000..e2ec5bfd
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/CreateMerchantH5PermissionDomainApplicationResponse.json
@@ -0,0 +1,13 @@
+{
+ "applyment_id": 1000000,
+ "applyment_state": "PENDING",
+ "audit_reject_detail": "Illegal content of website homepage screenshot",
+ "domains": [ "qq.com" ],
+ "notify_url": "https://pay.weixin.qq.com/wxpay/pay.action",
+ "sub_mchid": "2491935631",
+ "website_url": "https://qq.com",
+ "website_business_page_pics": [ "6uqyGjvHzOhsLleGFQVRF" ],
+ "website_homepage_pics": [ "6uqyGjvHzOhsLleGFQVRF" ],
+ "out_applyment_id": "123456",
+ "website_state": "HAS_LAUNCHED"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/GetMerchantH5PermissionApplicationByApplymentIdResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/GetMerchantH5PermissionApplicationByApplymentIdResponse.json
new file mode 100644
index 00000000..c82a934a
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/GetMerchantH5PermissionApplicationByApplymentIdResponse.json
@@ -0,0 +1,16 @@
+{
+ "applyment_id": 100000,
+ "applyment_state": "PENDING",
+ "applyment_type": "APPLY_FOR_PAYMENT_AUTHORITY",
+ "audit_reject_detail": "The merchant's certificate does not meet requirements.",
+ "business_description": "Founded in November 1998, Tencent is an Internet-based platform company that uses technology to enrich the lives of Internet users and assist enterprises with digital upgrade.",
+ "company_register_cert": "6uqyGjvHzOhsLleGFQVRF",
+ "domains": [ "qq.com" ],
+ "notify_url": "https://pay.weixin.qq.com/wxpay/pay.action",
+ "sub_mchid": "2491935631",
+ "transaction_limit_type": "UN_LAUNCHED_WEBSITE_LIMIT",
+ "website_business_page_pics": [ "" ],
+ "website_homepage_pics": [ "" ],
+ "website_state": "HAS_LAUNCHED",
+ "website_url": "https://qq.com"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/GetMerchantH5PermissionBySubMerchantIdResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/GetMerchantH5PermissionBySubMerchantIdResponse.json
new file mode 100644
index 00000000..9740e4b6
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/GetMerchantH5PermissionBySubMerchantIdResponse.json
@@ -0,0 +1,4 @@
+{
+ "authorization_state": "AUTHORITY_TO_TEST",
+ "sub_mchid": "2491935631"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/GetMerchantH5PermissionDomainApplicationByApplymentIdResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/GetMerchantH5PermissionDomainApplicationByApplymentIdResponse.json
new file mode 100644
index 00000000..e2ec5bfd
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/GetMerchantH5PermissionDomainApplicationByApplymentIdResponse.json
@@ -0,0 +1,13 @@
+{
+ "applyment_id": 1000000,
+ "applyment_state": "PENDING",
+ "audit_reject_detail": "Illegal content of website homepage screenshot",
+ "domains": [ "qq.com" ],
+ "notify_url": "https://pay.weixin.qq.com/wxpay/pay.action",
+ "sub_mchid": "2491935631",
+ "website_url": "https://qq.com",
+ "website_business_page_pics": [ "6uqyGjvHzOhsLleGFQVRF" ],
+ "website_homepage_pics": [ "6uqyGjvHzOhsLleGFQVRF" ],
+ "out_applyment_id": "123456",
+ "website_state": "HAS_LAUNCHED"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/UpdateMerchantH5PermissionApplicationRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/UpdateMerchantH5PermissionApplicationRequest.json
new file mode 100644
index 00000000..868d433d
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/UpdateMerchantH5PermissionApplicationRequest.json
@@ -0,0 +1,10 @@
+{
+ "business_description": "Founded in November 1998, Tencent is an Internet-based platform company that uses technology to enrich the lives of Internet users and assist enterprises with digital upgrade.",
+ "company_register_cert": "6uqyGjvHzOhsLleGFQVRF",
+ "domains": [ "qq.com" ],
+ "transaction_limit_type": "UN_LAUNCHED_WEBSITE_LIMIT",
+ "website_business_page_pics": [ "6uqyGjvHzOhsLleGFQVRF" ],
+ "website_homepage_pics": [ "6uqyGjvHzOhsLleGFQVRF" ],
+ "website_state": "HAS_LAUNCHED",
+ "website_url": "https://qq.com"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/UpdateMerchantH5PermissionApplicationResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/UpdateMerchantH5PermissionApplicationResponse.json
new file mode 100644
index 00000000..cd31054b
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/UpdateMerchantH5PermissionApplicationResponse.json
@@ -0,0 +1,16 @@
+{
+ "applyment_id": 100000,
+ "applyment_state": "PENDING",
+ "applyment_type": "APPLY_FOR_PAYMENT_AUTHORITY",
+ "audit_reject_detail": "The merchant's certificate does not meet requirements.",
+ "business_description": "Founded in November 1998, Tencent is an Internet-based platform company that uses technology to enrich the lives of Internet users and assist enterprises with digital upgrade.",
+ "company_register_cert": "6uqyGjvHzOhsLleGFQVRF",
+ "domains": [ "qq.com" ],
+ "notify_url": "https://pay.weixin.qq.com/wxpay/pay.action",
+ "sub_mchid": "2491935631",
+ "transaction_limit_type": "UN_LAUNCHED_WEBSITE_LIMIT",
+ "website_business_page_pics": [ "6uqyGjvHzOhsLleGFQVRF" ],
+ "website_homepage_pics": [ "6uqyGjvHzOhsLleGFQVRF" ],
+ "website_state": "HAS_LAUNCHED",
+ "website_url": "https://qq.com"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/UpdateMerchantH5PermissionDomainApplicationRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/UpdateMerchantH5PermissionDomainApplicationRequest.json
new file mode 100644
index 00000000..4750e7d0
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/UpdateMerchantH5PermissionDomainApplicationRequest.json
@@ -0,0 +1,7 @@
+{
+ "domains": [ "qq.com" ],
+ "website_business_page_pics": [ "6uqyGjvHzOhsLleGFQVRF" ],
+ "website_homepage_pics": [ "6uqyGjvHzOhsLleGFQVRF" ],
+ "website_state": "HAS_LAUNCHED",
+ "website_url": "https://qq.com"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/UpdateMerchantH5PermissionDomainApplicationResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/UpdateMerchantH5PermissionDomainApplicationResponse.json
new file mode 100644
index 00000000..e2ec5bfd
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/UpdateMerchantH5PermissionDomainApplicationResponse.json
@@ -0,0 +1,13 @@
+{
+ "applyment_id": 1000000,
+ "applyment_state": "PENDING",
+ "audit_reject_detail": "Illegal content of website homepage screenshot",
+ "domains": [ "qq.com" ],
+ "notify_url": "https://pay.weixin.qq.com/wxpay/pay.action",
+ "sub_mchid": "2491935631",
+ "website_url": "https://qq.com",
+ "website_business_page_pics": [ "6uqyGjvHzOhsLleGFQVRF" ],
+ "website_homepage_pics": [ "6uqyGjvHzOhsLleGFQVRF" ],
+ "out_applyment_id": "123456",
+ "website_state": "HAS_LAUNCHED"
+}