From d02a9fa14048d33f086b8d6e0644123bded1f4e7 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Thu, 6 Apr 2023 11:17:35 +0800 Subject: [PATCH] =?UTF-8?q?feat(tenpayv3):=20=E6=96=B0=E5=A2=9E=E5=A2=83?= =?UTF-8?q?=E5=A4=96=E5=95=86=E6=88=B7=E5=A7=94=E6=89=98=E4=BB=A3=E6=89=A3?= =?UTF-8?q?=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_ModelDefinition.md | 121 +++++--- ...tTenpayClientExecuteHKCustomsExtensions.cs | 10 +- ...enpayClientExecuteHKMerchantsExtensions.cs | 6 +- ...atTenpayClientExecuteHKPAPPayExtensions.cs | 257 ++++++++++++++++ ...yClientExecuteHKPartnerPAPPayExtensions.cs | 263 ++++++++++++++++ ...yClientExecuteHKPartnerRefundExtensions.cs | 46 ++- ...tExecuteHKPartnerTransactionsExtensions.cs | 20 +- ...atTenpayClientExecuteHKRefundExtensions.cs | 45 ++- ...ayClientExecuteHKTransactionsExtensions.cs | 16 +- .../WechatTenpayClientExecutePAPExtensions.cs | 6 +- ...TenpayClientExecutePartnerPAPExtensions.cs | 6 +- ...enpayClientExecutePayrollCardExtensions.cs | 6 +- .../CreateHKPAPPayTransactionRequest.cs | 116 +++++++ .../CreateHKPAPPayTransactionResponse.cs | 9 + .../GetHKPAPPayContractByContractIdRequest.cs | 22 ++ ...GetHKPAPPayContractByContractIdResponse.cs | 9 + ...KPAPPayContractByOutContractCodeRequest.cs | 29 ++ ...PAPPayContractByOutContractCodeResponse.cs | 98 ++++++ .../GetHKPAPPayTransactionByIdRequest.cs | 15 + .../GetHKPAPPayTransactionByIdResponse.cs | 9 + ...APPayTransactionByOutTradeNumberRequest.cs | 15 + ...PPayTransactionByOutTradeNumberResponse.cs | 182 +++++++++++ ...resignHKPAPPayContractEntrustAppRequest.cs | 75 +++++ ...esignHKPAPPayContractEntrustAppResponse.cs | 15 + ...PresignHKPAPPayContractEntrustH5Request.cs | 15 + ...resignHKPAPPayContractEntrustH5Response.cs | 15 + ...signHKPAPPayContractEntrustJsapiRequest.cs | 9 + ...ignHKPAPPayContractEntrustJsapiResponse.cs | 15 + ...PAPPayContractEntrustMiniProgramRequest.cs | 9 + ...APPayContractEntrustMiniProgramResponse.cs | 15 + ...resignHKPAPPayContractEntrustWebRequest.cs | 9 + ...esignHKPAPPayContractEntrustWebResponse.cs | 15 + .../ReverseHKPAPPayTransactionRequest.cs | 15 + .../ReverseHKPAPPayTransactionResponse.cs | 9 + .../TerminateHKPAPPayContractRequest.cs | 29 ++ .../TerminateHKPAPPayContractResponse.cs | 9 + ...CreateHKPartnerPAPPayTransactionRequest.cs | 54 ++++ ...reateHKPartnerPAPPayTransactionResponse.cs | 9 + ...artnerPAPPayContractByContractIdRequest.cs | 22 ++ ...rtnerPAPPayContractByContractIdResponse.cs | 36 +++ ...rPAPPayContractByOutContractCodeRequest.cs | 22 ++ ...PAPPayContractByOutContractCodeResponse.cs | 36 +++ ...etHKPartnerPAPPayTransactionByIdRequest.cs | 15 + ...tHKPartnerPAPPayTransactionByIdResponse.cs | 9 + ...APPayTransactionByOutTradeNumberRequest.cs | 15 + ...PPayTransactionByOutTradeNumberResponse.cs | 129 ++++++++ ...KPartnerPAPPayContractEntrustAppRequest.cs | 29 ++ ...PartnerPAPPayContractEntrustAppResponse.cs | 9 + ...HKPartnerPAPPayContractEntrustH5Request.cs | 29 ++ ...KPartnerPAPPayContractEntrustH5Response.cs | 9 + ...artnerPAPPayContractEntrustJsapiRequest.cs | 29 ++ ...rtnerPAPPayContractEntrustJsapiResponse.cs | 9 + ...PAPPayContractEntrustMiniProgramRequest.cs | 29 ++ ...APPayContractEntrustMiniProgramResponse.cs | 9 + ...KPartnerPAPPayContractEntrustWebRequest.cs | 29 ++ ...PartnerPAPPayContractEntrustWebResponse.cs | 9 + ...everseHKPartnerPAPPayTransactionRequest.cs | 15 + ...verseHKPartnerPAPPayTransactionResponse.cs | 9 + ...TerminateHKPartnerPAPPayContractRequest.cs | 29 ++ ...erminateHKPartnerPAPPayContractResponse.cs | 9 + .../GetHKPartnerRefundByIdRequest.cs | 18 +- ...HKPartnerRefundByOutRefundNumberRequest.cs | 18 +- .../QueryHKPartnerRefundsRequest.cs | 15 + .../QueryHKPartnerRefundsResponse.cs | 95 ++++++ ...tnerTransactionByOutTradeNumberResponse.cs | 28 +- .../Models/HKRefund/GetHKRefundByIdRequest.cs | 4 +- .../GetHKRefundByOutRefundNumberRequest.cs | 4 +- .../Models/HKRefund/QueryHKRefundsRequest.cs | 43 +++ .../Models/HKRefund/QueryHKRefundsResponse.cs | 287 ++++++++++++++++++ ...uest.cs => NotifyPAPPayContractRequest.cs} | 4 +- ...nse.cs => NotifyPAPPayContractResponse.cs} | 4 +- ... => NotifyPartnerPAPPayContractRequest.cs} | 6 +- ...=> NotifyPartnerPAPPayContractResponse.cs} | 4 +- .../GetPayPartnerTransactionByIdRequest.cs | 9 +- ...rtnerTransactionByOutTradeNumberRequest.cs | 9 +- ...tPayScorePartnerServiceOrderPayResponse.cs | 34 --- .../GetPayTransactionByIdRequest.cs | 2 +- ...etPayTransactionByOutTradeNumberRequest.cs | 2 +- ...tPayTransactionByOutTradeNumberResponse.cs | 6 +- ...eorderPayrollCardAuthenticationRequest.cs} | 2 +- ...orderPayrollCardAuthenticationResponse.cs} | 2 +- .../WechatTenpayEndpoints.cs | 6 +- .../CreateHKPAPPayTransactionRequest.json | 18 ++ .../CreateHKPAPPayTransactionResponse.json | 45 +++ ...tHKPAPPayContractByContractIdResponse.json | 14 + ...PPayContractByOutContractCodeResponse.json | 14 + ...signHKPAPPayContractEntrustAppRequest.json | 10 + ...ignHKPAPPayContractEntrustAppResponse.json | 3 + ...esignHKPAPPayContractEntrustH5Request.json | 11 + ...signHKPAPPayContractEntrustH5Response.json | 3 + ...gnHKPAPPayContractEntrustJsapiRequest.json | 10 + ...nHKPAPPayContractEntrustJsapiResponse.json | 3 + ...PPayContractEntrustMiniProgramRequest.json | 10 + ...PayContractEntrustMiniProgramResponse.json | 3 + ...signHKPAPPayContractEntrustWebRequest.json | 8 + ...ignHKPAPPayContractEntrustWebResponse.json | 3 + .../TerminateHKPAPPayContractRequest.json | 4 + ...eateHKPartnerPAPPayTransactionRequest.json | 20 ++ ...ateHKPartnerPAPPayTransactionResponse.json | 48 +++ ...nerPAPPayContractByContractIdResponse.json | 15 + ...PPayContractByOutContractCodeResponse.json | 15 + ...artnerPAPPayContractEntrustAppRequest.json | 11 + ...rtnerPAPPayContractEntrustAppResponse.json | 3 + ...PartnerPAPPayContractEntrustH5Request.json | 13 + ...artnerPAPPayContractEntrustH5Response.json | 3 + ...tnerPAPPayContractEntrustJsapiRequest.json | 12 + ...nerPAPPayContractEntrustJsapiResponse.json | 3 + ...PPayContractEntrustMiniProgramRequest.json | 12 + ...PayContractEntrustMiniProgramResponse.json | 3 + ...artnerPAPPayContractEntrustWebRequest.json | 10 + ...rtnerPAPPayContractEntrustWebResponse.json | 3 + ...erseHKPartnerPAPPayTransactionRequest.json | 3 + ...rminateHKPartnerPAPPayContractRequest.json | 6 + .../QueryHKPartnerRefundsResponse.json | 44 +++ .../HKRefund/QueryHKRefundsResponse.json | 43 +++ ....json => NotifyPAPPayContractRequest.json} | 0 ...> NotifyPartnerPAPPayContractRequest.json} | 0 ...rderPayrollCardAuthenticationRequest.json} | 0 ...derPayrollCardAuthenticationResponse.json} | 0 ...ttpClient.Wechat.TenpayV3.UnitTests.csproj | 2 +- .../TestCase_RequestEncryptionTests.cs | 12 +- 121 files changed, 3004 insertions(+), 197 deletions(-) create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteHKPAPPayExtensions.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteHKPartnerPAPPayExtensions.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/CreateHKPAPPayTransactionRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/CreateHKPAPPayTransactionResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/GetHKPAPPayContractByContractIdRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/GetHKPAPPayContractByContractIdResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/GetHKPAPPayContractByOutContractCodeRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/GetHKPAPPayContractByOutContractCodeResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/GetHKPAPPayTransactionByIdRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/GetHKPAPPayTransactionByIdResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/GetHKPAPPayTransactionByOutTradeNumberRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/GetHKPAPPayTransactionByOutTradeNumberResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustAppRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustAppResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustH5Request.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustH5Response.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustJsapiRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustJsapiResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustMiniProgramRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustMiniProgramResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustWebRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustWebResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/ReverseHKPAPPayTransactionRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/ReverseHKPAPPayTransactionResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/TerminateHKPAPPayContractRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/TerminateHKPAPPayContractResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/CreateHKPartnerPAPPayTransactionRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/CreateHKPartnerPAPPayTransactionResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/GetHKPartnerPAPPayContractByContractIdRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/GetHKPartnerPAPPayContractByContractIdResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/GetHKPartnerPAPPayContractByOutContractCodeRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/GetHKPartnerPAPPayContractByOutContractCodeResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/GetHKPartnerPAPPayTransactionByIdRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/GetHKPartnerPAPPayTransactionByIdResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/GetHKPartnerPAPPayTransactionByOutTradeNumberRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/GetHKPartnerPAPPayTransactionByOutTradeNumberResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustAppRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustAppResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustH5Request.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustH5Response.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustJsapiRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustJsapiResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustMiniProgramRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustMiniProgramResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustWebRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustWebResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/ReverseHKPartnerPAPPayTransactionRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/ReverseHKPartnerPAPPayTransactionResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/TerminateHKPartnerPAPPayContractRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/TerminateHKPartnerPAPPayContractResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerRefund/QueryHKPartnerRefundsRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerRefund/QueryHKPartnerRefundsResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKRefund/QueryHKRefundsRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKRefund/QueryHKRefundsResponse.cs rename src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PAPPay/{NotifyPAPPayContractsRequest.cs => NotifyPAPPayContractRequest.cs} (94%) rename src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PAPPay/{NotifyPAPPayContractsResponse.cs => NotifyPAPPayContractResponse.cs} (53%) rename src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PartnerPAPPay/{NotifyPartnerPAPPayContractsRequest.cs => NotifyPartnerPAPPayContractRequest.cs} (90%) rename src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PartnerPAPPay/{NotifyPartnerPAPPayContractsResponse.cs => NotifyPartnerPAPPayContractResponse.cs} (53%) rename src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayrollCard/Authentications/{PreOrderWithAuthPayrollCardAuthenticationRequest.cs => PreorderPayrollCardAuthenticationRequest.cs} (97%) rename src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayrollCard/Authentications/{PreOrderWithAuthPayrollCardAuthenticationResponse.cs => PreorderPayrollCardAuthenticationResponse.cs} (95%) create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/CreateHKPAPPayTransactionRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/CreateHKPAPPayTransactionResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/GetHKPAPPayContractByContractIdResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/GetHKPAPPayContractByOutContractCodeResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustAppRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustAppResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustH5Request.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustH5Response.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustJsapiRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustJsapiResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustMiniProgramRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustMiniProgramResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustWebRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustWebResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/TerminateHKPAPPayContractRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/CreateHKPartnerPAPPayTransactionRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/CreateHKPartnerPAPPayTransactionResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/GetHKPartnerPAPPayContractByContractIdResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/GetHKPartnerPAPPayContractByOutContractCodeResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustAppRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustAppResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustH5Request.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustH5Response.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustJsapiRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustJsapiResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustMiniProgramRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustMiniProgramResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustWebRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustWebResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/ReverseHKPartnerPAPPayTransactionRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/TerminateHKPartnerPAPPayContractRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerRefund/QueryHKPartnerRefundsResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKRefund/QueryHKRefundsResponse.json rename test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/PAPPay/{NotifyPAPPayContractsRequest.json => NotifyPAPPayContractRequest.json} (100%) rename test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/PartnerPAPPay/{NotifyPartnerPAPPayContractsRequest.json => NotifyPartnerPAPPayContractRequest.json} (100%) rename test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/PayrollCard/Authentications/{PreOrderWithAuthPayrollCardAuthenticationRequest.json => PreorderPayrollCardAuthenticationRequest.json} (100%) rename test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/PayrollCard/Authentications/{PreOrderWithAuthPayrollCardAuthenticationResponse.json => PreorderPayrollCardAuthenticationResponse.json} (100%) diff --git a/docs/WechatTenpayV3/Basic_ModelDefinition.md b/docs/WechatTenpayV3/Basic_ModelDefinition.md index 463ea53a..8803c208 100644 --- a/docs/WechatTenpayV3/Basic_ModelDefinition.md +++ b/docs/WechatTenpayV3/Basic_ModelDefinition.md @@ -75,6 +75,7 @@ | √ | 其他能力:优惠费率活动 | 服务商 | | | √ | 境外支付:子商户进件 | 服务商 | | | √ | 境外支付:融合钱包 | 服务商 | | +| √ | 境外支付:委托代扣 | 直连商户 & 服务商 | | | √ | 境外支付:报关 | 服务商 | | @@ -269,7 +270,7 @@ - 扣款服务 - - 预扣费通知:`NotifyPAPPayContracts` + - 预扣费通知:`NotifyPAPPayContract` - 行业方案 @@ -717,7 +718,7 @@ - 扣款服务 - - 预扣费通知:`NotifyPartnerPAPPayContracts` + - 预扣费通知:`NotifyPartnerPAPPayContract` - 行业方案 @@ -1055,7 +1056,7 @@ - 微工卡用户核身份: - - 微工卡核身预下单:`PreOrderWithAuthPayrollCardAuthentication` + - 微工卡核身预下单:`PreorderWithAuthPayrollCardAuthentication` - 获取核身结果:`GetPayrollCardAuthenticationByAuthenticateNumber` @@ -1175,17 +1176,7 @@ [展开查看] -- Onboarding Sub Merchant - - - Onboarding Sub Merchant (For HK) - - - Onboarding Sub-merchant:`AddSubMerchant` - - - Query Sub-merchant:`GetSubMerchant` - - - Sub Merchant Modifying:`ModifySubMerchant` - -- Multi-Wallet (For HK) +- Payments - Quick Pay @@ -1197,6 +1188,8 @@ - Query Single Refund:`GetHKRefundByOutRefundNumber` / `GetHKRefundById` / `GetHKPartnerRefundByOutRefundNumber` / `GetHKPartnerRefundById` + - Query All Refunds: `QueryHKRefunds` / `QueryHKPartnerRefunds` + - Downloading Reconciliation:`DownloadHKStatements` - Revoke Order:`ReverseHKTransaction` / `ReverseHKPartnerTransaction` @@ -1205,7 +1198,7 @@ - Query Fund Settlement Details:`QueryHKSettlements` - - QR Code Payment + - Native Payment - Order Placement:`CreateHKTransactionMicroPay` / `CreateHKPartnerTransactionMicroPay` @@ -1215,6 +1208,8 @@ - Query Single Refund:`GetHKRefundByOutRefundNumber` / `GetHKRefundById` / `GetHKPartnerRefundByOutRefundNumber` / `GetHKPartnerRefundById` + - Query All Refunds: `QueryHKRefunds` / `QueryHKPartnerRefunds` + - Downloading Reconciliation:`DownloadHKStatements` - Close Order:`CloseHKTransaction` / `CloseHKPartnerTransaction` @@ -1223,7 +1218,7 @@ - Query Fund Settlement Details:`QueryHKSettlements` - - Mini-Program Payment + - JSAPI Payment - Order Placement:`CreateHKTransactionMicroPay` / `CreateHKPartnerTransactionMicroPay` @@ -1233,23 +1228,7 @@ - Query Single Refund:`GetHKRefundByOutRefundNumber` / `GetHKRefundById` / `GetHKPartnerRefundByOutRefundNumber` / `GetHKPartnerRefundById` - - Downloading Reconciliation:`DownloadHKStatements` - - - Close Order:`CloseHKTransaction` / `CloseHKPartnerTransaction` - - - Downloading Platform Certificate:`QueryCertificates` - - - Query Fund Settlement Details:`QueryHKSettlements` - - - Official Account Payment - - - Order Placement:`CreateHKTransactionMicroPay` / `CreateHKPartnerTransactionMicroPay` - - - Query Order:`GetHKTransactionByOutTradeNumber` / `GetHKTransactionById` / `GetHKPartnerTransactionByOutTradeNumber` / `GetHKPartnerTransactionById` - - - Refund Application:`CreateHKRefund` / `CreateHKPartnerRefund` - - - Query Single Refund:`GetHKRefundByOutRefundNumber` / `GetHKRefundById` / `GetHKPartnerRefundByOutRefundNumber` / `GetHKPartnerRefundById` + - Query All Refunds: `QueryHKRefunds` / `QueryHKPartnerRefunds` - Downloading Reconciliation:`DownloadHKStatements` @@ -1269,6 +1248,28 @@ - Query Single Refund:`GetHKRefundByOutRefundNumber` / `GetHKRefundById` / `GetHKPartnerRefundByOutRefundNumber` / `GetHKPartnerRefundById` + - Query All Refunds: `QueryHKRefunds` / `QueryHKPartnerRefunds` + + - Downloading Reconciliation:`DownloadHKStatements` + + - Close Order:`CloseHKTransaction` / `CloseHKPartnerTransaction` + + - Downloading Platform Certificate:`QueryCertificates` + + - Query Fund Settlement Details:`QueryHKSettlements` + + - Mini-Program Payment + + - Order Placement:`CreateHKTransactionMicroPay` / `CreateHKPartnerTransactionMicroPay` + + - Query Order:`GetHKTransactionByOutTradeNumber` / `GetHKTransactionById` / `GetHKPartnerTransactionByOutTradeNumber` / `GetHKPartnerTransactionById` + + - Refund Application:`CreateHKRefund` / `CreateHKPartnerRefund` + + - Query Single Refund:`GetHKRefundByOutRefundNumber` / `GetHKRefundById` / `GetHKPartnerRefundByOutRefundNumber` / `GetHKPartnerRefundById` + + - Query All Refunds: `QueryHKRefunds` / `QueryHKPartnerRefunds` + - Downloading Reconciliation:`DownloadHKStatements` - Close Order:`CloseHKTransaction` / `CloseHKPartnerTransaction` @@ -1283,6 +1284,8 @@ - Query Order:`GetHKTransactionByOutTradeNumber` / `GetHKTransactionById` / `GetHKPartnerTransactionByOutTradeNumber` / `GetHKPartnerTransactionById` + - Query All Refunds: `QueryHKRefunds` / `QueryHKPartnerRefunds` + - Refund Application:`CreateHKRefund` / `CreateHKPartnerRefund` - Query Single Refund:`GetHKRefundByOutRefundNumber` / `GetHKRefundById` / `GetHKPartnerRefundByOutRefundNumber` / `GetHKPartnerRefundById` @@ -1295,18 +1298,54 @@ - Query Fund Settlement Details:`QueryHKSettlements` -- Customs Declaration + - Auto-Debit Payment - - Customs Declaration:`CreateCustomsOrder` + - Mini Program Signing: `PresignHKPAPPayContractEntrustMiniProgram` / `PresignHKPartnerPAPPayContractEntrustMiniProgram` - - Identity Information Verification:`VerifyCustomsCertificate` + - H5 Signing: `PresignHKPAPPayContractEntrustH5` / `PresignHKPartnerPAPPayContractEntrustH5` - - Query Customs Declaration:`QueryCustomsOrders` + - JSAPI Signing: `PresignHKPAPPayContractEntrustJsapi` / `PresignHKPartnerPAPPayContractEntrustJsapi` - - Repush Customs Declaration:`RedeclareCustomsOrder` + - PC WEB Signing: `PresignHKPAPPayContractEntrustJsapi` / `PresignHKPartnerPAPPayContractEntrustJsapi` - - Modify Customs Declaration Info:`ModifyCustomsOrder` + - APP Signing: `PresignHKPAPPayContractEntrustApp` / `PresignHKPartnerPAPPayContractEntrustApp` -- Functional APIs + - Querying Signing Status: `GetHKPAPPayContractByOutContractCode` / `GetHKPAPPayContractByContractId` / `GetHKPartnerPAPPayContractByOutContractCode` / `GetHKPartnerPAPPayContractByContractId` - - Uploading Image API (For HK):`UploadMerchantMediaImage` + - Applying for Termination: `TerminateHKPAPPayContract` / `TerminateHKPartnerPAPPayContract` + + - Deduction: `CreateHKPAPPayTransaction` / `CreateHKPartnerPAPPayTransaction` + + - Order Query: `GetHKPAPPayTransactionByOutTradeNumber` / `GetHKPAPPayTransactionById` / `GetHKPartnerPAPPayTransactionByOutTradeNumber` / `GetHKPartnerPAPPayTransactionById` + + - Order Reversing: `ReverseHKPAPPayTransaction` / `ReverseHKPartnerPAPPayTransaction` + + - Submit Refund: `CreateHKRefund` / `CreateHKPartnerRefund` + + - Query Single Refund: `GetHKRefundByOutRefundNumber` / `GetHKRefundById` / `GetHKPartnerRefundByOutRefundNumber` / `GetHKPartnerRefundById` + + - Query All Refunds: `QueryHKRefunds` / `QueryHKPartnerRefunds` + +- Other + + - Merchant Onboarding + + - Onboarding Sub-merchant:`AddSubMerchant` + + - Query Sub-merchant:`GetSubMerchant` + + - Sub Merchant Modifying:`ModifySubMerchant` + + - Upload Image:`UploadMerchantMediaImage` + + - Customs Declaration + + - Customs Declaration:`CreateCustomsOrder` + + - Identity Information Verification:`VerifyCustomsCertificate` + + - Query Customs Declaration:`QueryCustomsOrders` + + - Repush Customs Declaration:`RedeclareCustomsOrder` + + - Modify Customs Declaration Info:`ModifyCustomsOrder` diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteHKCustomsExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteHKCustomsExtensions.cs index 02108180..7e8294f9 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteHKCustomsExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteHKCustomsExtensions.cs @@ -14,7 +14,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// /// 异步调用 [POST] /customs/orders 接口。 /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/declarecustom/chapter3_1.shtml - /// (请注意调用此接口需在构造 时指定单独的 。) + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) /// /// /// @@ -37,7 +37,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// /// 异步调用 [GET] /customs/orders 接口。 /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/declarecustom/chapter3_1.shtml - /// (请注意调用此接口需在构造 时指定单独的 。) + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) /// /// /// @@ -71,7 +71,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// /// 异步调用 [POST] /customs/redeclare 接口。 /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/declarecustom/chapter3_4.shtml - /// (请注意调用此接口需在构造 时指定单独的 。) + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) /// /// /// @@ -94,7 +94,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// /// 异步调用 [PATCH] /customs/orders 接口。 /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/declarecustom/chapter3_5.shtml - /// (请注意调用此接口需在构造 时指定单独的 。) + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) /// /// /// @@ -117,7 +117,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// /// 异步调用 [POST] /customs/verify-certificate 接口。 /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/declarecustom/chapter3_2.shtml - /// (请注意调用此接口需在构造 时指定单独的 。) + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) /// /// /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteHKMerchantsExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteHKMerchantsExtensions.cs index 85e84cb1..bf3e6515 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteHKMerchantsExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteHKMerchantsExtensions.cs @@ -14,7 +14,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// /// 异步调用 [POST] /merchants 接口。 /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/Onborading_Sub_Merchant/chapter3_1.shtml - /// (请注意调用此接口需在构造 时指定单独的 。) + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) /// /// /// @@ -38,7 +38,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// /// 异步调用 [GET] /merchants/{sub_mchid} 接口。 /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/Onborading%20Sub%20Merchant/chapter3_2.shtml - /// (请注意调用此接口需在构造 时指定单独的 。) + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) /// /// /// @@ -63,7 +63,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// /// 异步调用 [PUT] /merchants 接口。 /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/Onborading_Sub_Merchant/chapter3_3.shtml - /// (请注意调用此接口需在构造 时指定单独的 。) + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) /// /// /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteHKPAPPayExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteHKPAPPayExtensions.cs new file mode 100644 index 00000000..102adcf7 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteHKPAPPayExtensions.cs @@ -0,0 +1,257 @@ +using System; +using System.Net.Http; +using System.Threading; +using System.Threading.Tasks; +using Flurl.Http; + +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 +{ + /// + /// 为 提供境外支付委托代扣(直连商户)相关的 API 扩展方法。 + /// + public static class WechatTenpayClientExecuteHKPAPPayExtensions + { + /// + /// 异步调用 [POST] /papay/contracts/app-pre-entrust-sign 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/api_external/en/apis/chapter5_1_17.shtml + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) + /// + /// + /// + /// + /// + public static async Task ExecutePresignHKPAPPayContractEntrustAppAsync(this WechatTenpayClient client, Models.PresignHKPAPPayContractEntrustAppRequest 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 + .CreateRequest(request, HttpMethod.Post, "papay", "contracts", "app-pre-entrust-sign"); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /papay/contracts/jsapi-pre-entrust-sign 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/api_external/en/apis/chapter5_1_15.shtml + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) + /// + /// + /// + /// + /// + public static async Task ExecutePresignHKPAPPayContractEntrustJsapiAsync(this WechatTenpayClient client, Models.PresignHKPAPPayContractEntrustJsapiRequest 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 + .CreateRequest(request, HttpMethod.Post, "papay", "contracts", "jsapi-pre-entrust-sign"); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /papay/contracts/miniprogram-pre-entrust-sign 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/api_external/en/apis/chapter5_1_1.shtml + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) + /// + /// + /// + /// + /// + public static async Task ExecutePresignHKPAPPayContractEntrustMiniProgramAsync(this WechatTenpayClient client, Models.PresignHKPAPPayContractEntrustMiniProgramRequest 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 + .CreateRequest(request, HttpMethod.Post, "papay", "contracts", "miniprogram-pre-entrust-sign"); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /papay/contracts/h5-pre-entrust-sign 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/api_external/en/apis/chapter5_1_14.shtml + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) + /// + /// + /// + /// + /// + public static async Task ExecutePresignHKPAPPayContractEntrustH5Async(this WechatTenpayClient client, Models.PresignHKPAPPayContractEntrustH5Request 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 + .CreateRequest(request, HttpMethod.Post, "papay", "contracts", "h5-pre-entrust-sign"); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /papay/contracts/web-pre-entrust-sign 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/api_external/en/apis/chapter5_1_16.shtml + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) + /// + /// + /// + /// + /// + public static async Task ExecutePresignHKPAPPayContractEntrustWebAsync(this WechatTenpayClient client, Models.PresignHKPAPPayContractEntrustWebRequest 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 + .CreateRequest(request, HttpMethod.Post, "papay", "contracts", "web-pre-entrust-sign"); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [GET] /papay/contracts/out-contract-code/{out_contract_code} 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/api_external/en/apis/chapter5_1_3.shtml + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) + /// + /// + /// + /// + /// + public static async Task ExecuteGetHKPAPPayContractByOutContractCodeAsync(this WechatTenpayClient client, Models.GetHKPAPPayContractByOutContractCodeRequest 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 + .CreateRequest(request, HttpMethod.Get, "papay", "contracts", "out-contract-code", request.OutContractCode) + .SetQueryParam("appid", request.AppId) + .SetQueryParam("plan_id", request.PlanId); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [GET] /papay/contracts/{contract_id} 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/api_external/en/apis/chapter5_1_2.shtml + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) + /// + /// + /// + /// + /// + public static async Task ExecuteGetHKPAPPayContractByContractIdAsync(this WechatTenpayClient client, Models.GetHKPAPPayContractByContractIdRequest 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 + .CreateRequest(request, HttpMethod.Get, "papay", "contracts", request.ContractId) + .SetQueryParam("appid", request.AppId); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /papay/contracts/{contract_id}/terminate 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/api_external/en/apis/chapter5_1_4.shtml + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) + /// + /// + /// + /// + /// + public static async Task ExecuteTerminateHKPAPPayContractAsync(this WechatTenpayClient client, Models.TerminateHKPAPPayContractRequest 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 + .CreateRequest(request, HttpMethod.Post, "papay", "contracts", request.ContractId, "terminate"); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /papay/transactions 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/api_external/en/apis/chapter5_1_6.shtml + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) + /// + /// + /// + /// + /// + public static async Task ExecuteCreateHKPAPPayTransactionAsync(this WechatTenpayClient client, Models.CreateHKPAPPayTransactionRequest 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 + .CreateRequest(request, HttpMethod.Post, "papay", "transactions"); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [GET] /papay/transactions/out-trade-no/{out_trade_no} 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/api_external/en/apis/chapter5_1_8.shtml + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) + /// + /// + /// + /// + /// + public static async Task ExecuteGetHKPAPPayTransactionByOutTradeNumberAsync(this WechatTenpayClient client, Models.GetHKPAPPayTransactionByOutTradeNumberRequest 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 + .CreateRequest(request, HttpMethod.Get, "papay", "transactions", "out-trade-no", request.OutTradeNumber); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [GET] /papay/transactions/{transaction_id} 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/api_external/en/apis/chapter5_1_8.shtml + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) + /// + /// + /// + /// + /// + public static async Task ExecuteGetHKPAPPayTransactionByIdAsync(this WechatTenpayClient client, Models.GetHKPAPPayTransactionByIdRequest 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 + .CreateRequest(request, HttpMethod.Get, "papay", "transactions", request.TransactionId); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /papay/transactions/out-trade-no/{out_trade_no}/reverse 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/api_external/en/apis/chapter5_1_10.shtml + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) + /// + /// + /// + /// + /// + public static async Task ExecuteReverseHKPAPPayTransactionAsync(this WechatTenpayClient client, Models.ReverseHKPAPPayTransactionRequest 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 + .CreateRequest(request, HttpMethod.Post, "papay", "transactions", "out-trade-no", request.OutTradeNumber, "reverse"); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteHKPartnerPAPPayExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteHKPartnerPAPPayExtensions.cs new file mode 100644 index 00000000..dc6f2a53 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteHKPartnerPAPPayExtensions.cs @@ -0,0 +1,263 @@ +using System; +using System.Net.Http; +using System.Threading; +using System.Threading.Tasks; +using Flurl.Http; + +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 +{ + /// + /// 为 提供境外支付委托代扣(服务商)相关的 API 扩展方法。 + /// + public static class WechatTenpayClientExecuteHKPartnerPAPPayExtensions + { + /// + /// 异步调用 [POST] /papay/contracts/app-pre-entrust-sign 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/api_external/en/apis/chapter5_1_17.shtml + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) + /// + /// + /// + /// + /// + public static async Task ExecutePresignHKPartnerPAPPayContractEntrustAppAsync(this WechatTenpayClient client, Models.PresignHKPartnerPAPPayContractEntrustAppRequest 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 + .CreateRequest(request, HttpMethod.Post, "papay", "contracts", "app-pre-entrust-sign"); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /papay/contracts/jsapi-pre-entrust-sign 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/api_external/en/apis/chapter5_1_15.shtml + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) + /// + /// + /// + /// + /// + public static async Task ExecutePresignHKPartnerPAPPayContractEntrustJsapiAsync(this WechatTenpayClient client, Models.PresignHKPartnerPAPPayContractEntrustJsapiRequest 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 + .CreateRequest(request, HttpMethod.Post, "papay", "contracts", "jsapi-pre-entrust-sign"); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /papay/contracts/miniprogram-pre-entrust-sign 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/api_external/en/apis/chapter5_1_1.shtml + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) + /// + /// + /// + /// + /// + public static async Task ExecutePresignHKPartnerPAPPayContractEntrustMiniProgramAsync(this WechatTenpayClient client, Models.PresignHKPartnerPAPPayContractEntrustMiniProgramRequest 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 + .CreateRequest(request, HttpMethod.Post, "papay", "contracts", "miniprogram-pre-entrust-sign"); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /papay/contracts/h5-pre-entrust-sign 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/api_external/en/apis/chapter5_1_14.shtml + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) + /// + /// + /// + /// + /// + public static async Task ExecutePresignHKPartnerPAPPayContractEntrustH5Async(this WechatTenpayClient client, Models.PresignHKPartnerPAPPayContractEntrustH5Request 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 + .CreateRequest(request, HttpMethod.Post, "papay", "contracts", "h5-pre-entrust-sign"); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /papay/contracts/web-pre-entrust-sign 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/api_external/en/apis/chapter5_1_14.shtml + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) + /// + /// + /// + /// + /// + public static async Task ExecutePresignHKPartnerPAPPayContractEntrustWebAsync(this WechatTenpayClient client, Models.PresignHKPartnerPAPPayContractEntrustWebRequest 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 + .CreateRequest(request, HttpMethod.Post, "papay", "contracts", "web-pre-entrust-sign"); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [GET] /papay/contracts/out-contract-code/{out_contract_code} 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/api_external/en/apis/chapter5_1_3.shtml + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) + /// + /// + /// + /// + /// + public static async Task ExecuteGetHKPartnerPAPPayContractByOutContractCodeAsync(this WechatTenpayClient client, Models.GetHKPartnerPAPPayContractByOutContractCodeRequest 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 + .CreateRequest(request, HttpMethod.Get, "papay", "contracts", "out-contract-code", request.OutContractCode) + .SetQueryParam("sp_appid", request.AppId) + .SetQueryParam("sub_mchid", request.SubMerchantId) + .SetQueryParam("sub_appid", request.SubAppId) + .SetQueryParam("plan_id", request.PlanId); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [GET] /papay/contracts/{contract_id} 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/api_external/en/apis/chapter5_1_2.shtml + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) + /// + /// + /// + /// + /// + public static async Task ExecuteGetHKPartnerPAPPayContractByContractIdAsync(this WechatTenpayClient client, Models.GetHKPartnerPAPPayContractByContractIdRequest 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 + .CreateRequest(request, HttpMethod.Get, "papay", "contracts", request.ContractId) + .SetQueryParam("sp_appid", request.AppId) + .SetQueryParam("sub_mchid", request.SubMerchantId) + .SetQueryParam("sub_appid", request.SubAppId); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /papay/contracts/{contract_id}/terminate 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/api_external/en/apis/chapter5_1_4.shtml + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) + /// + /// + /// + /// + /// + public static async Task ExecuteTerminateHKPartnerPAPPayContractAsync(this WechatTenpayClient client, Models.TerminateHKPartnerPAPPayContractRequest 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 + .CreateRequest(request, HttpMethod.Post, "papay", "contracts", request.ContractId, "terminate"); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /papay/transactions 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/api_external/en/apis/chapter5_1_6.shtml + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) + /// + /// + /// + /// + /// + public static async Task ExecuteCreateHKPartnerPAPPayTransactionAsync(this WechatTenpayClient client, Models.CreateHKPartnerPAPPayTransactionRequest 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 + .CreateRequest(request, HttpMethod.Post, "papay", "transactions"); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [GET] /papay/transactions/out-trade-no/{out_trade_no} 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/api_external/en/apis/chapter5_1_8.shtml + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) + /// + /// + /// + /// + /// + public static async Task ExecuteGetHKPartnerPAPPayTransactionByOutTradeNumberAsync(this WechatTenpayClient client, Models.GetHKPartnerPAPPayTransactionByOutTradeNumberRequest 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 + .CreateRequest(request, HttpMethod.Get, "papay", "transactions", "out-trade-no", request.OutTradeNumber) + .SetQueryParam("sub_mchid", request.SubMerchantId); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [GET] /papay/transactions/{transaction_id} 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/api_external/en/apis/chapter5_1_8.shtml + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) + /// + /// + /// + /// + /// + public static async Task ExecuteGetHKPartnerPAPPayTransactionByIdAsync(this WechatTenpayClient client, Models.GetHKPartnerPAPPayTransactionByIdRequest 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 + .CreateRequest(request, HttpMethod.Get, "papay", "transactions", request.TransactionId) + .SetQueryParam("sub_mchid", request.SubMerchantId); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /papay/transactions/out-trade-no/{out_trade_no}/reverse 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/api_external/en/apis/chapter5_1_10.shtml + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) + /// + /// + /// + /// + /// + public static async Task ExecuteReverseHKPartnerPAPPayTransactionAsync(this WechatTenpayClient client, Models.ReverseHKPartnerPAPPayTransactionRequest 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 + .CreateRequest(request, HttpMethod.Post, "papay", "transactions", "out-trade-no", request.OutTradeNumber, "reverse"); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteHKPartnerRefundExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteHKPartnerRefundExtensions.cs index dad0b37b..075fb1d0 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteHKPartnerRefundExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteHKPartnerRefundExtensions.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Net.Http; using System.Threading; using System.Threading.Tasks; @@ -20,7 +20,8 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/MiniProgramPay/chapter8_2.shtml /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/NativePay/chapter8_2.shtml /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/QuickPay/chapter8_2.shtml - /// (请注意调用此接口需在构造 时指定单独的 。) + /// REF: https://pay.weixin.qq.com/wiki/doc/api_external/en/apis/chapter5_1_11.shtml + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) /// /// /// @@ -48,7 +49,8 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/MiniProgramPay/chapter8_3.shtml /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/NativePay/chapter8_3.shtml /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/QuickPay/chapter8_3.shtml - /// (请注意调用此接口需在构造 时指定单独的 。) + /// REF: https://pay.weixin.qq.com/wiki/doc/api_external/en/apis/chapter5_1_12.shtml + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) /// /// /// @@ -78,7 +80,8 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/MiniProgramPay/chapter8_3.shtml /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/NativePay/chapter8_3.shtml /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/QuickPay/chapter8_3.shtml - /// (请注意调用此接口需在构造 时指定单独的 。) + /// REF: https://pay.weixin.qq.com/wiki/doc/api_external/en/apis/chapter5_1_12.shtml + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) /// /// /// @@ -99,5 +102,40 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } + + /// + /// 异步调用 [GET] /refunds 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/In-AppPay/chapter8_4.shtml + /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/H5Payment/chapter8_4.shtml + /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/OfficialPayMent/chapter8_4.shtml + /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/MiniProgramPay/chapter8_4.shtml + /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/NativePay/chapter8_4.shtml + /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/QuickPay/chapter8_4.shtml + /// REF: https://pay.weixin.qq.com/wiki/doc/api_external/en/apis/chapter5_1_13.shtml + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) + /// + /// + /// + /// + /// + public static async Task ExecuteQueryHKPartnerRefundsAsync(this WechatTenpayClient client, Models.QueryHKPartnerRefundsRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + if (request.MerchantId == null) + request.MerchantId = client.Credentials.MerchantId; + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Get, "refunds") + .SetQueryParam("sp_mchid", request.MerchantId) + .SetQueryParam("sub_mchid", request.SubMerchantId) + .SetQueryParam("out_trade_no", request.OutTradeNumber) + .SetQueryParam("transaction_id", request.TransactionId) + .SetQueryParam("offset", request.Offset) + .SetQueryParam("count", request.Limit); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteHKPartnerTransactionsExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteHKPartnerTransactionsExtensions.cs index 889dee0d..7ab70dc8 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteHKPartnerTransactionsExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteHKPartnerTransactionsExtensions.cs @@ -14,7 +14,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// /// 异步调用 [POST] /transactions/app 接口。 /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/In-AppPay/chapter6_3.shtml - /// (请注意调用此接口需在构造 时指定单独的 。) + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) /// /// /// @@ -37,7 +37,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// /// 异步调用 [POST] /transactions/mweb 接口。 /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/H5Payment/chapter3_3.shtml - /// (请注意调用此接口需在构造 时指定单独的 。) + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) /// /// /// @@ -61,7 +61,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// 异步调用 [POST] /transactions/jsapi 接口。 /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/OfficialPayMent/chapter5_4.shtml /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/MiniProgramPay/chapter7_3.shtml - /// (请注意调用此接口需在构造 时指定单独的 。) + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) /// /// /// @@ -84,7 +84,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// /// 异步调用 [POST] /transactions/native 接口。 /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/NativePay/chapter4_3.shtml - /// (请注意调用此接口需在构造 时指定单独的 。) + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) /// /// /// @@ -112,7 +112,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/MiniProgramPay/chapter8_1.shtml /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/NativePay/chapter8_1.shtml /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/QuickPay/chapter8_1.shtml - /// (请注意调用此接口需在构造 时指定单独的 。) + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) /// /// /// @@ -142,7 +142,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/MiniProgramPay/chapter8_1.shtml /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/NativePay/chapter8_1.shtml /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/QuickPay/chapter8_1.shtml - /// (请注意调用此接口需在构造 时指定单独的 。) + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) /// /// /// @@ -171,7 +171,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/OfficialPayMent/chapter8_6.shtml /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/MiniProgramPay/chapter8_6.shtml /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/NativePay/chapter8_6.shtml - /// (请注意调用此接口需在构造 时指定单独的 。) + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) /// /// /// @@ -194,7 +194,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// /// 异步调用 [POST] /transactions/out-trade-no/{out_trade_no}/reverse 接口。 /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/QuickPay/chapter3_4.shtml - /// (请注意调用此接口需在构造 时指定单独的 。) + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) /// /// /// @@ -224,7 +224,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/MiniProgramPay/chapter8_5.shtml /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/NativePay/chapter8_5.shtml /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/QuickPay/chapter8_5.shtml - /// (请注意调用此接口需在构造 时指定单独的 。) + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) /// /// /// @@ -253,7 +253,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/MiniProgramPay/chapter8_12.shtml /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/NativePay/chapter8_12.shtml /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/QuickPay/chapter8_12.shtml - /// (请注意调用此接口需在构造 时指定单独的 。) + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) /// /// /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteHKRefundExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteHKRefundExtensions.cs index a8866503..8c08872e 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteHKRefundExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteHKRefundExtensions.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Net.Http; using System.Threading; using System.Threading.Tasks; @@ -20,7 +20,8 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/MiniProgramPay/chapter8_2.shtml /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/NativePay/chapter8_2.shtml /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/QuickPay/chapter8_2.shtml - /// (请注意调用此接口需在构造 时指定单独的 。) + /// REF: https://pay.weixin.qq.com/wiki/doc/api_external/en/apis/chapter5_1_11.shtml + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) /// /// /// @@ -48,7 +49,8 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/MiniProgramPay/chapter8_3.shtml /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/NativePay/chapter8_3.shtml /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/QuickPay/chapter8_3.shtml - /// (请注意调用此接口需在构造 时指定单独的 。) + /// REF: https://pay.weixin.qq.com/wiki/doc/api_external/en/apis/chapter5_1_12.shtml + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) /// /// /// @@ -77,7 +79,8 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/MiniProgramPay/chapter8_3.shtml /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/NativePay/chapter8_3.shtml /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/QuickPay/chapter8_3.shtml - /// (请注意调用此接口需在构造 时指定单独的 。) + /// REF: https://pay.weixin.qq.com/wiki/doc/api_external/en/apis/chapter5_1_12.shtml + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) /// /// /// @@ -97,5 +100,39 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } + + /// + /// 异步调用 [GET] /refunds 接口。 + /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/In-AppPay/chapter8_4.shtml + /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/H5Payment/chapter8_4.shtml + /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/OfficialPayMent/chapter8_4.shtml + /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/MiniProgramPay/chapter8_4.shtml + /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/NativePay/chapter8_4.shtml + /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/QuickPay/chapter8_4.shtml + /// REF: https://pay.weixin.qq.com/wiki/doc/api_external/en/apis/chapter5_1_13.shtml + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) + /// + /// + /// + /// + /// + public static async Task ExecuteQueryHKRefundsAsync(this WechatTenpayClient client, Models.QueryHKRefundsRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + if (request.MerchantId == null) + request.MerchantId = client.Credentials.MerchantId; + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Get, "refunds") + .SetQueryParam("mchid", request.MerchantId) + .SetQueryParam("out_trade_no", request.OutTradeNumber) + .SetQueryParam("transaction_id", request.TransactionId) + .SetQueryParam("offset", request.Offset) + .SetQueryParam("count", request.Limit); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteHKTransactionsExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteHKTransactionsExtensions.cs index 8e8c62ff..b7ce5584 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteHKTransactionsExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecuteHKTransactionsExtensions.cs @@ -14,7 +14,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// /// 异步调用 [POST] /transactions/app 接口。 /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/In-AppPay/chapter6_3.shtml - /// (请注意调用此接口需在构造 时指定单独的 。) + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) /// /// /// @@ -37,7 +37,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// /// 异步调用 [POST] /transactions/mweb 接口。 /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/H5Payment/chapter3_3.shtml - /// (请注意调用此接口需在构造 时指定单独的 。) + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) /// /// /// @@ -61,7 +61,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// 异步调用 [POST] /transactions/jsapi 接口。 /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/OfficialPayMent/chapter5_4.shtml /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/MiniProgramPay/chapter7_3.shtml - /// (请注意调用此接口需在构造 时指定单独的 。) + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) /// /// /// @@ -84,7 +84,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// /// 异步调用 [POST] /transactions/native 接口。 /// REF: https://https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/NativePay/chapter4_3.shtml - /// (请注意调用此接口需在构造 时指定单独的 。) + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) /// /// /// @@ -112,7 +112,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/MiniProgramPay/chapter8_1.shtml /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/NativePay/chapter8_1.shtml /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/QuickPay/chapter8_1.shtml - /// (请注意调用此接口需在构造 时指定单独的 。) + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) /// /// /// @@ -141,7 +141,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/MiniProgramPay/chapter8_1.shtml /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/NativePay/chapter8_1.shtml /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/QuickPay/chapter8_1.shtml - /// (请注意调用此接口需在构造 时指定单独的 。) + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) /// /// /// @@ -169,7 +169,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/OfficialPayMent/chapter8_6.shtml /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/MiniProgramPay/chapter8_6.shtml /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/NativePay/chapter8_6.shtml - /// (请注意调用此接口需在构造 时指定单独的 。) + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) /// /// /// @@ -192,7 +192,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// /// 异步调用 [POST] /transactions/out-trade-no/{out_trade_no}/reverse 接口。 /// REF: https://pay.weixin.qq.com/wiki/doc/api/wxpay/en/fusion_wallet/QuickPay/chapter3_4.shtml - /// (请注意调用此接口需在构造 时指定单独的 。) + /// (请注意此接口专为境外支付设计,调用时需在构造 时指定单独的 。) /// /// /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePAPExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePAPExtensions.cs index 0e312377..f667dd71 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePAPExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePAPExtensions.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Net.Http; using System.Threading; using System.Threading.Tasks; @@ -19,7 +19,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// /// /// - public static async Task ExecuteNotifyPAPPayContractsAsync(this WechatTenpayClient client, Models.NotifyPAPPayContractsRequest request, CancellationToken cancellationToken = default) + public static async Task ExecuteNotifyPAPPayContractAsync(this WechatTenpayClient client, Models.NotifyPAPPayContractRequest request, CancellationToken cancellationToken = default) { if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); @@ -30,7 +30,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 IFlurlRequest flurlReq = client .CreateRequest(request, HttpMethod.Post, "papay", "contracts", request.ContractId, "notify"); - return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePartnerPAPExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePartnerPAPExtensions.cs index 9cc8c77a..f8081ec0 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePartnerPAPExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePartnerPAPExtensions.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Net.Http; using System.Threading; using System.Threading.Tasks; @@ -19,7 +19,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// /// /// - public static async Task ExecuteNotifyPartnerPAPPayContractsAsync(this WechatTenpayClient client, Models.NotifyPartnerPAPPayContractsRequest request, CancellationToken cancellationToken = default) + public static async Task ExecuteNotifyPartnerPAPPayContractAsync(this WechatTenpayClient client, Models.NotifyPartnerPAPPayContractRequest request, CancellationToken cancellationToken = default) { if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); @@ -30,7 +30,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 IFlurlRequest flurlReq = client .CreateRequest(request, HttpMethod.Post, "partner-papay", "contracts", request.ContractId, "notify"); - return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePayrollCardExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePayrollCardExtensions.cs index e311d453..b9fef21d 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePayrollCardExtensions.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Extensions/WechatTenpayClientExecutePayrollCardExtensions.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Net.Http; using System.Threading; using System.Threading.Tasks; @@ -67,7 +67,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 /// /// /// - public static async Task ExecutePreOrderWithAuthPayrollCardAuthenticationAsync(this WechatTenpayClient client, Models.PreOrderWithAuthPayrollCardAuthenticationRequest request, CancellationToken cancellationToken = default) + public static async Task ExecutePreorderPayrollCardAuthenticationAsync(this WechatTenpayClient client, Models.PreorderPayrollCardAuthenticationRequest request, CancellationToken cancellationToken = default) { if (client is null) throw new ArgumentNullException(nameof(client)); if (request is null) throw new ArgumentNullException(nameof(request)); @@ -75,7 +75,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 IFlurlRequest flurlReq = client .CreateRequest(request, HttpMethod.Post, "payroll-card", "authentications", "pre-order-with-auth"); - return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); } /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/CreateHKPAPPayTransactionRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/CreateHKPAPPayTransactionRequest.cs new file mode 100644 index 00000000..7aced244 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/CreateHKPAPPayTransactionRequest.cs @@ -0,0 +1,116 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /papay/transactions 接口的请求。 + /// + public class CreateHKPAPPayTransactionRequest : WechatTenpayRequest + { + public static class Types + { + public class Amount + { + /// + /// 获取或设置总金额(单位:指定货币的最小单位)。 + /// + [Newtonsoft.Json.JsonProperty("total")] + [System.Text.Json.Serialization.JsonPropertyName("total")] + public int Total { get; set; } + + /// + /// 获取或设置币种。 + /// 默认值:HKD + /// + [Newtonsoft.Json.JsonProperty("currency")] + [System.Text.Json.Serialization.JsonPropertyName("currency")] + public string Currency { get; set; } = "HKD"; + } + + public class Scene + { + /// + /// 获取或设置商户端设备号。 + /// + [Newtonsoft.Json.JsonProperty("device_id")] + [System.Text.Json.Serialization.JsonPropertyName("device_id")] + public string? DeviceId { get; set; } + + /// + /// 获取或设置商户端设备 IP。 + /// + [Newtonsoft.Json.JsonProperty("device_ip")] + [System.Text.Json.Serialization.JsonPropertyName("device_ip")] + public string? DeviceIp { get; set; } + } + } + + /// + /// 获取或设置微信 AppId。 + /// + [Newtonsoft.Json.JsonProperty("appid")] + [System.Text.Json.Serialization.JsonPropertyName("appid")] + public virtual string AppId { get; set; } = string.Empty; + + /// + /// 获取或设置委托代扣协议 ID。 + /// + [Newtonsoft.Json.JsonProperty("contract_id")] + [System.Text.Json.Serialization.JsonPropertyName("contract_id")] + public string ContractId { get; set; } = string.Empty; + + /// + /// 获取或设置商品描述。 + /// + [Newtonsoft.Json.JsonProperty("description")] + [System.Text.Json.Serialization.JsonPropertyName("description")] + public string Description { get; set; } = string.Empty; + + /// + /// 获取或设置商户订单号。 + /// + [Newtonsoft.Json.JsonProperty("out_trade_no")] + [System.Text.Json.Serialization.JsonPropertyName("out_trade_no")] + public string OutTradeNumber { get; set; } = string.Empty; + + /// + /// 获取或设置附加数据。 + /// + [Newtonsoft.Json.JsonProperty("attach")] + [System.Text.Json.Serialization.JsonPropertyName("attach")] + public string? Attachment { get; set; } + + /// + /// 获取或设置回调通知地址。 + /// + [Newtonsoft.Json.JsonProperty("notify_url")] + [System.Text.Json.Serialization.JsonPropertyName("notify_url")] + public string? NotifyUrl { get; set; } + + /// + /// 获取或设置订单优惠标记。 + /// + [Newtonsoft.Json.JsonProperty("goods_tag")] + [System.Text.Json.Serialization.JsonPropertyName("goods_tag")] + public string? GoodsTag { get; set; } + + /// + /// 获取或设置金额信息。 + /// + [Newtonsoft.Json.JsonProperty("amount")] + [System.Text.Json.Serialization.JsonPropertyName("amount")] + public Types.Amount Amount { get; set; } = new Types.Amount(); + + /// + /// 获取或设置场景信息。 + /// + [Newtonsoft.Json.JsonProperty("scene_info")] + [System.Text.Json.Serialization.JsonPropertyName("scene_info")] + public Types.Scene? Scene { get; set; } + + /// + /// 获取或设置商户行业编码。 + /// + [Newtonsoft.Json.JsonProperty("merchant_category_code")] + [System.Text.Json.Serialization.JsonPropertyName("merchant_category_code")] + public string MerchantCategoryCode { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/CreateHKPAPPayTransactionResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/CreateHKPAPPayTransactionResponse.cs new file mode 100644 index 00000000..8fcfca1c --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/CreateHKPAPPayTransactionResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /papay/transactions 接口的响应。 + /// + public class CreateHKPAPPayTransactionResponse : GetHKPAPPayTransactionByOutTradeNumberResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/GetHKPAPPayContractByContractIdRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/GetHKPAPPayContractByContractIdRequest.cs new file mode 100644 index 00000000..8f0c0dab --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/GetHKPAPPayContractByContractIdRequest.cs @@ -0,0 +1,22 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /papay/contracts/{contract_id} 接口的请求。 + /// + public class GetHKPAPPayContractByContractIdRequest : WechatTenpayRequest + { + /// + /// 获取或设置微信 AppId。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public virtual string AppId { get; set; } = string.Empty; + + /// + /// 获取或设置委托代扣协议 ID。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string ContractId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/GetHKPAPPayContractByContractIdResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/GetHKPAPPayContractByContractIdResponse.cs new file mode 100644 index 00000000..5c1af3a5 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/GetHKPAPPayContractByContractIdResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /papay/contracts/{contract_id} 接口的响应。 + /// + public class GetHKPAPPayContractByContractIdResponse : GetHKPAPPayContractByOutContractCodeResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/GetHKPAPPayContractByOutContractCodeRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/GetHKPAPPayContractByOutContractCodeRequest.cs new file mode 100644 index 00000000..5515f399 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/GetHKPAPPayContractByOutContractCodeRequest.cs @@ -0,0 +1,29 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /papay/contracts/out-contract-code/{out_contract_code} 接口的请求。 + /// + public class GetHKPAPPayContractByOutContractCodeRequest : WechatTenpayRequest + { + /// + /// 获取或设置微信 AppId。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public virtual string AppId { get; set; } = string.Empty; + + /// + /// 获取或设置模板 ID。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public int PlanId { get; set; } + + /// + /// 获取或设置商户侧签约协议号。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string OutContractCode { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/GetHKPAPPayContractByOutContractCodeResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/GetHKPAPPayContractByOutContractCodeResponse.cs new file mode 100644 index 00000000..684340a5 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/GetHKPAPPayContractByOutContractCodeResponse.cs @@ -0,0 +1,98 @@ +using System; + +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /papay/contracts/out-contract-code/{out_contract_code} 接口的响应。 + /// + public class GetHKPAPPayContractByOutContractCodeResponse : WechatTenpayResponse + { + /// + /// 获取或设置微信商户号。 + /// + [Newtonsoft.Json.JsonProperty("mchid")] + [System.Text.Json.Serialization.JsonPropertyName("mchid")] + public virtual string MerchantId { get; set; } = default!; + + /// + /// 获取或设置微信 AppId。 + /// + [Newtonsoft.Json.JsonProperty("appid")] + [System.Text.Json.Serialization.JsonPropertyName("appid")] + public virtual string AppId { get; set; } = default!; + + /// + /// 获取或设置模板 ID。 + /// + [Newtonsoft.Json.JsonProperty("plan_id")] + [System.Text.Json.Serialization.JsonPropertyName("plan_id")] + public int PlanId { get; set; } + + /// + /// 获取或设置商户侧签约协议号。 + /// + [Newtonsoft.Json.JsonProperty("out_contract_code")] + [System.Text.Json.Serialization.JsonPropertyName("out_contract_code")] + public string OutContractCode { get; set; } = default!; + + /// + /// 获取或设置委托代扣协议 ID。 + /// + [Newtonsoft.Json.JsonProperty("contract_id")] + [System.Text.Json.Serialization.JsonPropertyName("contract_id")] + public string ContractId { get; set; } = default!; + + /// + /// 获取或设置用户账户展示名称。 + /// + [Newtonsoft.Json.JsonProperty("user_display_name")] + [System.Text.Json.Serialization.JsonPropertyName("user_display_name")] + public string UserDiaplayName { get; set; } = default!; + + /// + /// 获取或设置用户唯一标识。 + /// + [Newtonsoft.Json.JsonProperty("openid")] + [System.Text.Json.Serialization.JsonPropertyName("openid")] + public string OpenId { get; set; } = default!; + + /// + /// 获取或设置协议状态。 + /// + [Newtonsoft.Json.JsonProperty("state")] + [System.Text.Json.Serialization.JsonPropertyName("state")] + public string State { get; set; } = default!; + + /// + /// 获取或设置签署时间。 + /// + [Newtonsoft.Json.JsonProperty("signed_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RFC3339NullableDateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("signed_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RFC3339NullableDateTimeOffsetConverter))] + public DateTimeOffset? SignTime { get; set; } + + /// + /// 获取或设置解约时间。 + /// + [Newtonsoft.Json.JsonProperty("terminated_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RFC3339NullableDateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("terminated_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RFC3339NullableDateTimeOffsetConverter))] + public DateTimeOffset? TerminateTime { get; set; } + + /// + /// 获取或设置解约方式。 + /// + [Newtonsoft.Json.JsonProperty("termination_mode")] + [System.Text.Json.Serialization.JsonPropertyName("termination_mode")] + public string? TerminationMode { get; set; } + + /// + /// 获取或设置解约备注。 + /// + [Newtonsoft.Json.JsonProperty("termination_note")] + [System.Text.Json.Serialization.JsonPropertyName("termination_note")] + public string? TerminationNotes { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/GetHKPAPPayTransactionByIdRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/GetHKPAPPayTransactionByIdRequest.cs new file mode 100644 index 00000000..bf90daf9 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/GetHKPAPPayTransactionByIdRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /papay/transactions/{transaction_id} 接口的请求。 + /// + public class GetHKPAPPayTransactionByIdRequest : WechatTenpayRequest + { + /// + /// 获取或设置微信支付订单号。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string TransactionId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/GetHKPAPPayTransactionByIdResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/GetHKPAPPayTransactionByIdResponse.cs new file mode 100644 index 00000000..bb6c8d8b --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/GetHKPAPPayTransactionByIdResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /papay/transactions/{transaction_id} 接口的响应。 + /// + public class GetHKPAPPayTransactionByIdResponse : GetHKPAPPayTransactionByOutTradeNumberResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/GetHKPAPPayTransactionByOutTradeNumberRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/GetHKPAPPayTransactionByOutTradeNumberRequest.cs new file mode 100644 index 00000000..966345bd --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/GetHKPAPPayTransactionByOutTradeNumberRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /papay/transactions/out-trade-no/{out_trade_no} 接口的请求。 + /// + public class GetHKPAPPayTransactionByOutTradeNumberRequest : WechatTenpayRequest + { + /// + /// 获取或设置商户订单号。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string OutTradeNumber { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/GetHKPAPPayTransactionByOutTradeNumberResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/GetHKPAPPayTransactionByOutTradeNumberResponse.cs new file mode 100644 index 00000000..a69a3f50 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/GetHKPAPPayTransactionByOutTradeNumberResponse.cs @@ -0,0 +1,182 @@ +using System; + +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /papay/transactions/out-trade-no/{out_trade_no} 接口的响应。 + /// + public class GetHKPAPPayTransactionByOutTradeNumberResponse : WechatTenpayResponse + { + public static class Types + { + public class Payer : GetHKTransactionByOutTradeNumberResponse.Types.Payer + { + } + + public class Amount : GetHKTransactionByOutTradeNumberResponse.Types.Amount + { + public static new class Types + { + public class ExchangeRate : GetHKTransactionByOutTradeNumberResponse.Types.Amount.Types.ExchangeRate + { + } + } + + /// + /// 获取或设置汇率信息。 + /// + [Newtonsoft.Json.JsonProperty("exchange_rate")] + [System.Text.Json.Serialization.JsonPropertyName("exchange_rate")] + public new Types.ExchangeRate? ExchangeRate { get; set; } + } + + public class Scene + { + /// + /// 获取或设置商户端设备号。 + /// + [Newtonsoft.Json.JsonProperty("device_id")] + [System.Text.Json.Serialization.JsonPropertyName("device_id")] + public string? DeviceId { get; set; } + + /// + /// 获取或设置商户端设备 IP。 + /// + [Newtonsoft.Json.JsonProperty("device_ip")] + [System.Text.Json.Serialization.JsonPropertyName("device_ip")] + public string? DeviceIp { get; set; } + } + + public class Promotion : GetHKTransactionByOutTradeNumberResponse.Types.Promotion + { + public static new class Types + { + public class GoodsDetail : GetHKTransactionByOutTradeNumberResponse.Types.Promotion.Types.GoodsDetail + { + } + } + + /// + /// 获取或设置微信出资(单位:指定货币的最小单位)。 + /// + [Newtonsoft.Json.JsonProperty("wxpay_contribute_amount")] + [System.Text.Json.Serialization.JsonPropertyName("wxpay_contribute_amount")] + public new int? WechatpayContribute { get; set; } + + /// + /// 获取或设置单品列表。 + /// + [Newtonsoft.Json.JsonProperty("goods_detail")] + [System.Text.Json.Serialization.JsonPropertyName("goods_detail")] + public new Types.GoodsDetail[]? GoodsList { get; set; } + } + } + + /// + /// 获取或设置微信商户号。 + /// + [Newtonsoft.Json.JsonProperty("mchid")] + [System.Text.Json.Serialization.JsonPropertyName("mchid")] + public virtual string MerchantId { get; set; } = default!; + + /// + /// 获取或设置微信 AppId。 + /// + [Newtonsoft.Json.JsonProperty("appid")] + [System.Text.Json.Serialization.JsonPropertyName("appid")] + public virtual string AppId { get; set; } = default!; + + /// + /// 获取或设置商户订单号。 + /// + [Newtonsoft.Json.JsonProperty("out_trade_no")] + [System.Text.Json.Serialization.JsonPropertyName("out_trade_no")] + public string OutTradeNumber { get; set; } = default!; + + /// + /// 获取或设置微信支付订单号。 + /// + [Newtonsoft.Json.JsonProperty("transaction_id")] + [System.Text.Json.Serialization.JsonPropertyName("transaction_id")] + public string? TransactionId { get; set; } + + /// + /// 获取或设置交易类型。 + /// + [Newtonsoft.Json.JsonProperty("trade_type")] + [System.Text.Json.Serialization.JsonPropertyName("trade_type")] + public string TradeType { get; set; } = default!; + + /// + /// 获取或设置交易状态。 + /// + [Newtonsoft.Json.JsonProperty("trade_state")] + [System.Text.Json.Serialization.JsonPropertyName("trade_state")] + public string TradeState { get; set; } = default!; + + /// + /// 获取或设置交易状态描述。 + /// + [Newtonsoft.Json.JsonProperty("trade_state_desc")] + [System.Text.Json.Serialization.JsonPropertyName("trade_state_desc")] + public string TradeStateDescription { get; set; } = default!; + + /// + /// 获取或设置付款银行类型。 + /// + [Newtonsoft.Json.JsonProperty("bank_type")] + [System.Text.Json.Serialization.JsonPropertyName("bank_type")] + public string? BankType { get; set; } + + /// + /// 获取或设置附加数据。 + /// + [Newtonsoft.Json.JsonProperty("attach")] + [System.Text.Json.Serialization.JsonPropertyName("attach")] + public string? Attachment { get; set; } + + /// + /// 获取或设置支付完成时间。 + /// + [Newtonsoft.Json.JsonProperty("success_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RFC3339NullableDateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("success_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RFC3339NullableDateTimeOffsetConverter))] + public DateTimeOffset? SuccessTime { get; set; } + + /// + /// 获取或设置支付者信息。 + /// + [Newtonsoft.Json.JsonProperty("payer")] + [System.Text.Json.Serialization.JsonPropertyName("payer")] + public Types.Payer? Payer { get; set; } + + /// + /// 获取或设置金额信息。 + /// + [Newtonsoft.Json.JsonProperty("amount")] + [System.Text.Json.Serialization.JsonPropertyName("amount")] + public Types.Amount Amount { get; set; } = default!; + + /// + /// 获取或设置场景信息。 + /// + [Newtonsoft.Json.JsonProperty("scene_info")] + [System.Text.Json.Serialization.JsonPropertyName("scene_info")] + public Types.Scene? Scene { get; set; } + + /// + /// 获取或设置优惠信息。 + /// + [Newtonsoft.Json.JsonProperty("promotion_detail")] + [System.Text.Json.Serialization.JsonPropertyName("promotion_detail")] + public Types.Promotion[]? PromotionList { get; set; } + + /// + /// 获取或设置商户行业编码。 + /// + [Newtonsoft.Json.JsonProperty("merchant_category_code")] + [System.Text.Json.Serialization.JsonPropertyName("merchant_category_code")] + public string MerchantCategoryCode { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustAppRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustAppRequest.cs new file mode 100644 index 00000000..29644641 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustAppRequest.cs @@ -0,0 +1,75 @@ +using System; + +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /papay/contracts/app-pre-entrust-sign 接口的请求。 + /// + public class PresignHKPAPPayContractEntrustAppRequest : WechatTenpayRequest + { + /// + /// 获取或设置微信 AppId。 + /// + [Newtonsoft.Json.JsonProperty("appid")] + [System.Text.Json.Serialization.JsonPropertyName("appid")] + public virtual string AppId { get; set; } = string.Empty; + + /// + /// 获取或设置模板 ID。 + /// + [Newtonsoft.Json.JsonProperty("plan_id")] + [System.Text.Json.Serialization.JsonPropertyName("plan_id")] + public int PlanId { get; set; } + + /// + /// 获取或设置商户侧签约协议号。 + /// + [Newtonsoft.Json.JsonProperty("out_contract_code")] + [System.Text.Json.Serialization.JsonPropertyName("out_contract_code")] + public string OutContractCode { get; set; } = string.Empty; + + /// + /// 获取或设置用户账户展示名称。 + /// + [Newtonsoft.Json.JsonProperty("user_display_name")] + [System.Text.Json.Serialization.JsonPropertyName("user_display_name")] + public string UserDiaplayName { get; set; } = string.Empty; + + /// + /// 获取或设置回调通知地址。 + /// + [Newtonsoft.Json.JsonProperty("success_notify_url")] + [System.Text.Json.Serialization.JsonPropertyName("success_notify_url")] + public string NotifyUrl { get; set; } = string.Empty; + + /// + /// 获取或设置用户唯一标识。 + /// + [Newtonsoft.Json.JsonProperty("openid")] + [System.Text.Json.Serialization.JsonPropertyName("openid")] + public string OpenId { get; set; } = string.Empty; + + /// + /// 获取或设置用户终端 IP。 + /// + [Newtonsoft.Json.JsonProperty("user_client_ip")] + [System.Text.Json.Serialization.JsonPropertyName("user_client_ip")] + public string? ClientIp { get; set; } = string.Empty; + + /// + /// 获取或设置过期时间。 + /// + [Newtonsoft.Json.JsonProperty("expired_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RFC3339NullableDateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("expired_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RFC3339NullableDateTimeOffsetConverter))] + public DateTimeOffset? ExpireTime { get; set; } + + /// + /// 获取或设置签约后跳转地址。 + /// + [Newtonsoft.Json.JsonProperty("return_url")] + [System.Text.Json.Serialization.JsonPropertyName("return_url")] + public string? ReturnUrl { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustAppResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustAppResponse.cs new file mode 100644 index 00000000..ff8e41b5 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustAppResponse.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /papay/contracts/app-pre-entrust-sign 接口的响应。 + /// + public class PresignHKPAPPayContractEntrustAppResponse : WechatTenpayResponse + { + /// + /// 获取或设置委托代扣签约会话 ID。 + /// + [Newtonsoft.Json.JsonProperty("session_id")] + [System.Text.Json.Serialization.JsonPropertyName("session_id")] + public string SessionId { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustH5Request.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustH5Request.cs new file mode 100644 index 00000000..fd1bce1f --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustH5Request.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /papay/contracts/h5-pre-entrust-sign 接口的请求。 + /// + public class PresignHKPAPPayContractEntrustH5Request : PresignHKPAPPayContractEntrustAppRequest + { + /// + /// 获取或设置签约后跳转 AppId。 + /// + [Newtonsoft.Json.JsonProperty("return_appid")] + [System.Text.Json.Serialization.JsonPropertyName("return_appid")] + public string? ReturnAppId { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustH5Response.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustH5Response.cs new file mode 100644 index 00000000..f9c940e5 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustH5Response.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /papay/contracts/h5-pre-entrust-sign 接口的响应。 + /// + public class PresignHKPAPPayContractEntrustH5Response : WechatTenpayResponse + { + /// + /// 获取或设置委托代扣签约 URL。 + /// + [Newtonsoft.Json.JsonProperty("sign_url")] + [System.Text.Json.Serialization.JsonPropertyName("sign_url")] + public string SignUrl { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustJsapiRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustJsapiRequest.cs new file mode 100644 index 00000000..53b8a541 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustJsapiRequest.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /papay/contracts/jsapi-pre-entrust-sign 接口的请求。 + /// + public class PresignHKPAPPayContractEntrustJsapiRequest : PresignHKPAPPayContractEntrustAppRequest + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustJsapiResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustJsapiResponse.cs new file mode 100644 index 00000000..e770aa12 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustJsapiResponse.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /papay/contracts/jsapi-pre-entrust-sign 接口的响应。 + /// + public class PresignHKPAPPayContractEntrustJsapiResponse : WechatTenpayResponse + { + /// + /// 获取或设置委托代扣签约 URL。 + /// + [Newtonsoft.Json.JsonProperty("sign_url")] + [System.Text.Json.Serialization.JsonPropertyName("sign_url")] + public string SignUrl { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustMiniProgramRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustMiniProgramRequest.cs new file mode 100644 index 00000000..e6b499e1 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustMiniProgramRequest.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /papay/contracts/miniprogram-pre-entrust-sign 接口的请求。 + /// + public class PresignHKPAPPayContractEntrustMiniProgramRequest : PresignHKPAPPayContractEntrustAppRequest + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustMiniProgramResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustMiniProgramResponse.cs new file mode 100644 index 00000000..ed3f099d --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustMiniProgramResponse.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /papay/contracts/miniprogram-pre-entrust-sign 接口的响应。 + /// + public class PresignHKPAPPayContractEntrustMiniProgramResponse : WechatTenpayResponse + { + /// + /// 获取或设置委托代扣会话 ID。 + /// + [Newtonsoft.Json.JsonProperty("session_id")] + [System.Text.Json.Serialization.JsonPropertyName("session_id")] + public string SessionId { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustWebRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustWebRequest.cs new file mode 100644 index 00000000..221e4792 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustWebRequest.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /papay/contracts/web-pre-entrust-sign 接口的请求。 + /// + public class PresignHKPAPPayContractEntrustWebRequest : PresignHKPAPPayContractEntrustAppRequest + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustWebResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustWebResponse.cs new file mode 100644 index 00000000..8cf2304e --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/PresignHKPAPPayContractEntrustWebResponse.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /papay/contracts/web-pre-entrust-sign 接口的响应。 + /// + public class PresignHKPAPPayContractEntrustWebResponse : WechatTenpayResponse + { + /// + /// 获取或设置委托代扣签约 URL。 + /// + [Newtonsoft.Json.JsonProperty("sign_url")] + [System.Text.Json.Serialization.JsonPropertyName("sign_url")] + public string SignUrl { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/ReverseHKPAPPayTransactionRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/ReverseHKPAPPayTransactionRequest.cs new file mode 100644 index 00000000..d61a1c50 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/ReverseHKPAPPayTransactionRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /papay/transactions/out-trade-no/{out_trade_no}/reverse 接口的请求。 + /// + public class ReverseHKPAPPayTransactionRequest : WechatTenpayRequest + { + /// + /// 获取或设置商户订单号。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string OutTradeNumber { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/ReverseHKPAPPayTransactionResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/ReverseHKPAPPayTransactionResponse.cs new file mode 100644 index 00000000..b4bdfc57 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/ReverseHKPAPPayTransactionResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /papay/transactions/out-trade-no/{out_trade_no}/reverse 接口的响应。 + /// + public class ReverseHKPAPPayTransactionResponse : WechatTenpayResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/TerminateHKPAPPayContractRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/TerminateHKPAPPayContractRequest.cs new file mode 100644 index 00000000..4be56df5 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/TerminateHKPAPPayContractRequest.cs @@ -0,0 +1,29 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /papay/contracts/{contract_id}/terminate 接口的请求。 + /// + public class TerminateHKPAPPayContractRequest : WechatTenpayRequest + { + /// + /// 获取或设置微信 AppId。 + /// + [Newtonsoft.Json.JsonProperty("appid")] + [System.Text.Json.Serialization.JsonPropertyName("appid")] + public virtual string AppId { get; set; } = string.Empty; + + /// + /// 获取或设置委托代扣协议 ID。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string ContractId { get; set; } = string.Empty; + + /// + /// 获取或设置解约备注。 + /// + [Newtonsoft.Json.JsonProperty("termination_note")] + [System.Text.Json.Serialization.JsonPropertyName("termination_note")] + public string? TerminationNotes { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/TerminateHKPAPPayContractResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/TerminateHKPAPPayContractResponse.cs new file mode 100644 index 00000000..faf7f8b3 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPAPPay/TerminateHKPAPPayContractResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /papay/contracts/{contract_id}/terminate 接口的响应。 + /// + public class TerminateHKPAPPayContractResponse : WechatTenpayResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/CreateHKPartnerPAPPayTransactionRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/CreateHKPartnerPAPPayTransactionRequest.cs new file mode 100644 index 00000000..b2dd0496 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/CreateHKPartnerPAPPayTransactionRequest.cs @@ -0,0 +1,54 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /papay/transactions 接口的请求。 + /// + public class CreateHKPartnerPAPPayTransactionRequest : CreateHKPAPPayTransactionRequest + { + public static new class Types + { + public class Amount : CreateHKPAPPayTransactionRequest.Types.Amount + { + } + + public class Scene : CreateHKPAPPayTransactionRequest.Types.Scene + { + } + } + + /// + /// 获取或设置微信 AppId。 + /// + [Newtonsoft.Json.JsonProperty("sp_appid")] + [System.Text.Json.Serialization.JsonPropertyName("sp_appid")] + public override string AppId { get; set; } = string.Empty; + + /// + /// 获取或设置子商户号。 + /// + [Newtonsoft.Json.JsonProperty("sub_mchid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_mchid")] + public string SubMerchantId { get; set; } = string.Empty; + + /// + /// 获取或设置子商户 AppId。 + /// + [Newtonsoft.Json.JsonProperty("sub_appid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_appid")] + public string? SubAppId { get; set; } + + /// + /// 获取或设置金额信息。 + /// + [Newtonsoft.Json.JsonProperty("amount")] + [System.Text.Json.Serialization.JsonPropertyName("amount")] + public new Types.Amount Amount { get; set; } = new Types.Amount(); + + /// + /// 获取或设置场景信息。 + /// + [Newtonsoft.Json.JsonProperty("scene_info")] + [System.Text.Json.Serialization.JsonPropertyName("scene_info")] + public new Types.Scene? Scene { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/CreateHKPartnerPAPPayTransactionResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/CreateHKPartnerPAPPayTransactionResponse.cs new file mode 100644 index 00000000..01a42566 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/CreateHKPartnerPAPPayTransactionResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /papay/transactions 接口的响应。 + /// + public class CreateHKPartnerPAPPayTransactionResponse : GetHKPartnerPAPPayTransactionByOutTradeNumberResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/GetHKPartnerPAPPayContractByContractIdRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/GetHKPartnerPAPPayContractByContractIdRequest.cs new file mode 100644 index 00000000..bbd50da0 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/GetHKPartnerPAPPayContractByContractIdRequest.cs @@ -0,0 +1,22 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /papay/contracts/{contract_id} 接口的请求。 + /// + public class GetHKPartnerPAPPayContractByContractIdRequest : GetHKPAPPayContractByContractIdRequest + { + /// + /// 获取或设置子商户号。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string SubMerchantId { get; set; } = string.Empty; + + /// + /// 获取或设置子商户 AppId。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string? SubAppId { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/GetHKPartnerPAPPayContractByContractIdResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/GetHKPartnerPAPPayContractByContractIdResponse.cs new file mode 100644 index 00000000..515ba5a3 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/GetHKPartnerPAPPayContractByContractIdResponse.cs @@ -0,0 +1,36 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /papay/contracts/{contract_id} 接口的响应。 + /// + public class GetHKPartnerPAPPayContractByContractIdResponse : GetHKPAPPayContractByContractIdResponse + { + /// + /// + /// + [Newtonsoft.Json.JsonProperty("sp_mchid")] + [System.Text.Json.Serialization.JsonPropertyName("sp_mchid")] + public override string MerchantId { get; set; } = default!; + + /// + /// + /// + [Newtonsoft.Json.JsonProperty("sp_appid")] + [System.Text.Json.Serialization.JsonPropertyName("sp_appid")] + public override string AppId { get; set; } = default!; + + /// + /// 获取或设置子商户号。 + /// + [Newtonsoft.Json.JsonProperty("sub_mchid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_mchid")] + public string SubMerchantId { get; set; } = default!; + + /// + /// 获取或设置子商户 AppId。 + /// + [Newtonsoft.Json.JsonProperty("sub_appid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_appid")] + public string? SubAppId { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/GetHKPartnerPAPPayContractByOutContractCodeRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/GetHKPartnerPAPPayContractByOutContractCodeRequest.cs new file mode 100644 index 00000000..a0d7da17 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/GetHKPartnerPAPPayContractByOutContractCodeRequest.cs @@ -0,0 +1,22 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /papay/contracts/out-contract-code/{out_contract_code} 接口的请求。 + /// + public class GetHKPartnerPAPPayContractByOutContractCodeRequest : GetHKPAPPayContractByOutContractCodeRequest + { + /// + /// 获取或设置子商户号。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string SubMerchantId { get; set; } = string.Empty; + + /// + /// 获取或设置子商户 AppId。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string? SubAppId { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/GetHKPartnerPAPPayContractByOutContractCodeResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/GetHKPartnerPAPPayContractByOutContractCodeResponse.cs new file mode 100644 index 00000000..1d22492e --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/GetHKPartnerPAPPayContractByOutContractCodeResponse.cs @@ -0,0 +1,36 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /papay/contracts/out-contract-code/{out_contract_code} 接口的响应。 + /// + public class GetHKPartnerPAPPayContractByOutContractCodeResponse : GetHKPAPPayContractByOutContractCodeResponse + { + /// + /// + /// + [Newtonsoft.Json.JsonProperty("sp_mchid")] + [System.Text.Json.Serialization.JsonPropertyName("sp_mchid")] + public override string MerchantId { get; set; } = default!; + + /// + /// + /// + [Newtonsoft.Json.JsonProperty("sp_appid")] + [System.Text.Json.Serialization.JsonPropertyName("sp_appid")] + public override string AppId { get; set; } = default!; + + /// + /// 获取或设置子商户号。 + /// + [Newtonsoft.Json.JsonProperty("sub_mchid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_mchid")] + public string SubMerchantId { get; set; } = default!; + + /// + /// 获取或设置子商户 AppId。 + /// + [Newtonsoft.Json.JsonProperty("sub_appid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_appid")] + public string? SubAppId { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/GetHKPartnerPAPPayTransactionByIdRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/GetHKPartnerPAPPayTransactionByIdRequest.cs new file mode 100644 index 00000000..a37450b0 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/GetHKPartnerPAPPayTransactionByIdRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /papay/transactions/{transaction_id} 接口的请求。 + /// + public class GetHKPartnerPAPPayTransactionByIdRequest : GetHKPAPPayTransactionByIdRequest + { + /// + /// 获取或设置子商户号。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string SubMerchantId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/GetHKPartnerPAPPayTransactionByIdResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/GetHKPartnerPAPPayTransactionByIdResponse.cs new file mode 100644 index 00000000..bf5a2c45 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/GetHKPartnerPAPPayTransactionByIdResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /papay/transactions/{transaction_id} 接口的响应。 + /// + public class GetHKPartnerPAPPayTransactionByIdResponse : GetHKPartnerPAPPayTransactionByOutTradeNumberResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/GetHKPartnerPAPPayTransactionByOutTradeNumberRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/GetHKPartnerPAPPayTransactionByOutTradeNumberRequest.cs new file mode 100644 index 00000000..59114566 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/GetHKPartnerPAPPayTransactionByOutTradeNumberRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /papay/transactions/out-trade-no/{out_trade_no} 接口的请求。 + /// + public class GetHKPartnerPAPPayTransactionByOutTradeNumberRequest : GetHKPAPPayTransactionByOutTradeNumberRequest + { + /// + /// 获取或设置子商户号。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string SubMerchantId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/GetHKPartnerPAPPayTransactionByOutTradeNumberResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/GetHKPartnerPAPPayTransactionByOutTradeNumberResponse.cs new file mode 100644 index 00000000..32042580 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/GetHKPartnerPAPPayTransactionByOutTradeNumberResponse.cs @@ -0,0 +1,129 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /papay/transactions/out-trade-no/{out_trade_no} 接口的响应。 + /// + public class GetHKPartnerPAPPayTransactionByOutTradeNumberResponse : GetHKPAPPayTransactionByOutTradeNumberResponse + { + public static class Types + { + public class Payer : GetHKPartnerTransactionByOutTradeNumberResponse.Types.Payer + { + } + + public class Amount : GetHKPartnerTransactionByOutTradeNumberResponse.Types.Amount + { + public static new class Types + { + public class ExchangeRate : GetHKPartnerTransactionByOutTradeNumberResponse.Types.Amount.Types.ExchangeRate + { + } + } + + /// + /// 获取或设置汇率信息。 + /// + [Newtonsoft.Json.JsonProperty("exchange_rate")] + [System.Text.Json.Serialization.JsonPropertyName("exchange_rate")] + public new Types.ExchangeRate? ExchangeRate { get; set; } + } + + public class Scene + { + /// + /// 获取或设置商户端设备号。 + /// + [Newtonsoft.Json.JsonProperty("device_id")] + [System.Text.Json.Serialization.JsonPropertyName("device_id")] + public string? DeviceId { get; set; } + + /// + /// 获取或设置商户端设备 IP。 + /// + [Newtonsoft.Json.JsonProperty("device_ip")] + [System.Text.Json.Serialization.JsonPropertyName("device_ip")] + public string? DeviceIp { get; set; } + } + + public class Promotion : GetHKPartnerTransactionByOutTradeNumberResponse.Types.Promotion + { + public static new class Types + { + public class GoodsDetail : GetHKPartnerTransactionByOutTradeNumberResponse.Types.Promotion.Types.GoodsDetail + { + } + } + + /// + /// 获取或设置微信出资(单位:指定货币的最小单位)。 + /// + [Newtonsoft.Json.JsonProperty("wxpay_contribute_amount")] + [System.Text.Json.Serialization.JsonPropertyName("wxpay_contribute_amount")] + public new int? WechatpayContribute { get; set; } + + /// + /// 获取或设置单品列表。 + /// + [Newtonsoft.Json.JsonProperty("goods_detail")] + [System.Text.Json.Serialization.JsonPropertyName("goods_detail")] + public new Types.GoodsDetail[]? GoodsList { get; set; } + } + } + + /// + /// 获取或设置微信商户号。 + /// + [Newtonsoft.Json.JsonProperty("sp_mchid")] + [System.Text.Json.Serialization.JsonPropertyName("sp_mchid")] + public override string MerchantId { get; set; } = default!; + + /// + /// 获取或设置微信 AppId。 + /// + [Newtonsoft.Json.JsonProperty("sp_appid")] + [System.Text.Json.Serialization.JsonPropertyName("sp_appid")] + public override string AppId { get; set; } = default!; + + /// + /// 获取或设置子商户号。 + /// + [Newtonsoft.Json.JsonProperty("sub_mchid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_mchid")] + public string SubMerchantId { get; set; } = default!; + + /// + /// 获取或设置子商户 AppId。 + /// + [Newtonsoft.Json.JsonProperty("sub_appid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_appid")] + public string? SubAppId { get; set; } + + /// + /// 获取或设置支付者信息。 + /// + [Newtonsoft.Json.JsonProperty("payer")] + [System.Text.Json.Serialization.JsonPropertyName("payer")] + public new Types.Payer? Payer { get; set; } + + /// + /// 获取或设置金额信息。 + /// + [Newtonsoft.Json.JsonProperty("amount")] + [System.Text.Json.Serialization.JsonPropertyName("amount")] + public new Types.Amount Amount { get; set; } = default!; + + /// + /// 获取或设置场景信息。 + /// + [Newtonsoft.Json.JsonProperty("scene_info")] + [System.Text.Json.Serialization.JsonPropertyName("scene_info")] + public new Types.Scene? Scene { get; set; } + + /// + /// 获取或设置优惠信息。 + /// + [Newtonsoft.Json.JsonProperty("promotion_detail")] + [System.Text.Json.Serialization.JsonPropertyName("promotion_detail")] + public new Types.Promotion[]? PromotionList { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustAppRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustAppRequest.cs new file mode 100644 index 00000000..c933d9a5 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustAppRequest.cs @@ -0,0 +1,29 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /papay/contracts/app-pre-entrust-sign 接口的请求。 + /// + public class PresignHKPartnerPAPPayContractEntrustAppRequest : PresignHKPAPPayContractEntrustAppRequest + { + /// + /// + /// + [Newtonsoft.Json.JsonProperty("sp_appid")] + [System.Text.Json.Serialization.JsonPropertyName("sp_appid")] + public override string AppId { get; set; } = string.Empty; + + /// + /// 获取或设置子商户号。 + /// + [Newtonsoft.Json.JsonProperty("sub_mchid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_mchid")] + public string SubMerchantId { get; set; } = string.Empty; + + /// + /// 获取或设置子商户 AppId。 + /// + [Newtonsoft.Json.JsonProperty("sub_appid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_appid")] + public string? SubAppId { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustAppResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustAppResponse.cs new file mode 100644 index 00000000..f03ed542 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustAppResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /papay/contracts/app-pre-entrust-sign 接口的响应。 + /// + public class PresignHKPartnerPAPPayContractEntrustAppResponse : PresignHKPAPPayContractEntrustAppResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustH5Request.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustH5Request.cs new file mode 100644 index 00000000..8b64ada2 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustH5Request.cs @@ -0,0 +1,29 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /papay/contracts/h5-pre-entrust-sign 接口的请求。 + /// + public class PresignHKPartnerPAPPayContractEntrustH5Request : PresignHKPAPPayContractEntrustH5Request + { + /// + /// + /// + [Newtonsoft.Json.JsonProperty("sp_appid")] + [System.Text.Json.Serialization.JsonPropertyName("sp_appid")] + public override string AppId { get; set; } = string.Empty; + + /// + /// 获取或设置子商户号。 + /// + [Newtonsoft.Json.JsonProperty("sub_mchid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_mchid")] + public string SubMerchantId { get; set; } = string.Empty; + + /// + /// 获取或设置子商户 AppId。 + /// + [Newtonsoft.Json.JsonProperty("sub_appid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_appid")] + public string? SubAppId { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustH5Response.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustH5Response.cs new file mode 100644 index 00000000..2eca2147 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustH5Response.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /papay/contracts/h5-pre-entrust-sign 接口的响应。 + /// + public class PresignHKPartnerPAPPayContractEntrustH5Response : PresignHKPAPPayContractEntrustH5Response + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustJsapiRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustJsapiRequest.cs new file mode 100644 index 00000000..099d0297 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustJsapiRequest.cs @@ -0,0 +1,29 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /papay/contracts/jsapi-pre-entrust-sign 接口的请求。 + /// + public class PresignHKPartnerPAPPayContractEntrustJsapiRequest : PresignHKPAPPayContractEntrustJsapiRequest + { + /// + /// + /// + [Newtonsoft.Json.JsonProperty("sp_appid")] + [System.Text.Json.Serialization.JsonPropertyName("sp_appid")] + public override string AppId { get; set; } = string.Empty; + + /// + /// 获取或设置子商户号。 + /// + [Newtonsoft.Json.JsonProperty("sub_mchid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_mchid")] + public string SubMerchantId { get; set; } = string.Empty; + + /// + /// 获取或设置子商户 AppId。 + /// + [Newtonsoft.Json.JsonProperty("sub_appid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_appid")] + public string? SubAppId { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustJsapiResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustJsapiResponse.cs new file mode 100644 index 00000000..f745f8aa --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustJsapiResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /papay/contracts/jsapi-pre-entrust-sign 接口的响应。 + /// + public class PresignHKPartnerPAPPayContractEntrustJsapiResponse : PresignHKPAPPayContractEntrustJsapiResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustMiniProgramRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustMiniProgramRequest.cs new file mode 100644 index 00000000..53c5962a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustMiniProgramRequest.cs @@ -0,0 +1,29 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /papay/contracts/miniprogram-pre-entrust-sign 接口的请求。 + /// + public class PresignHKPartnerPAPPayContractEntrustMiniProgramRequest : PresignHKPAPPayContractEntrustMiniProgramRequest + { + /// + /// + /// + [Newtonsoft.Json.JsonProperty("sp_appid")] + [System.Text.Json.Serialization.JsonPropertyName("sp_appid")] + public override string AppId { get; set; } = string.Empty; + + /// + /// 获取或设置子商户号。 + /// + [Newtonsoft.Json.JsonProperty("sub_mchid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_mchid")] + public string SubMerchantId { get; set; } = string.Empty; + + /// + /// 获取或设置子商户 AppId。 + /// + [Newtonsoft.Json.JsonProperty("sub_appid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_appid")] + public string? SubAppId { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustMiniProgramResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustMiniProgramResponse.cs new file mode 100644 index 00000000..67b79ad2 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustMiniProgramResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /papay/contracts/miniprogram-pre-entrust-sign 接口的响应。 + /// + public class PresignHKPartnerPAPPayContractEntrustMiniProgramResponse : PresignHKPAPPayContractEntrustMiniProgramResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustWebRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustWebRequest.cs new file mode 100644 index 00000000..624495e1 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustWebRequest.cs @@ -0,0 +1,29 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /papay/contracts/web-pre-entrust-sign 接口的请求。 + /// + public class PresignHKPartnerPAPPayContractEntrustWebRequest : PresignHKPAPPayContractEntrustWebRequest + { + /// + /// + /// + [Newtonsoft.Json.JsonProperty("sp_appid")] + [System.Text.Json.Serialization.JsonPropertyName("sp_appid")] + public override string AppId { get; set; } = string.Empty; + + /// + /// 获取或设置子商户号。 + /// + [Newtonsoft.Json.JsonProperty("sub_mchid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_mchid")] + public string SubMerchantId { get; set; } = string.Empty; + + /// + /// 获取或设置子商户 AppId。 + /// + [Newtonsoft.Json.JsonProperty("sub_appid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_appid")] + public string? SubAppId { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustWebResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustWebResponse.cs new file mode 100644 index 00000000..8272ba13 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustWebResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /papay/contracts/web-pre-entrust-sign 接口的响应。 + /// + public class PresignHKPartnerPAPPayContractEntrustWebResponse : PresignHKPAPPayContractEntrustWebResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/ReverseHKPartnerPAPPayTransactionRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/ReverseHKPartnerPAPPayTransactionRequest.cs new file mode 100644 index 00000000..5fb211eb --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/ReverseHKPartnerPAPPayTransactionRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /papay/transactions/out-trade-no/{out_trade_no}/reverse 接口的请求。 + /// + public class ReverseHKPartnerPAPPayTransactionRequest : ReverseHKPAPPayTransactionRequest + { + /// + /// 获取或设置子商户号。 + /// + [Newtonsoft.Json.JsonProperty("sub_mchid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_mchid")] + public string SubMerchantId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/ReverseHKPartnerPAPPayTransactionResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/ReverseHKPartnerPAPPayTransactionResponse.cs new file mode 100644 index 00000000..1e4a0b9a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/ReverseHKPartnerPAPPayTransactionResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /papay/transactions/out-trade-no/{out_trade_no}/reverse 接口的响应。 + /// + public class ReverseHKPartnerPAPPayTransactionResponse : ReverseHKPAPPayTransactionResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/TerminateHKPartnerPAPPayContractRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/TerminateHKPartnerPAPPayContractRequest.cs new file mode 100644 index 00000000..b68b87bd --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/TerminateHKPartnerPAPPayContractRequest.cs @@ -0,0 +1,29 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /papay/contracts/{contract_id}/terminate 接口的请求。 + /// + public class TerminateHKPartnerPAPPayContractRequest : TerminateHKPAPPayContractRequest + { + /// + /// + /// + [Newtonsoft.Json.JsonProperty("sp_appid")] + [System.Text.Json.Serialization.JsonPropertyName("sp_appid")] + public override string AppId { get; set; } = string.Empty; + + /// + /// 获取或设置子商户号。 + /// + [Newtonsoft.Json.JsonProperty("sub_mchid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_mchid")] + public string SubMerchantId { get; set; } = string.Empty; + + /// + /// 获取或设置子商户 AppId。 + /// + [Newtonsoft.Json.JsonProperty("sub_appid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_appid")] + public string? SubAppId { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/TerminateHKPartnerPAPPayContractResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/TerminateHKPartnerPAPPayContractResponse.cs new file mode 100644 index 00000000..5e66ab59 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerPAPPay/TerminateHKPartnerPAPPayContractResponse.cs @@ -0,0 +1,9 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [POST] /papay/contracts/{contract_id}/terminate 接口的响应。 + /// + public class TerminateHKPartnerPAPPayContractResponse : TerminateHKPAPPayContractResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerRefund/GetHKPartnerRefundByIdRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerRefund/GetHKPartnerRefundByIdRequest.cs index 0a97a26e..706ca82d 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerRefund/GetHKPartnerRefundByIdRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerRefund/GetHKPartnerRefundByIdRequest.cs @@ -1,29 +1,15 @@ -namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models { /// /// 表示 [GET] /refunds/id/{refund_id} 接口的请求。 /// - public class GetHKPartnerRefundByIdRequest : WechatTenpayRequest + public class GetHKPartnerRefundByIdRequest : GetHKRefundByIdRequest { - /// - /// 获取或设置微信商户号。如果不指定将使用构造 时的 参数。 - /// - [Newtonsoft.Json.JsonIgnore] - [System.Text.Json.Serialization.JsonIgnore] - public string? MerchantId { get; set; } - /// /// 获取或设置子商户号。 /// [Newtonsoft.Json.JsonIgnore] [System.Text.Json.Serialization.JsonIgnore] public string SubMerchantId { get; set; } = string.Empty; - - /// - /// 获取或设置微信支付退款单号。 - /// - [Newtonsoft.Json.JsonIgnore] - [System.Text.Json.Serialization.JsonIgnore] - public string RefundId { get; set; } = string.Empty; } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerRefund/GetHKPartnerRefundByOutRefundNumberRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerRefund/GetHKPartnerRefundByOutRefundNumberRequest.cs index 9b8a948b..e9b4971f 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerRefund/GetHKPartnerRefundByOutRefundNumberRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerRefund/GetHKPartnerRefundByOutRefundNumberRequest.cs @@ -1,29 +1,15 @@ -namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models { /// /// 表示 [GET] /refunds/out-refund-no/{out_refund_no} 接口的请求。 /// - public class GetHKPartnerRefundByOutRefundNumberRequest : WechatTenpayRequest + public class GetHKPartnerRefundByOutRefundNumberRequest : GetHKRefundByOutRefundNumberRequest { - /// - /// 获取或设置微信商户号。如果不指定将使用构造 时的 参数。 - /// - [Newtonsoft.Json.JsonIgnore] - [System.Text.Json.Serialization.JsonIgnore] - public string? MerchantId { get; set; } - /// /// 获取或设置子商户号。 /// [Newtonsoft.Json.JsonIgnore] [System.Text.Json.Serialization.JsonIgnore] public string SubMerchantId { get; set; } = string.Empty; - - /// - /// 获取或设置微信支付订单号。 - /// - [Newtonsoft.Json.JsonIgnore] - [System.Text.Json.Serialization.JsonIgnore] - public string OutRefundNumber { get; set; } = string.Empty; } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerRefund/QueryHKPartnerRefundsRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerRefund/QueryHKPartnerRefundsRequest.cs new file mode 100644 index 00000000..1a3b71ba --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerRefund/QueryHKPartnerRefundsRequest.cs @@ -0,0 +1,15 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /refunds 接口的请求。 + /// + public class QueryHKPartnerRefundsRequest : QueryHKRefundsRequest + { + /// + /// 获取或设置子商户号。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string SubMerchantId { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerRefund/QueryHKPartnerRefundsResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerRefund/QueryHKPartnerRefundsResponse.cs new file mode 100644 index 00000000..22df6b6a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerRefund/QueryHKPartnerRefundsResponse.cs @@ -0,0 +1,95 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /refunds 接口的响应。 + /// + public class QueryHKPartnerRefundsResponse : QueryHKRefundsResponse + { + public static new class Types + { + public class Amount : QueryHKRefundsResponse.Types.Amount + { + } + + public class Refund : QueryHKRefundsResponse.Types.Refund + { + public static new class Types + { + public class Amount : QueryHKRefundsResponse.Types.Refund.Types.Amount + { + public static new class Types + { + public class ExchangeRate : QueryHKRefundsResponse.Types.Refund.Types.Amount.Types.ExchangeRate + { + } + + public class From : QueryHKRefundsResponse.Types.Refund.Types.Amount.Types.From + { + } + } + + /// + /// 获取或设置汇率信息。 + /// + [Newtonsoft.Json.JsonProperty("exchange_rate")] + [System.Text.Json.Serialization.JsonPropertyName("exchange_rate")] + public new Types.ExchangeRate? ExchangeRate { get; set; } + + /// + /// 获取或设置退款出资账户及金额列表。 + /// + [Newtonsoft.Json.JsonProperty("from")] + [System.Text.Json.Serialization.JsonPropertyName("from")] + public new Types.From[]? FromList { get; set; } + } + + public class Promotion : QueryHKRefundsResponse.Types.Refund.Types.Promotion + { + } + } + + /// + /// 获取或设置退款金额信息。 + /// + [Newtonsoft.Json.JsonProperty("amount")] + [System.Text.Json.Serialization.JsonPropertyName("amount")] + public new Types.Amount Amount { get; set; } = default!; + + /// + /// 获取或设置优惠退款信息。 + /// + [Newtonsoft.Json.JsonProperty("refund_detail")] + [System.Text.Json.Serialization.JsonPropertyName("refund_detail")] + public new Types.Promotion Promotion { get; set; } = default!; + } + } + + /// + /// + /// + [Newtonsoft.Json.JsonProperty("sp_mchid")] + [System.Text.Json.Serialization.JsonPropertyName("sp_mchid")] + public override string MerchantId { get; set; } = default!; + + /// + /// 获取或设置子商户号。 + /// + [Newtonsoft.Json.JsonProperty("sub_mchid")] + [System.Text.Json.Serialization.JsonPropertyName("sub_mchid")] + public string SubMerchantId { get; set; } = default!; + + /// + /// 获取或设置金额信息。 + /// + [Newtonsoft.Json.JsonProperty("amount")] + [System.Text.Json.Serialization.JsonPropertyName("amount")] + public new Types.Amount Amount { get; set; } = default!; + + /// + /// 获取或设置退款单列表。 + /// + [Newtonsoft.Json.JsonProperty("data")] + [System.Text.Json.Serialization.JsonPropertyName("data")] + public new Types.Refund[] RefundList { get; set; } = default!; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerTransactions/GetHKPartnerTransactionByOutTradeNumberResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerTransactions/GetHKPartnerTransactionByOutTradeNumberResponse.cs index 08be8f74..2c40537d 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerTransactions/GetHKPartnerTransactionByOutTradeNumberResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKPartnerTransactions/GetHKPartnerTransactionByOutTradeNumberResponse.cs @@ -1,4 +1,4 @@ -using System; +using System; namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models { @@ -28,10 +28,36 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models public class Amount : GetHKTransactionByOutTradeNumberResponse.Types.Amount { + public static new class Types + { + public class ExchangeRate : GetHKTransactionByOutTradeNumberResponse.Types.Amount.Types.ExchangeRate + { + } + } + + /// + /// 获取或设置汇率信息。 + /// + [Newtonsoft.Json.JsonProperty("exchange_rate")] + [System.Text.Json.Serialization.JsonPropertyName("exchange_rate")] + public new Types.ExchangeRate? ExchangeRate { get; set; } } public class Promotion : GetHKTransactionByOutTradeNumberResponse.Types.Promotion { + public static new class Types + { + public class GoodsDetail : GetHKTransactionByOutTradeNumberResponse.Types.Promotion.Types.GoodsDetail + { + } + } + + /// + /// 获取或设置单品列表。 + /// + [Newtonsoft.Json.JsonProperty("goods_detail")] + [System.Text.Json.Serialization.JsonPropertyName("goods_detail")] + public new Types.GoodsDetail[]? GoodsList { get; set; } } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKRefund/GetHKRefundByIdRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKRefund/GetHKRefundByIdRequest.cs index 840a4150..dd64d9ca 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKRefund/GetHKRefundByIdRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKRefund/GetHKRefundByIdRequest.cs @@ -1,4 +1,4 @@ -namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models { /// /// 表示 [GET] /refunds/id/{refund_id} 接口的请求。 @@ -10,7 +10,7 @@ /// [Newtonsoft.Json.JsonIgnore] [System.Text.Json.Serialization.JsonIgnore] - public string? MerchantId { get; set; } + public virtual string? MerchantId { get; set; } /// /// 获取或设置微信支付退款单号。 diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKRefund/GetHKRefundByOutRefundNumberRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKRefund/GetHKRefundByOutRefundNumberRequest.cs index 360162c7..9418a5f5 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKRefund/GetHKRefundByOutRefundNumberRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKRefund/GetHKRefundByOutRefundNumberRequest.cs @@ -1,4 +1,4 @@ -namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models { /// /// 表示 [GET] /refunds/out-refund-no/{out_refund_no} 接口的请求。 @@ -10,7 +10,7 @@ /// [Newtonsoft.Json.JsonIgnore] [System.Text.Json.Serialization.JsonIgnore] - public string? MerchantId { get; set; } + public virtual string? MerchantId { get; set; } /// /// 获取或设置微信支付订单号。 diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKRefund/QueryHKRefundsRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKRefund/QueryHKRefundsRequest.cs new file mode 100644 index 00000000..438a5f95 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKRefund/QueryHKRefundsRequest.cs @@ -0,0 +1,43 @@ +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /refunds 接口的请求。 + /// + public class QueryHKRefundsRequest : WechatTenpayRequest + { + /// + /// 获取或设置微信商户号。如果不指定将使用构造 时的 参数。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public virtual string? MerchantId { get; set; } + + /// + /// 获取或设置商户订单号。与字段 二选一。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string? OutTradeNumber { get; set; } + + /// + /// 获取或设置微信支付订单号。与字段 二选一。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string? TransactionId { get; set; } + + /// + /// 获取或设置分页大小。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public int Limit { get; set; } = 10; + + /// + /// 获取或设置分页开始位置。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public int Offset { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKRefund/QueryHKRefundsResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKRefund/QueryHKRefundsResponse.cs new file mode 100644 index 00000000..ca446f9a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/HKRefund/QueryHKRefundsResponse.cs @@ -0,0 +1,287 @@ +using System; + +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +{ + /// + /// 表示 [GET] /refunds 接口的响应。 + /// + public class QueryHKRefundsResponse : WechatTenpayResponse + { + public static class Types + { + public class Amount + { + /// + /// 获取或设置原订单金额(单位:指定货币的最小单位)。 + /// + [Newtonsoft.Json.JsonProperty("total")] + [System.Text.Json.Serialization.JsonPropertyName("total")] + public int Total { get; set; } + + /// + /// 获取或设置退款币种。 + /// + [Newtonsoft.Json.JsonProperty("currency")] + [System.Text.Json.Serialization.JsonPropertyName("currency")] + public string? Currency { get; set; } + + /// + /// 获取或设置用户支付金额(单位:指定货币的最小单位)。 + /// + [Newtonsoft.Json.JsonProperty("payer_total")] + [System.Text.Json.Serialization.JsonPropertyName("payer_total")] + public int PayerTotal { get; set; } + + /// + /// 获取或设置用户支付币种。 + /// + [Newtonsoft.Json.JsonProperty("payer_currency")] + [System.Text.Json.Serialization.JsonPropertyName("payer_currency")] + public string PayerCurrency { get; set; } = default!; + } + + public class Refund + { + public static class Types + { + public class Amount + { + public static class Types + { + public class ExchangeRate : GetHKRefundByOutRefundNumberResponse.Types.Amount.Types.ExchangeRate + { + } + + public class From + { + /// + /// 获取或设置出资金额 (单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("amount")] + [System.Text.Json.Serialization.JsonPropertyName("amount")] + public int Amount { get; set; } + + /// + /// 获取或设置出资来源。 + /// + [Newtonsoft.Json.JsonProperty("fund_source")] + [System.Text.Json.Serialization.JsonPropertyName("fund_source")] + public string FundSource { get; set; } = default!; + } + } + + /// + /// 获取或设置退款金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("refund")] + [System.Text.Json.Serialization.JsonPropertyName("refund")] + public int Refund { get; set; } + + /// + /// 获取或设置退款币种。 + /// + [Newtonsoft.Json.JsonProperty("currency")] + [System.Text.Json.Serialization.JsonPropertyName("currency")] + public string Currency { get; set; } = default!; + + /// + /// 获取或设置用户退款金额(单位:指定货币的最小单位)。 + /// + [Newtonsoft.Json.JsonProperty("payer_refund")] + [System.Text.Json.Serialization.JsonPropertyName("payer_refund")] + public int PayerRefund { get; set; } + + /// + /// 获取或设置用户支付币种。 + /// + [Newtonsoft.Json.JsonProperty("payer_currency")] + [System.Text.Json.Serialization.JsonPropertyName("payer_currency")] + public string PayerCurrency { get; set; } = default!; + + /// + /// 获取或设置汇率信息。 + /// + [Newtonsoft.Json.JsonProperty("exchange_rate")] + [System.Text.Json.Serialization.JsonPropertyName("exchange_rate")] + public Types.ExchangeRate? ExchangeRate { get; set; } + + /// + /// 获取或设置退款出资账户及金额列表。 + /// + [Newtonsoft.Json.JsonProperty("from")] + [System.Text.Json.Serialization.JsonPropertyName("from")] + public Types.From[]? FromList { get; set; } + } + + public class Promotion + { + /// + /// 获取或设置券 ID。 + /// + [Newtonsoft.Json.JsonProperty("promotion_id")] + [System.Text.Json.Serialization.JsonPropertyName("promotion_id")] + public string PromotionId { get; set; } = default!; + + /// + /// 获取或设置优惠范围。 + /// + [Newtonsoft.Json.JsonProperty("scope")] + [System.Text.Json.Serialization.JsonPropertyName("scope")] + public string Scope { get; set; } = default!; + + /// + /// 获取或设置优惠类型。 + /// + [Newtonsoft.Json.JsonProperty("type")] + [System.Text.Json.Serialization.JsonPropertyName("type")] + public string Type { get; set; } = default!; + + /// + /// 获取或设置优惠券面额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("amount")] + [System.Text.Json.Serialization.JsonPropertyName("amount")] + public int Amount { get; set; } + + /// + /// 获取或设置优惠退款金额(单位:分)。 + /// + [Newtonsoft.Json.JsonProperty("refund_amount")] + [System.Text.Json.Serialization.JsonPropertyName("refund_amount")] + public int RefundAmount { get; set; } + + /// + /// 获取或设置退款币种。 + /// + [Newtonsoft.Json.JsonProperty("currency")] + [System.Text.Json.Serialization.JsonPropertyName("currency")] + public string Currency { get; set; } = default!; + } + } + + /// + /// 获取或设置微信支付退款单号。 + /// + [Newtonsoft.Json.JsonProperty("id")] + [System.Text.Json.Serialization.JsonPropertyName("id")] + public string RefundId { get; set; } = default!; + + /// + /// 获取或设置商户退款单号。 + /// + [Newtonsoft.Json.JsonProperty("out_refund_no")] + [System.Text.Json.Serialization.JsonPropertyName("out_refund_no")] + public string OutRefundNumber { get; set; } = default!; + + /// + /// 获取或设置退款渠道。 + /// + [Newtonsoft.Json.JsonProperty("channel")] + [System.Text.Json.Serialization.JsonPropertyName("channel")] + public string Channel { get; set; } = default!; + + /// + /// 获取或设置退款资金来源。 + /// + [Newtonsoft.Json.JsonProperty("fund_source")] + [System.Text.Json.Serialization.JsonPropertyName("fund_source")] + public string FundSource { get; set; } = default!; + + /// + /// 获取或设置退款入账账户。 + /// + [Newtonsoft.Json.JsonProperty("recv_account")] + [System.Text.Json.Serialization.JsonPropertyName("recv_account")] + public string ReceiveAccount { get; set; } = default!; + + /// + /// 获取或设置退款状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public string Status { get; set; } = default!; + + /// + /// 获取或设置退款成功时间。 + /// + [Newtonsoft.Json.JsonProperty("success_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RFC3339NullableDateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("success_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RFC3339NullableDateTimeOffsetConverter))] + public DateTimeOffset? SuccessTime { get; set; } + + /// + /// 获取或设置退款创建时间。 + /// + [Newtonsoft.Json.JsonProperty("create_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RFC3339DateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("create_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RFC3339DateTimeOffsetConverter))] + public DateTimeOffset CreateTime { get; set; } + + /// + /// 获取或设置退款金额信息。 + /// + [Newtonsoft.Json.JsonProperty("amount")] + [System.Text.Json.Serialization.JsonPropertyName("amount")] + public Types.Amount Amount { get; set; } = default!; + + /// + /// 获取或设置优惠退款信息。 + /// + [Newtonsoft.Json.JsonProperty("refund_detail")] + [System.Text.Json.Serialization.JsonPropertyName("refund_detail")] + public Types.Promotion Promotion { get; set; } = default!; + } + } + + /// + /// 获取或设置微信商户号。 + /// + [Newtonsoft.Json.JsonProperty("mchid")] + [System.Text.Json.Serialization.JsonPropertyName("mchid")] + public virtual string MerchantId { get; set; } = default!; + + /// + /// 获取或设置微信支付订单号。 + /// + [Newtonsoft.Json.JsonProperty("id")] + [System.Text.Json.Serialization.JsonPropertyName("id")] + public string TransactionId { get; set; } = default!; + + /// + /// 获取或设置商户订单号。 + /// + [Newtonsoft.Json.JsonProperty("out_trade_no")] + [System.Text.Json.Serialization.JsonPropertyName("out_trade_no")] + public string OutTradeNumber { get; set; } = default!; + + /// + /// 获取或设置金额信息。 + /// + [Newtonsoft.Json.JsonProperty("amount")] + [System.Text.Json.Serialization.JsonPropertyName("amount")] + public Types.Amount Amount { get; set; } = default!; + + /// + /// 获取或设置退款单列表。 + /// + [Newtonsoft.Json.JsonProperty("data")] + [System.Text.Json.Serialization.JsonPropertyName("data")] + public Types.Refund[] RefundList { get; set; } = default!; + + /// + /// 获取或设置订单总退款次数。 + /// + [Newtonsoft.Json.JsonProperty("total_num")] + [System.Text.Json.Serialization.JsonPropertyName("total_num")] + public int TotalRefundCount { get; set; } + + /// + /// 获取或设置本次返回退款单数量。 + /// + [Newtonsoft.Json.JsonProperty("current_total_num")] + [System.Text.Json.Serialization.JsonPropertyName("current_total_num")] + public int CurrentRefundCount { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PAPPay/NotifyPAPPayContractsRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PAPPay/NotifyPAPPayContractRequest.cs similarity index 94% rename from src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PAPPay/NotifyPAPPayContractsRequest.cs rename to src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PAPPay/NotifyPAPPayContractRequest.cs index 74d5a263..d511bd48 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PAPPay/NotifyPAPPayContractsRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PAPPay/NotifyPAPPayContractRequest.cs @@ -1,9 +1,9 @@ -namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models { /// /// 表示 [POST] /papay/contracts/{contract_id}/notify 接口的请求。 /// - public class NotifyPAPPayContractsRequest : WechatTenpayRequest + public class NotifyPAPPayContractRequest : WechatTenpayRequest { public static class Types { diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PAPPay/NotifyPAPPayContractsResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PAPPay/NotifyPAPPayContractResponse.cs similarity index 53% rename from src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PAPPay/NotifyPAPPayContractsResponse.cs rename to src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PAPPay/NotifyPAPPayContractResponse.cs index 6add456b..0328acf6 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PAPPay/NotifyPAPPayContractsResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PAPPay/NotifyPAPPayContractResponse.cs @@ -1,9 +1,9 @@ -namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models { /// /// 表示 [POST] /papay/contracts/{contract_id}/notify 接口的响应。 /// - public class NotifyPAPPayContractsResponse : WechatTenpayResponse + public class NotifyPAPPayContractResponse : WechatTenpayResponse { } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PartnerPAPPay/NotifyPartnerPAPPayContractsRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PartnerPAPPay/NotifyPartnerPAPPayContractRequest.cs similarity index 90% rename from src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PartnerPAPPay/NotifyPartnerPAPPayContractsRequest.cs rename to src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PartnerPAPPay/NotifyPartnerPAPPayContractRequest.cs index 0a305e73..0647af7c 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PartnerPAPPay/NotifyPartnerPAPPayContractsRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PartnerPAPPay/NotifyPartnerPAPPayContractRequest.cs @@ -1,13 +1,13 @@ -namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models { /// /// 表示 [POST] /partner-papay/contracts/{contract_id}/notify 接口的请求。 /// - public class NotifyPartnerPAPPayContractsRequest : WechatTenpayRequest + public class NotifyPartnerPAPPayContractRequest : WechatTenpayRequest { public static class Types { - public class Amount : NotifyPAPPayContractsRequest.Types.Amount + public class Amount : NotifyPAPPayContractRequest.Types.Amount { } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PartnerPAPPay/NotifyPartnerPAPPayContractsResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PartnerPAPPay/NotifyPartnerPAPPayContractResponse.cs similarity index 53% rename from src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PartnerPAPPay/NotifyPartnerPAPPayContractsResponse.cs rename to src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PartnerPAPPay/NotifyPartnerPAPPayContractResponse.cs index 2bdb8078..04e49178 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PartnerPAPPay/NotifyPartnerPAPPayContractsResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PartnerPAPPay/NotifyPartnerPAPPayContractResponse.cs @@ -1,9 +1,9 @@ -namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models { /// /// 表示 [POST] /partner-papay/contracts/{contract_id}/notify 接口的响应。 /// - public class NotifyPartnerPAPPayContractsResponse : WechatTenpayResponse + public class NotifyPartnerPAPPayContractResponse : WechatTenpayResponse { } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayPartnerTransactions/GetPayPartnerTransactionByIdRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayPartnerTransactions/GetPayPartnerTransactionByIdRequest.cs index ef53522b..3aeaf07f 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayPartnerTransactions/GetPayPartnerTransactionByIdRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayPartnerTransactions/GetPayPartnerTransactionByIdRequest.cs @@ -1,17 +1,10 @@ -namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models { /// /// 表示 [GET] /pay/partner/transactions/id/{transaction_id} 接口的请求。 /// public class GetPayPartnerTransactionByIdRequest : GetPayTransactionByIdRequest { - /// - /// 获取或设置服务商商户号。如果不指定将使用构造 时的 参数。 - /// - [Newtonsoft.Json.JsonIgnore] - [System.Text.Json.Serialization.JsonIgnore] - public override string? MerchantId { get; set; } - /// /// 获取或设置子商户号。 /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayPartnerTransactions/GetPayPartnerTransactionByOutTradeNumberRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayPartnerTransactions/GetPayPartnerTransactionByOutTradeNumberRequest.cs index bb13f441..5a6da34e 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayPartnerTransactions/GetPayPartnerTransactionByOutTradeNumberRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayPartnerTransactions/GetPayPartnerTransactionByOutTradeNumberRequest.cs @@ -1,17 +1,10 @@ -namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models { /// /// 表示 [GET] /pay/partner/transactions/out-trade-no/{out_trade_no} 接口的请求。 /// public class GetPayPartnerTransactionByOutTradeNumberRequest : GetPayTransactionByOutTradeNumberRequest { - /// - /// 获取或设置服务商商户号。如果不指定将使用构造 时的 参数。 - /// - [Newtonsoft.Json.JsonIgnore] - [System.Text.Json.Serialization.JsonIgnore] - public override string? MerchantId { get; set; } - /// /// 获取或设置子商户号。 /// diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayScorePartner/ServiceOrder/SetPayScorePartnerServiceOrderPayResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayScorePartner/ServiceOrder/SetPayScorePartnerServiceOrderPayResponse.cs index 8217fd19..1e302e03 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayScorePartner/ServiceOrder/SetPayScorePartnerServiceOrderPayResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayScorePartner/ServiceOrder/SetPayScorePartnerServiceOrderPayResponse.cs @@ -5,39 +5,5 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models /// public class SetPayScorePartnerServiceOrderPayResponse : SetPayScoreServiceOrderPayResponse { - /// - /// 获取或设置微信 AppId。 - /// - [Newtonsoft.Json.JsonProperty("appid")] - [System.Text.Json.Serialization.JsonPropertyName("appid")] - public string AppId { get; set; } = default!; - - /// - /// 获取或设置微信商户号。 - /// - [Newtonsoft.Json.JsonProperty("mchid")] - [System.Text.Json.Serialization.JsonPropertyName("mchid")] - public string MerchantId { get; set; } = default!; - - /// - /// 获取或设置服务 ID。 - /// - [Newtonsoft.Json.JsonProperty("service_id")] - [System.Text.Json.Serialization.JsonPropertyName("service_id")] - public string ServiceId { get; set; } = default!; - - /// - /// 获取或设置商户服务订单号。 - /// - [Newtonsoft.Json.JsonProperty("out_order_no")] - [System.Text.Json.Serialization.JsonPropertyName("out_order_no")] - public string OutOrderNumber { get; set; } = default!; - - /// - /// 获取或设置微信支付服务订单号。 - /// - [Newtonsoft.Json.JsonProperty("order_id")] - [System.Text.Json.Serialization.JsonPropertyName("order_id")] - public string OrderId { get; set; } = default!; } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayTransactions/GetPayTransactionByIdRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayTransactions/GetPayTransactionByIdRequest.cs index 55bf42d7..e5aec400 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayTransactions/GetPayTransactionByIdRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayTransactions/GetPayTransactionByIdRequest.cs @@ -1,4 +1,4 @@ -namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models { /// /// 表示 [GET] /pay/transactions/id/{transaction_id} 接口的请求。 diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayTransactions/GetPayTransactionByOutTradeNumberRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayTransactions/GetPayTransactionByOutTradeNumberRequest.cs index 3df8abfb..69d5eaac 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayTransactions/GetPayTransactionByOutTradeNumberRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayTransactions/GetPayTransactionByOutTradeNumberRequest.cs @@ -1,4 +1,4 @@ -namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models { /// /// 表示 [GET] /pay/transactions/out-trade-no/{out_trade_no} 接口的请求。 diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayTransactions/GetPayTransactionByOutTradeNumberResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayTransactions/GetPayTransactionByOutTradeNumberResponse.cs index 90a2e6cd..f758fc61 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayTransactions/GetPayTransactionByOutTradeNumberResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayTransactions/GetPayTransactionByOutTradeNumberResponse.cs @@ -1,4 +1,4 @@ -using System; +using System; namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models { @@ -187,14 +187,14 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models /// [Newtonsoft.Json.JsonProperty("mchid")] [System.Text.Json.Serialization.JsonPropertyName("mchid")] - public string MerchantId { get; set; } = default!; + public virtual string MerchantId { get; set; } = default!; /// /// 获取或设置微信 AppId。 /// [Newtonsoft.Json.JsonProperty("appid")] [System.Text.Json.Serialization.JsonPropertyName("appid")] - public string AppId { get; set; } = default!; + public virtual string AppId { get; set; } = default!; /// /// 获取或设置商户订单号。 diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayrollCard/Authentications/PreOrderWithAuthPayrollCardAuthenticationRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayrollCard/Authentications/PreorderPayrollCardAuthenticationRequest.cs similarity index 97% rename from src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayrollCard/Authentications/PreOrderWithAuthPayrollCardAuthenticationRequest.cs rename to src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayrollCard/Authentications/PreorderPayrollCardAuthenticationRequest.cs index 3fec3f68..eb24a161 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayrollCard/Authentications/PreOrderWithAuthPayrollCardAuthenticationRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayrollCard/Authentications/PreorderPayrollCardAuthenticationRequest.cs @@ -4,7 +4,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models /// 表示 [POST] /payroll-card/authentications/pre-order-with-auth 接口的请求。 /// [WechatTenpaySensitive] - public class PreOrderWithAuthPayrollCardAuthenticationRequest : WechatTenpayRequest + public class PreorderPayrollCardAuthenticationRequest : WechatTenpayRequest { /// /// 获取或设置子商户号。 diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayrollCard/Authentications/PreOrderWithAuthPayrollCardAuthenticationResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayrollCard/Authentications/PreorderPayrollCardAuthenticationResponse.cs similarity index 95% rename from src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayrollCard/Authentications/PreOrderWithAuthPayrollCardAuthenticationResponse.cs rename to src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayrollCard/Authentications/PreorderPayrollCardAuthenticationResponse.cs index 48fc9472..0532d01b 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayrollCard/Authentications/PreOrderWithAuthPayrollCardAuthenticationResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/Models/PayrollCard/Authentications/PreorderPayrollCardAuthenticationResponse.cs @@ -3,7 +3,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Models /// /// 表示 [POST] /payroll-card/authentications/pre-order-with-auth 接口的响应。 /// - public class PreOrderWithAuthPayrollCardAuthenticationResponse : WechatTenpayResponse + public class PreorderPayrollCardAuthenticationResponse : WechatTenpayResponse { /// /// 获取或设置微信商户号。 diff --git a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/WechatTenpayEndpoints.cs b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/WechatTenpayEndpoints.cs index 33bc346b..d86ec768 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/WechatTenpayEndpoints.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.TenpayV3/WechatTenpayEndpoints.cs @@ -1,4 +1,4 @@ -namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 +namespace SKIT.FlurlHttpClient.Wechat.TenpayV3 { /// /// 微信支付 API 接口域名。 @@ -21,9 +21,9 @@ public const string REGION_HONGKONG = "https://api.mch.weixin.qq.com/hk/v3"; /// - /// 全球域名。 + /// 香港全球域名。 /// - public const string REGION_HONGKONG_GLOBAL = "https://apihk.mch.weixin.qq.com/global/v3"; + public const string REGION_HONGKONG_GLOBAL = "https://apihk.mch.weixin.qq.com/v3/global"; /// /// 沙箱域名。 diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/CreateHKPAPPayTransactionRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/CreateHKPAPPayTransactionRequest.json new file mode 100644 index 00000000..422d9810 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/CreateHKPAPPayTransactionRequest.json @@ -0,0 +1,18 @@ +{ + "appid": "wxcbda96de0b165486", + "description": "PAPAuto-debit支付测试", + "attach": "支付测试", + "notify_url": "https://wxpay.wxutil.com/pub_v2/pay/notify.v2.php", + "out_trade_no": "1217752501201407033233368018", + "goods_tag": "WXG", + "merchant_category_code": "1011", + "contract_id": "Wx15463511252015071056489715", + "amount": { + "total": 10000, + "currency": "HKD" + }, + "scene_info": { + "device_ip": "59.37.125.32", + "device_id": "013467007045764" + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/CreateHKPAPPayTransactionResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/CreateHKPAPPayTransactionResponse.json new file mode 100644 index 00000000..28ff0cac --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/CreateHKPAPPayTransactionResponse.json @@ -0,0 +1,45 @@ +{ + "amount": { + "currency": "HKD", + "payer_currency": "CNY", + "payer_total": 8, + "total": 10 + }, + "appid": "wx7bc98d929da735fe", + "attach": "testruoyu", + "bank_type": "CFT", + "mchid": "132012662", + "merchant_category_code": "0", + "out_trade_no": "autotest_20210608201410_9263565", + "payer": { + "openid": "of8YZ6A_ySrPYzjX7joXo_h2CI44" + }, + "promotion_detail": [ + { + "promotion_id": "109519", + "name": "单品惠-6", + "scope": "SINGLE", + "type": "COUPON", + "amount": 5, + "currency": "HKD", + "activity_id": "931386", + "wxpay_contribute_amount": 100, + "merchant_contribute_amount": 100, + "other_contribute_amount": 5, + "goods_detail": [ + { + "goods_id": "124512", + "goods_remark": "1001", + "discount_amount": 100, + "quantity": 1, + "price": 528800 + } + ] + } + ], + "success_time": "2021-12-09T10:56:27+08:00", + "trade_state": "SUCCESS", + "trade_state_desc": "支付成功", + "trade_type": "AUTH", + "transaction_id": "4200001136202112092809736426" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/GetHKPAPPayContractByContractIdResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/GetHKPAPPayContractByContractIdResponse.json new file mode 100644 index 00000000..0c069f87 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/GetHKPAPPayContractByContractIdResponse.json @@ -0,0 +1,14 @@ +{ + "mchid": "10000100", + "appid": " wx426b3015555b46be ", + "contract_id": "203", + "plan_id": 66, + "openid": " oHZx6uMbIG46UXQ3SKxVYEgw1LZs ", + "out_contract_code": " 1005 ", + "user_display_name": " test ", + "state": "TERMINATED", + "signed_time": "2015-07-01T10:00:00+08:00", + "terminated_time": "2015-09-01T10:00:00+08:00", + "termination_mode": "USER", + "termination_note": " delete ...." +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/GetHKPAPPayContractByOutContractCodeResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/GetHKPAPPayContractByOutContractCodeResponse.json new file mode 100644 index 00000000..0c069f87 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/GetHKPAPPayContractByOutContractCodeResponse.json @@ -0,0 +1,14 @@ +{ + "mchid": "10000100", + "appid": " wx426b3015555b46be ", + "contract_id": "203", + "plan_id": 66, + "openid": " oHZx6uMbIG46UXQ3SKxVYEgw1LZs ", + "out_contract_code": " 1005 ", + "user_display_name": " test ", + "state": "TERMINATED", + "signed_time": "2015-07-01T10:00:00+08:00", + "terminated_time": "2015-09-01T10:00:00+08:00", + "termination_mode": "USER", + "termination_note": " delete ...." +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustAppRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustAppRequest.json new file mode 100644 index 00000000..5ba1ddfd --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustAppRequest.json @@ -0,0 +1,10 @@ +{ + "appid": "wxcbda96de0b165486", + "expired_time": "2021-11-20T13:29:35+08:00", + "openid": "ouFhd5X9s9WteC3eWRjXV3lea123", + "out_contract_code": "100001256", + "plan_id": 123, + "success_notify_url": "https://yoursite.com", + "user_client_ip": "119.145.83.6", + "user_display_name": "张三" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustAppResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustAppResponse.json new file mode 100644 index 00000000..f5ca7286 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustAppResponse.json @@ -0,0 +1,3 @@ +{ + "session_id": "201710180325670965" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustH5Request.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustH5Request.json new file mode 100644 index 00000000..1d428add --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustH5Request.json @@ -0,0 +1,11 @@ +{ + "appid": "wxcbda96de0b165486", + "expired_time": "2021-11-20T13:29:35+08:00", + "out_contract_code": "100001256", + "plan_id": 123, + "return_appid": "wxcbda96de0b165486", + "return_url": "https://yoursite.com", + "success_notify_url": "https://yoursite.com", + "user_client_ip": "119.145.83.6", + "user_display_name": "张三" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustH5Response.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustH5Response.json new file mode 100644 index 00000000..5bfec1a2 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustH5Response.json @@ -0,0 +1,3 @@ +{ + "sign_url": "https://apihk.mch.weixin.qq.com/global/papay/contracts/login?os_session_id=2021120910391616228#wechat_redirect" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustJsapiRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustJsapiRequest.json new file mode 100644 index 00000000..f220429f --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustJsapiRequest.json @@ -0,0 +1,10 @@ +{ + "appid": "wxcbda96de0b165486", + "expired_time": "2021-11-20T13:29:35+08:00", + "openid": "ouFhd5X9s9WteC3eWRjXV3lea123", + "out_contract_code": "100001256", + "plan_id": 123, + "return_url": "https://yoursite.com", + "success_notify_url": "https://yoursite.com", + "user_display_name": "张三" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustJsapiResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustJsapiResponse.json new file mode 100644 index 00000000..5bfec1a2 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustJsapiResponse.json @@ -0,0 +1,3 @@ +{ + "sign_url": "https://apihk.mch.weixin.qq.com/global/papay/contracts/login?os_session_id=2021120910391616228#wechat_redirect" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustMiniProgramRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustMiniProgramRequest.json new file mode 100644 index 00000000..5ba1ddfd --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustMiniProgramRequest.json @@ -0,0 +1,10 @@ +{ + "appid": "wxcbda96de0b165486", + "expired_time": "2021-11-20T13:29:35+08:00", + "openid": "ouFhd5X9s9WteC3eWRjXV3lea123", + "out_contract_code": "100001256", + "plan_id": 123, + "success_notify_url": "https://yoursite.com", + "user_client_ip": "119.145.83.6", + "user_display_name": "张三" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustMiniProgramResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustMiniProgramResponse.json new file mode 100644 index 00000000..f5ca7286 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustMiniProgramResponse.json @@ -0,0 +1,3 @@ +{ + "session_id": "201710180325670965" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustWebRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustWebRequest.json new file mode 100644 index 00000000..ce51a92b --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustWebRequest.json @@ -0,0 +1,8 @@ +{ + "appid": "wxcbda96de0b165486", + "expired_time": "2021-11-20T13:29:35+08:00", + "out_contract_code": "100001256", + "plan_id": 123, + "success_notify_url": "https://yoursite.com", + "user_display_name": "张三" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustWebResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustWebResponse.json new file mode 100644 index 00000000..5bfec1a2 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/PresignHKPAPPayContractEntrustWebResponse.json @@ -0,0 +1,3 @@ +{ + "sign_url": "https://apihk.mch.weixin.qq.com/global/papay/contracts/login?os_session_id=2021120910391616228#wechat_redirect" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/TerminateHKPAPPayContractRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/TerminateHKPAPPayContractRequest.json new file mode 100644 index 00000000..41b40399 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPAPPay/TerminateHKPAPPayContractRequest.json @@ -0,0 +1,4 @@ +{ + "appid": "wxcbda96de0b165486", + "termination_note": "Cause of termination" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/CreateHKPartnerPAPPayTransactionRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/CreateHKPartnerPAPPayTransactionRequest.json new file mode 100644 index 00000000..71cc072e --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/CreateHKPartnerPAPPayTransactionRequest.json @@ -0,0 +1,20 @@ +{ + "sp_appid": "wxcbda96de0b165486", + "sub_mchid": "10000097", + "sub_appid": "wxcbda96de0b165484", + "description": "PAPAuto-debit支付测试", + "attach": "支付测试", + "notify_url": "https://wxpay.wxutil.com/pub_v2/pay/notify.v2.php", + "out_trade_no": "1217752501201407033233368018", + "goods_tag": "WXG", + "merchant_category_code": "1011", + "contract_id": "Wx15463511252015071056489715", + "amount": { + "total": 10000, + "currency": "HKD" + }, + "scene_info": { + "device_ip": "59.37.125.32", + "device_id": "013467007045764" + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/CreateHKPartnerPAPPayTransactionResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/CreateHKPartnerPAPPayTransactionResponse.json new file mode 100644 index 00000000..0be9425f --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/CreateHKPartnerPAPPayTransactionResponse.json @@ -0,0 +1,48 @@ +{ + "amount": { + "currency": "HKD", + "payer_currency": "CNY", + "payer_total": 8, + "total": 10 + }, + "sp_appid": "wx7bc98d929da735fe", + "sub_appid": "wxcbda96de0b165484", + "attach": "testruoyu", + "bank_type": "CFT", + "sp_mchid": "132012662", + "sub_mchid": "10000097", + "merchant_category_code": "0", + "out_trade_no": "autotest_20210608201410_9263565", + "payer": { + "sp_openid": "of8YZ6A_ySrPYzjX7joXo_h2CI44", + "sub_openid": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o" + }, + "promotion_detail": [ + { + "promotion_id": "109519", + "name": "单品惠-6", + "scope": "SINGLE", + "type": "COUPON", + "amount": 5, + "currency": "HKD", + "activity_id": "931386", + "wxpay_contribute_amount": 100, + "merchant_contribute_amount": 100, + "other_contribute_amount": 5, + "goods_detail": [ + { + "goods_id": "124512", + "goods_remark": "1001", + "discount_amount": 100, + "quantity": 1, + "price": 528800 + } + ] + } + ], + "success_time": "2021-12-09T10:56:27+08:00", + "trade_state": "SUCCESS", + "trade_state_desc": "支付成功", + "trade_type": "AUTH", + "transaction_id": "4200001136202112092809736426" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/GetHKPartnerPAPPayContractByContractIdResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/GetHKPartnerPAPPayContractByContractIdResponse.json new file mode 100644 index 00000000..01f662cb --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/GetHKPartnerPAPPayContractByContractIdResponse.json @@ -0,0 +1,15 @@ +{ + "sp_mchid": "10000100", + "sub_mchid": " 1900000109", + "sp_appid": " wx426b3015555b46be ", + "contract_id": "203", + "plan_id": 66, + "openid": " oHZx6uMbIG46UXQ3SKxVYEgw1LZs ", + "out_contract_code": " 1005 ", + "user_display_name": " test ", + "state": "TERMINATED", + "signed_time": "2015-07-01T10:00:00+08:00", + "terminated_time": "2015-09-01T10:00:00+08:00", + "termination_mode": "EXPIRED", + "termination_note": " delete .... " +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/GetHKPartnerPAPPayContractByOutContractCodeResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/GetHKPartnerPAPPayContractByOutContractCodeResponse.json new file mode 100644 index 00000000..01f662cb --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/GetHKPartnerPAPPayContractByOutContractCodeResponse.json @@ -0,0 +1,15 @@ +{ + "sp_mchid": "10000100", + "sub_mchid": " 1900000109", + "sp_appid": " wx426b3015555b46be ", + "contract_id": "203", + "plan_id": 66, + "openid": " oHZx6uMbIG46UXQ3SKxVYEgw1LZs ", + "out_contract_code": " 1005 ", + "user_display_name": " test ", + "state": "TERMINATED", + "signed_time": "2015-07-01T10:00:00+08:00", + "terminated_time": "2015-09-01T10:00:00+08:00", + "termination_mode": "EXPIRED", + "termination_note": " delete .... " +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustAppRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustAppRequest.json new file mode 100644 index 00000000..f2f00535 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustAppRequest.json @@ -0,0 +1,11 @@ +{ + "expired_time": "2021-11-20T13:29:35+08:00", + "openid": "ouFhd5X9s9WteC3eWRjXV3lea123", + "out_contract_code": "100001256", + "plan_id": 123, + "sp_appid": "wxcbda96de0b165486", + "sub_appid": "wxcbda96de0b165484", + "sub_mchid": "10000097", + "success_notify_url": "https://yoursite.com", + "user_display_name": "张三" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustAppResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustAppResponse.json new file mode 100644 index 00000000..f5ca7286 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustAppResponse.json @@ -0,0 +1,3 @@ +{ + "session_id": "201710180325670965" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustH5Request.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustH5Request.json new file mode 100644 index 00000000..71c34e0a --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustH5Request.json @@ -0,0 +1,13 @@ +{ + "expired_time": "2021-11-20T13:29:35+08:00", + "out_contract_code": "100001256", + "plan_id": 123, + "return_appid": "wxcbda96de0b165486", + "return_url": "https://yoursite.com", + "sp_appid": "wxcbda96de0b165486", + "sub_appid": "wxcbda96de0b165484", + "sub_mchid": "10000097", + "success_notify_url": "https://yoursite.com", + "user_client_ip": "119.145.83.6", + "user_display_name": "张三" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustH5Response.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustH5Response.json new file mode 100644 index 00000000..5bfec1a2 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustH5Response.json @@ -0,0 +1,3 @@ +{ + "sign_url": "https://apihk.mch.weixin.qq.com/global/papay/contracts/login?os_session_id=2021120910391616228#wechat_redirect" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustJsapiRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustJsapiRequest.json new file mode 100644 index 00000000..0056fc0f --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustJsapiRequest.json @@ -0,0 +1,12 @@ +{ + "expired_time": "2021-11-20T13:29:35+08:00", + "openid": "ouFhd5X9s9WteC3eWRjXV3lea123", + "out_contract_code": "100001256", + "plan_id": 123, + "return_url": "https://yoursite.com", + "sp_appid": "wxcbda96de0b165486", + "sub_appid": "wxcbda96de0b165484", + "sub_mchid": "10000097", + "success_notify_url": "https://yoursite.com", + "user_display_name": "张三" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustJsapiResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustJsapiResponse.json new file mode 100644 index 00000000..5bfec1a2 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustJsapiResponse.json @@ -0,0 +1,3 @@ +{ + "sign_url": "https://apihk.mch.weixin.qq.com/global/papay/contracts/login?os_session_id=2021120910391616228#wechat_redirect" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustMiniProgramRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustMiniProgramRequest.json new file mode 100644 index 00000000..0056fc0f --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustMiniProgramRequest.json @@ -0,0 +1,12 @@ +{ + "expired_time": "2021-11-20T13:29:35+08:00", + "openid": "ouFhd5X9s9WteC3eWRjXV3lea123", + "out_contract_code": "100001256", + "plan_id": 123, + "return_url": "https://yoursite.com", + "sp_appid": "wxcbda96de0b165486", + "sub_appid": "wxcbda96de0b165484", + "sub_mchid": "10000097", + "success_notify_url": "https://yoursite.com", + "user_display_name": "张三" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustMiniProgramResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustMiniProgramResponse.json new file mode 100644 index 00000000..f5ca7286 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustMiniProgramResponse.json @@ -0,0 +1,3 @@ +{ + "session_id": "201710180325670965" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustWebRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustWebRequest.json new file mode 100644 index 00000000..51a2bb35 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustWebRequest.json @@ -0,0 +1,10 @@ +{ + "expired_time": "2021-11-20T13:29:35+08:00", + "out_contract_code": "100001256", + "plan_id": 123, + "sp_appid": "wxcbda96de0b165486", + "sub_appid": "wxcbda96de0b165484", + "sub_mchid": "10000097", + "success_notify_url": "https://yoursite.com", + "user_display_name": "张三" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustWebResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustWebResponse.json new file mode 100644 index 00000000..5bfec1a2 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/PresignHKPartnerPAPPayContractEntrustWebResponse.json @@ -0,0 +1,3 @@ +{ + "sign_url": "https://apihk.mch.weixin.qq.com/global/papay/contracts/login?os_session_id=2021120910391616228#wechat_redirect" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/ReverseHKPartnerPAPPayTransactionRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/ReverseHKPartnerPAPPayTransactionRequest.json new file mode 100644 index 00000000..ad3a5699 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/ReverseHKPartnerPAPPayTransactionRequest.json @@ -0,0 +1,3 @@ +{ + "sub_mchid": "20000100" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/TerminateHKPartnerPAPPayContractRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/TerminateHKPartnerPAPPayContractRequest.json new file mode 100644 index 00000000..b0b59a64 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerPAPPay/TerminateHKPartnerPAPPayContractRequest.json @@ -0,0 +1,6 @@ +{ + "sp_appid": "wxcbda96de0b165486", + "sub_mchid": "10000097", + "sub_appid": "wxcbda96de0b165484", + "termination_note": "Cause of termination" +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerRefund/QueryHKPartnerRefundsResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerRefund/QueryHKPartnerRefundsResponse.json new file mode 100644 index 00000000..008a6ac4 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKPartnerRefund/QueryHKPartnerRefundsResponse.json @@ -0,0 +1,44 @@ +{ + "id": "1008450740201411110005820873", + "sp_mchid": "10000100", + "sub_mchid": "20000100", + "out_trade_no": "20150806125346", + "amount": { + "total": 528800, + "currency": "HKD", + "payer_total": 518799, + "payer_currency": "HKD" + }, + "total_num": 1, + "current_total_num": 1, + "data": [ + { + "id": "2008450740201411110000174436", + "out_refund_no": "R20150806125346", + "channel": "ORIGINAL", + "amount": { + "refund": 50, + "currency": "CNY", + "payer_refund": 49, + "payer_currency": "HKD", + "exchange_rate": { + "type": "SETTLEMENT_RATE", + "rate": 8000000 + } + }, + "status": "SUCCESS", + "recv_account": "招商银行信用卡0403", + "fund_source": "REFUND_SOURCE_REchARGE_FUNDS", + "success_time": "2018-06-08T10:34:56+08:00", + "create_time": "2018-06-08T10:34:56+08:00", + "refund_detail": { + "promotion_id": "109519", + "scope": "GLOBAL", + "type": "COUPON", + "amount": 1, + "refund_amount": 1, + "currency": "HKD" + } + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKRefund/QueryHKRefundsResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKRefund/QueryHKRefundsResponse.json new file mode 100644 index 00000000..a59e58d1 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/HKRefund/QueryHKRefundsResponse.json @@ -0,0 +1,43 @@ +{ + "id": "1008450740201411110005820873", + "mchid": "10000100", + "out_trade_no": "20150806125346", + "amount": { + "total": 528800, + "currency": "HKD", + "payer_total": 518799, + "payer_currency": "HKD" + }, + "total_num": 1, + "current_total_num": 1, + "data": [ + { + "id": "2008450740201411110000174436", + "out_refund_no": "R20150806125346", + "channel": "ORIGINAL", + "amount": { + "refund": 50, + "currency": "CNY", + "payer_refund": 49, + "payer_currency": "HKD", + "exchange_rate": { + "type": "SETTLEMENT_RATE", + "rate": 8000000 + } + }, + "status": "SUCCESS", + "recv_account": "招商银行信用卡0403", + "fund_source": "REFUND_SOURCE_REchARGE_FUNDS", + "success_time": "2018-06-08T10:34:56+08:00", + "create_time": "2018-06-08T10:34:56+08:00", + "refund_detail": { + "promotion_id": "109519", + "scope": "GLOBAL", + "type": "COUPON", + "amount": 1, + "refund_amount": 1, + "currency": "HKD" + } + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/PAPPay/NotifyPAPPayContractsRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/PAPPay/NotifyPAPPayContractRequest.json similarity index 100% rename from test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/PAPPay/NotifyPAPPayContractsRequest.json rename to test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/PAPPay/NotifyPAPPayContractRequest.json diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/PartnerPAPPay/NotifyPartnerPAPPayContractsRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/PartnerPAPPay/NotifyPartnerPAPPayContractRequest.json similarity index 100% rename from test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/PartnerPAPPay/NotifyPartnerPAPPayContractsRequest.json rename to test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/PartnerPAPPay/NotifyPartnerPAPPayContractRequest.json diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/PayrollCard/Authentications/PreOrderWithAuthPayrollCardAuthenticationRequest.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/PayrollCard/Authentications/PreorderPayrollCardAuthenticationRequest.json similarity index 100% rename from test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/PayrollCard/Authentications/PreOrderWithAuthPayrollCardAuthenticationRequest.json rename to test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/PayrollCard/Authentications/PreorderPayrollCardAuthenticationRequest.json diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/PayrollCard/Authentications/PreOrderWithAuthPayrollCardAuthenticationResponse.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/PayrollCard/Authentications/PreorderPayrollCardAuthenticationResponse.json similarity index 100% rename from test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/PayrollCard/Authentications/PreOrderWithAuthPayrollCardAuthenticationResponse.json rename to test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ModelSamples/PayrollCard/Authentications/PreorderPayrollCardAuthenticationResponse.json diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests.csproj b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests.csproj index 248892e6..2975de91 100644 --- a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests.csproj +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests.csproj @@ -1,4 +1,4 @@ - + net472; net6.0 diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/TestCase_RequestEncryptionTests.cs b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/TestCase_RequestEncryptionTests.cs index 1b895402..f6176b26 100644 --- a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/TestCase_RequestEncryptionTests.cs +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/TestCase_RequestEncryptionTests.cs @@ -730,18 +730,18 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests } [Fact(DisplayName = "测试用例:加密请求中的敏感数据([POST] /payroll-card/authentications/pre-order-with-auth)")] - public async Task TestEncryptRequestSensitiveProperty_PreOrderWithAuthPayrollCardAuthenticationRequest() + public async Task TestEncryptRequestSensitiveProperty_PreorderPayrollCardAuthenticationRequest() { - static Models.PreOrderWithAuthPayrollCardAuthenticationRequest GenerateMockRequestModel() + static Models.PreorderPayrollCardAuthenticationRequest GenerateMockRequestModel() { - return new Models.PreOrderWithAuthPayrollCardAuthenticationRequest() + return new Models.PreorderPayrollCardAuthenticationRequest() { UserName = MOCK_PLAIN_STR, IdCardNumber = MOCK_PLAIN_STR }; } - static void AssertMockRequestModel(Models.PreOrderWithAuthPayrollCardAuthenticationRequest request, Func decryptor) + static void AssertMockRequestModel(Models.PreorderPayrollCardAuthenticationRequest request, Func decryptor) { Assert.NotEqual(MOCK_PLAIN_STR, request.UserName!); Assert.NotEqual(MOCK_PLAIN_STR, request.IdCardNumber!); @@ -759,11 +759,11 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests AssertMockRequestModel(reqA2, (cipher) => Utilities.SM2Utility.Decrypt(SM2_PEM_PRIVATE_KEY, cipher)); var reqB1 = GenerateMockRequestModel(); - await CreateMockClientUseRSA(autoEncrypt: true).ExecutePreOrderWithAuthPayrollCardAuthenticationAsync(reqB1); + await CreateMockClientUseRSA(autoEncrypt: true).ExecutePreorderPayrollCardAuthenticationAsync(reqB1); AssertMockRequestModel(reqB1, (cipher) => Utilities.RSAUtility.DecryptWithECB(RSA_PEM_PRIVATE_KEY, cipher)); var reqB2 = GenerateMockRequestModel(); - await CreateMockClientUseSM2(autoEncrypt: true).ExecutePreOrderWithAuthPayrollCardAuthenticationAsync(reqB2); + await CreateMockClientUseSM2(autoEncrypt: true).ExecutePreorderPayrollCardAuthenticationAsync(reqB2); AssertMockRequestModel(reqB2, (cipher) => Utilities.SM2Utility.Decrypt(SM2_PEM_PRIVATE_KEY, cipher)); }