From 3e5f1eb48547091e6595de06414e93b4a5b89156 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Fri, 17 May 2024 16:39:51 +0800 Subject: [PATCH] =?UTF-8?q?feat(tenpayv3):=20=E6=96=B0=E5=A2=9E=E5=A2=83?= =?UTF-8?q?=E5=A4=96=E6=94=AF=E4=BB=98=20H5=20=E6=94=AF=E4=BB=98=E8=AE=A4?= =?UTF-8?q?=E8=AF=81=E7=94=B3=E8=AF=B7=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/WechatTenpayV3/Basic_GlobalAPI.md | 21 +++ docs/WechatTenpayV3/Basic_ModelDefinition.md | 138 ++++++++------- docs/WechatTenpayV3/README.md | 2 + ...ntExecuteMerchantH5PermissionExtensions.cs | 165 ++++++++++++++++++ ...yGlobalClientExecuteMerchantsExtensions.cs | 33 ++++ ...eMerchantH5PermissionApplicationRequest.cs | 87 +++++++++ ...MerchantH5PermissionApplicationResponse.cs | 9 + ...antH5PermissionDomainApplicationRequest.cs | 66 +++++++ ...ntH5PermissionDomainApplicationResponse.cs | 9 + ...rmissionApplicationByApplymentIdRequest.cs | 15 ++ ...missionApplicationByApplymentIdResponse.cs | 107 ++++++++++++ ...chantH5PermissionBySubMerchantIdRequest.cs | 15 ++ ...hantH5PermissionBySubMerchantIdResponse.cs | 22 +++ ...onDomainApplicationByApplymentIdRequest.cs | 15 ++ ...nDomainApplicationByApplymentIdResponse.cs | 86 +++++++++ ...eMerchantH5PermissionApplicationRequest.cs | 80 +++++++++ ...MerchantH5PermissionApplicationResponse.cs | 15 ++ ...antH5PermissionDomainApplicationRequest.cs | 52 ++++++ ...ntH5PermissionDomainApplicationResponse.cs | 15 ++ .../UploadMerchantMediaImageRequest.cs | 38 ++++ .../UploadMerchantMediaImageResponse.cs | 15 ++ ...erchantH5PermissionApplicationRequest.json | 12 ++ ...rchantH5PermissionApplicationResponse.json | 16 ++ ...tH5PermissionDomainApplicationRequest.json | 10 ++ ...H5PermissionDomainApplicationResponse.json | 13 ++ ...ssionApplicationByApplymentIdResponse.json | 16 ++ ...ntH5PermissionBySubMerchantIdResponse.json | 4 + ...omainApplicationByApplymentIdResponse.json | 13 ++ ...erchantH5PermissionApplicationRequest.json | 10 ++ ...rchantH5PermissionApplicationResponse.json | 16 ++ ...tH5PermissionDomainApplicationRequest.json | 7 + ...H5PermissionDomainApplicationResponse.json | 13 ++ 32 files changed, 1074 insertions(+), 61 deletions(-) create mode 100644 docs/WechatTenpayV3/Basic_GlobalAPI.md create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Extensions/WechatTenpayGlobalClientExecuteMerchantH5PermissionExtensions.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/CreateMerchantH5PermissionApplicationRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/CreateMerchantH5PermissionApplicationResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/CreateMerchantH5PermissionDomainApplicationRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/CreateMerchantH5PermissionDomainApplicationResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/GetMerchantH5PermissionApplicationByApplymentIdRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/GetMerchantH5PermissionApplicationByApplymentIdResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/GetMerchantH5PermissionBySubMerchantIdRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/GetMerchantH5PermissionBySubMerchantIdResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/GetMerchantH5PermissionDomainApplicationByApplymentIdRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/GetMerchantH5PermissionDomainApplicationByApplymentIdResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/UpdateMerchantH5PermissionApplicationRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/UpdateMerchantH5PermissionApplicationResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/UpdateMerchantH5PermissionDomainApplicationRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/MerchantH5Permission/UpdateMerchantH5PermissionDomainApplicationResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/Merchants/UploadMerchantMediaImageRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/ExtendedSDK/Global/Models/_Partner/Merchants/UploadMerchantMediaImageResponse.cs create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/CreateMerchantH5PermissionApplicationRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/CreateMerchantH5PermissionApplicationResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/CreateMerchantH5PermissionDomainApplicationRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/CreateMerchantH5PermissionDomainApplicationResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/GetMerchantH5PermissionApplicationByApplymentIdResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/GetMerchantH5PermissionBySubMerchantIdResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/GetMerchantH5PermissionDomainApplicationByApplymentIdResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/UpdateMerchantH5PermissionApplicationRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/UpdateMerchantH5PermissionApplicationResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/UpdateMerchantH5PermissionDomainApplicationRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/Global/_Partner/MerchantH5Permission/UpdateMerchantH5PermissionDomainApplicationResponse.json 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" +}