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
(Visual FoxPro) Hungary NAV Query TaxpayerDemonstrates the queryTaxpayer request for the Hungarian NAV Online Invoicing System REST API v2.0. Note: This example requires Chilkat v9.5.0.83 or greater. For more information, see https://onlineszamla.nav.gov.hu/api/files/container/download/Online%20Szamla_Interfesz%20specifik%C3%A1ci%C3%B3_EN_v2.0.pdf
LOCAL lnSuccess LOCAL loCrypt LOCAL loDtNow LOCAL lcMyPassword LOCAL lcPasswordHash LOCAL loPrng LOCAL loSbRequestId LOCAL lcSignatureKey LOCAL loSbFinalHashBase LOCAL lnNumReplaced LOCAL lcRequestSignature LOCAL loXml LOCAL loHttp LOCAL lcEndpoint LOCAL loResp LOCAL loRespXml LOCAL lcQueryTaxpayerResponse_xmlns LOCAL lcQueryTaxpayerResponse_xmlns_ns2 LOCAL lcRequestId LOCAL lcTimestamp LOCAL lcRequestVersion LOCAL lcHeaderVersion LOCAL lcFuncCode LOCAL lcSoftwareId LOCAL lcSoftwareName LOCAL lcSoftwareOperation LOCAL lcSoftwareMainVersion LOCAL lcSoftwareDevName LOCAL lcSoftwareDevContact LOCAL lcSoftwareDevCountryCode LOCAL lcSoftwareDevTaxNumber LOCAL lcInfoDate LOCAL lcTaxpayerValidity LOCAL lcTaxpayerName LOCAL lnNs2_taxpayerId LOCAL lnNs2_vatCode LOCAL lcTaxpayerAddressType LOCAL lcNs2_countryCode LOCAL lnNs2_postalCode LOCAL lcNs2_city LOCAL lcNs2_streetName LOCAL lcNs2_publicPlaceCategory LOCAL lnNs2_number * This example assumes the Chilkat API to have been previously unlocked. * See Global Unlock Sample for sample code. * Build the following XML: * <?xml version="1.0" encoding="UTF-8"?> * <QueryTaxpayerRequest xmlns="http://schemas.nav.gov.hu/OSA/2.0/api"> * <header> * <requestId>RID215118906689</requestId> * <timestamp>2019-09-11T11:11:08.579Z</timestamp> * <requestVersion>2.0</requestVersion> * <headerVersion>1.0</headerVersion> * </header> * <user> * <login>lwilsmn0uqdxe6u</login> * <passwordHash>2F43840A882CFDB7DB0FEC07D419D030D864B47B6B541DC280EF81B937B7A176E33C052B0D26638CC18A7A2C08D8D311733078A774BF43F6CA57FE8CD74DC28E</passwordHash> * <taxNumber>11111111</taxNumber> * <requestSignature>C5ADE8A2231C509D2887E6C2C4406CC5F72CA25B070AD3E94FADFA3F91A8A3667AF882DEDC7D67E9086E3D34A95886E929ACD8C924CD1E8357C89BEF43BA9126</requestSignature> * </user> * <software> * <softwareId>123456789123456789</softwareId> * <softwareName>string</softwareName> * <softwareOperation>LOCAL_SOFTWARE</softwareOperation> * <softwareMainVersion>string</softwareMainVersion> * <softwareDevName>string</softwareDevName> * <softwareDevContact>string</softwareDevContact> * <softwareDevCountryCode>HU</softwareDevCountryCode> * <softwareDevTaxNumber>string</softwareDevTaxNumber> * </software> * <taxNumber>22222222</taxNumber> * </QueryTaxpayerRequest> * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Crypt2') loCrypt = CreateObject('Chilkat.Crypt2') * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.CkDateTime') loDtNow = CreateObject('Chilkat.CkDateTime') loDtNow.SetFromCurrentSystemTime() ? loDtNow.GetAsTimestamp(0) * The hash algorithm for the password is SHA512 (not SHA3-512). loCrypt.HashAlgorithm = "sha512" loCrypt.EncodingMode = "hex" lcMyPassword = "my-password" lcPasswordHash = loCrypt.HashStringENC(lcMyPassword) * Generate a random request ID like "RID215118906689" * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Prng') loPrng = CreateObject('Chilkat.Prng') * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.StringBuilder') loSbRequestId = CreateObject('Chilkat.StringBuilder') loSbRequestId.Append("RID") loSbRequestId.Append(loPrng.RandomString(12,1,0,0)) ? "generated requestId = " + loSbRequestId.GetAsString() * Calculate the requestSignature * IMPORTANT: This example requires Chilkat v9.5.0.83 or greater. The SHA3 hash algorithm is implemented in Chilkat v9.5.0.83, but not in earlier versions. * IMPORTANT: This example requires Chilkat v9.5.0.83 or greater. The SHA3 hash algorithm is implemented in Chilkat v9.5.0.83, but not in earlier versions. * IMPORTANT: This example requires Chilkat v9.5.0.83 or greater. The SHA3 hash algorithm is implemented in Chilkat v9.5.0.83, but not in earlier versions. * IMPORTANT: This example requires Chilkat v9.5.0.83 or greater. The SHA3 hash algorithm is implemented in Chilkat v9.5.0.83, but not in earlier versions. * IMPORTANT: This example requires Chilkat v9.5.0.83 or greater. The SHA3 hash algorithm is implemented in Chilkat v9.5.0.83, but not in earlier versions. loCrypt.HashAlgorithm = "sha3-512" lcSignatureKey = "ce-8f5e-215119fa7dd621DLMRHRLH2S" * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.StringBuilder') loSbFinalHashBase = CreateObject('Chilkat.StringBuilder') * First append the timestamp because we are going to remove certain chars/parts. loSbFinalHashBase.Append(loDtNow.GetAsTimestamp(0)) lnNumReplaced = loSbFinalHashBase.Replace("Z","") lnNumReplaced = loSbFinalHashBase.Replace("-","") lnNumReplaced = loSbFinalHashBase.Replace(":","") lnNumReplaced = loSbFinalHashBase.Replace("T","") * Prepend the requestId and append the signatureKey loSbFinalHashBase.Prepend(loSbRequestId.GetAsString()) loSbFinalHashBase.Append(lcSignatureKey) lcRequestSignature = loCrypt.HashStringENC(loSbFinalHashBase.GetAsString()) * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Xml') loXml = CreateObject('Chilkat.Xml') loXml.Tag = "QueryTaxpayerRequest" loXml.AddAttribute("xmlns","http://schemas.nav.gov.hu/OSA/2.0/api") loXml.UpdateChildContent("header|requestId",loSbRequestId.GetAsString()) loXml.UpdateChildContent("header|timestamp",loDtNow.GetAsTimestamp(0)) loXml.UpdateChildContent("header|requestVersion","2.0") loXml.UpdateChildContent("header|headerVersion","1.0") loXml.UpdateChildContent("user|login","lwilsmn0uqdxe6u") loXml.UpdateChildContent("user|passwordHash",lcPasswordHash) loXml.UpdateChildContent("user|taxNumber","11111111") loXml.UpdateChildContent("user|requestSignature",lcRequestSignature) loXml.UpdateChildContent("software|softwareId","123456789123456789") loXml.UpdateChildContent("software|softwareName","string") loXml.UpdateChildContent("software|softwareOperation","LOCAL_SOFTWARE") loXml.UpdateChildContent("software|softwareMainVersion","string") loXml.UpdateChildContent("software|softwareDevName","string") loXml.UpdateChildContent("software|softwareDevContact","string") loXml.UpdateChildContent("software|softwareDevCountryCode","HU") loXml.UpdateChildContent("software|softwareDevTaxNumber","string") loXml.UpdateChildContent("taxNumber","22222222") * POST the XML to https://api-test.onlineszamla.nav.gov.hu/invoiceService/v2/queryTaxpayer * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Http') loHttp = CreateObject('Chilkat.Http') loHttp.Accept = "application/xml" loHttp.SetRequestHeader("Content-Type","application/xml") lcEndpoint = "https://api-test.onlineszamla.nav.gov.hu/invoiceService/v2/queryTaxpayer" loResp = loHttp.PostXml(lcEndpoint,loXml.GetXml(),"utf-8") IF (loHttp.LastMethodSuccess = 0) THEN ? loHttp.LastErrorText RELEASE loCrypt RELEASE loDtNow RELEASE loPrng RELEASE loSbRequestId RELEASE loSbFinalHashBase RELEASE loXml RELEASE loHttp CANCEL ENDIF ? "Response status code = " + STR(loResp.StatusCode) * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Xml') loRespXml = CreateObject('Chilkat.Xml') loRespXml.LoadXml(loResp.BodyStr) ? "Response body:" ? loRespXml.GetXml() RELEASE loResp * The result looks like this: * <?xml version="1.0" encoding="UTF-8" standalone="yes"?> * <QueryTaxpayerResponse xmlns="http://schemas.nav.gov.hu/OSA/2.0/api" xmlns:ns2="http://schemas.nav.gov.hu/OSA/2.0/data"> * <header> * <requestId>RID847153193061</requestId> * <timestamp>2020-03-24T16:00:34Z</timestamp> * <requestVersion>2.0</requestVersion> * <headerVersion>1.0</headerVersion> * </header> * <result> * <funcCode>OK</funcCode> * </result> * <software> * <softwareId>123456789123456789</softwareId> * <softwareName>string</softwareName> * <softwareOperation>LOCAL_SOFTWARE</softwareOperation> * <softwareMainVersion>string</softwareMainVersion> * <softwareDevName>string</softwareDevName> * <softwareDevContact>string</softwareDevContact> * <softwareDevCountryCode>HU</softwareDevCountryCode> * <softwareDevTaxNumber>string</softwareDevTaxNumber> * </software> * <infoDate>1993-01-01T00:00:00.000+01:00</infoDate> * <taxpayerValidity>true</taxpayerValidity> * <taxpayerData> * <taxpayerName>some taxpayer name</taxpayerName> * <taxNumberDetail> * <ns2:taxpayerId>22222222</ns2:taxpayerId> * <ns2:vatCode>2</ns2:vatCode> * </taxNumberDetail> * <taxpayerAddressList> * <taxpayerAddressItem> * <taxpayerAddressType>HQ</taxpayerAddressType> * <taxpayerAddress> * <ns2:countryCode>HU</ns2:countryCode> * <ns2:postalCode>1121</ns2:postalCode> * <ns2:city>BUDAPEST 12</ns2:city> * <ns2:streetName>ABCD</ns2:streetName> * <ns2:publicPlaceCategory>UTCA</ns2:publicPlaceCategory> * <ns2:number>20</ns2:number> * </taxpayerAddress> * </taxpayerAddressItem> * </taxpayerAddressList> * </taxpayerData> * </QueryTaxpayerResponse> * Use this online tool to generate parsing code from sample XML: * Generate Parsing Code from XML lcQueryTaxpayerResponse_xmlns = loRespXml.GetAttrValue("xmlns") lcQueryTaxpayerResponse_xmlns_ns2 = loRespXml.GetAttrValue("xmlns:ns2") lcRequestId = loRespXml.GetChildContent("header|requestId") lcTimestamp = loRespXml.GetChildContent("header|timestamp") lcRequestVersion = loRespXml.GetChildContent("header|requestVersion") lcHeaderVersion = loRespXml.GetChildContent("header|headerVersion") lcFuncCode = loRespXml.GetChildContent("result|funcCode") lcSoftwareId = loRespXml.GetChildContent("software|softwareId") lcSoftwareName = loRespXml.GetChildContent("software|softwareName") lcSoftwareOperation = loRespXml.GetChildContent("software|softwareOperation") lcSoftwareMainVersion = loRespXml.GetChildContent("software|softwareMainVersion") lcSoftwareDevName = loRespXml.GetChildContent("software|softwareDevName") lcSoftwareDevContact = loRespXml.GetChildContent("software|softwareDevContact") lcSoftwareDevCountryCode = loRespXml.GetChildContent("software|softwareDevCountryCode") lcSoftwareDevTaxNumber = loRespXml.GetChildContent("software|softwareDevTaxNumber") lcInfoDate = loRespXml.GetChildContent("infoDate") lcTaxpayerValidity = loRespXml.GetChildContent("taxpayerValidity") lcTaxpayerName = loRespXml.GetChildContent("taxpayerData|taxpayerName") lnNs2_taxpayerId = loRespXml.GetChildIntValue("taxpayerData|taxNumberDetail|ns2:taxpayerId") lnNs2_vatCode = loRespXml.GetChildIntValue("taxpayerData|taxNumberDetail|ns2:vatCode") lcTaxpayerAddressType = loRespXml.GetChildContent("taxpayerData|taxpayerAddressList|taxpayerAddressItem|taxpayerAddressType") lcNs2_countryCode = loRespXml.GetChildContent("taxpayerData|taxpayerAddressList|taxpayerAddressItem|taxpayerAddress|ns2:countryCode") lnNs2_postalCode = loRespXml.GetChildIntValue("taxpayerData|taxpayerAddressList|taxpayerAddressItem|taxpayerAddress|ns2:postalCode") lcNs2_city = loRespXml.GetChildContent("taxpayerData|taxpayerAddressList|taxpayerAddressItem|taxpayerAddress|ns2:city") lcNs2_streetName = loRespXml.GetChildContent("taxpayerData|taxpayerAddressList|taxpayerAddressItem|taxpayerAddress|ns2:streetName") lcNs2_publicPlaceCategory = loRespXml.GetChildContent("taxpayerData|taxpayerAddressList|taxpayerAddressItem|taxpayerAddress|ns2:publicPlaceCategory") lnNs2_number = loRespXml.GetChildIntValue("taxpayerData|taxpayerAddressList|taxpayerAddressItem|taxpayerAddress|ns2:number") RELEASE loCrypt RELEASE loDtNow RELEASE loPrng RELEASE loSbRequestId RELEASE loSbFinalHashBase RELEASE loXml RELEASE loHttp RELEASE loRespXml |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.