Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(DataFlex) ZATCA Onboarding Get Compliance CSIDSee more ZATCA ExamplesDemonstrates sending a POST to get a compliance CSID, which is two parts: A binary security token, and a secret.
Use ChilkatAx-win32.pkg Procedure Test String sOtp Handle hoPem Boolean iSuccess Variant vSbCsrBase64 Handle hoSbCsrBase64 Integer iNumReplaced String sCsrBase64 Variant vJson Handle hoJson Handle hoHttp Variant vResp Handle hoResp Variant vJsonResp Handle hoJsonResp String sTemp1 Integer iTemp1 Boolean bTemp1 // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // It is assumed you've already generated a CSR. // Also, you'll need an OTP code, valid for 1 hour, which is generated online in the Fatoora portal. See // https://zatca.gov.sa/ar/E-Invoicing/Introduction/Guidelines/Documents/E-invoicing%20Detailed%20Technical%20Guidelines.pdf // Manually replace this with the OTP code you interactively obtained in a browser session from the Fatoora portal. // The OTP code is valid for 1 hour. Move "123434" To sOtp // You should already have a CSR in a file containing something that looks like this: // -----BEGIN CERTIFICATE REQUEST----- // MIIB5DCCAYsCAQAwTDELMAkGA1UEBhMCU0ExFTATBgNVBAsMDFJpeWFkIEJyYW5j // aDEQMA4GA1UECgwHQ29udG9zbzEUMBIGA1UEAwwLRUExMjM0NTY3ODkwVjAQBgcq // hkjOPQIBBgUrgQQACgNCAAQI6op+6GQ4Gmn9oy0DpGxX0lFtUIvj+4Jtnp0VyEsH // +ZO7lpgksbRC484R3fAsO0v+Ly24ZIUIOYEIAeJ1f6AooIHfMIHcBgkqhkiG9w0B // CQ4xgc4wgcswIQYJKwYBBAGCNxQCBBQTElpBVENBLUNvZGUtU2lnbmluZzCBpQYD // VR0RBIGdMIGapIGXMIGUMTswOQYDVQQEDDIxLVRTVHwyLVRTVHwzLWVkMjJmMWQ4 // LWU2YTItMTExOC05YjU4LWQ5YThmMTFlNDQ1ZjEfMB0GCgmSJomT8ixkAQEMDzMx // MDEyMjM5MzUwMDAwMzENMAsGA1UEDAwEMTEwMDESMBAGA1UEGgwJTXlBZGRyZXNz // MREwDwYDVQQPDAhJbmR1c3RyeTAKBggqhkjOPQQDAgNHADBEAiBurm6KdAeHfXzt // h/jk8xSMBP4TAkkFrg+hWDhfI0/SuAIgJi8ectM7YwBIBCmf0tdFcVTU7GBbvjnK // xValZCAO39M= // -----END CERTIFICATE REQUEST----- Get Create (RefClass(cComChilkatPem)) To hoPem If (Not(IsComObjectCreated(hoPem))) Begin Send CreateComObject of hoPem End Get ComLoadPemFile Of hoPem "c:/aaworkarea/zatca/onboarding/taxpayer.csr" "" To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoPem To sTemp1 Showln sTemp1 Procedure_Return End // Get the base64 from the CSR in a single line. Get Create (RefClass(cComChilkatStringBuilder)) To hoSbCsrBase64 If (Not(IsComObjectCreated(hoSbCsrBase64))) Begin Send CreateComObject of hoSbCsrBase64 End Get ComGetEncodedItem Of hoPem "csr" "" "base64" 0 To sTemp1 Get ComAppend Of hoSbCsrBase64 sTemp1 To iSuccess Get ComReplace Of hoSbCsrBase64 (character(13)) "" To iNumReplaced Get ComReplace Of hoSbCsrBase64 (character(10)) "" To iNumReplaced Get ComGetAsString Of hoSbCsrBase64 To sCsrBase64 Showln sCsrBase64 Get Create (RefClass(cComChilkatJsonObject)) To hoJson If (Not(IsComObjectCreated(hoJson))) Begin Send CreateComObject of hoJson End Set ComEmitCompact Of hoJson To False Get pvComObject of hoSbCsrBase64 to vSbCsrBase64 Get ComUpdateSb Of hoJson "csr" vSbCsrBase64 To iSuccess Get Create (RefClass(cComChilkatHttp)) To hoHttp If (Not(IsComObjectCreated(hoHttp))) Begin Send CreateComObject of hoHttp End Set ComAccept Of hoHttp To "application/json" Send ComSetRequestHeader To hoHttp "OTP" sOtp Send ComSetRequestHeader To hoHttp "Accept-Version" "V2" Get pvComObject of hoJson to vJson Get ComPostJson3 Of hoHttp "https://gw-apic-gov.gazt.gov.sa/e-invoicing/core/compliance" "application/json" vJson To vResp If (IsComObject(vResp)) Begin Get Create (RefClass(cComChilkatHttpResponse)) To hoResp Set pvComObject Of hoResp To vResp End Get ComLastMethodSuccess Of hoHttp To bTemp1 If (bTemp1 = False) Begin Get ComLastErrorText Of hoHttp To sTemp1 Showln sTemp1 Procedure_Return End Get ComStatusCode Of hoResp To iTemp1 If (iTemp1 <> 200) Begin Get ComBodyStr Of hoResp To sTemp1 Showln sTemp1 Get ComStatusCode Of hoResp To iTemp1 Showln "response status code = " iTemp1 Showln "Failed" Send Destroy of hoResp Procedure_Return End Get Create (RefClass(cComChilkatJsonObject)) To hoJsonResp If (Not(IsComObjectCreated(hoJsonResp))) Begin Send CreateComObject of hoJsonResp End Get pvComObject of hoJsonResp to vJsonResp Get ComGetBodyJson Of hoResp vJsonResp To iSuccess Set ComEmitCompact Of hoJsonResp To False Showln "JSON response:" Get ComEmit Of hoJsonResp To sTemp1 Showln sTemp1 Send Destroy of hoResp End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.