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
(PHP Extension) POST GovTalk XML to https://vrep1-t.cssz.cz/VREP/submissionDemonstrates how to POST a GovTalk XML message to https://vrep1-t.cssz.cz/VREP/submission PDF Documentation is at http://www.cssz.cz/NR/rdonlyres/0ACDBB35-F78A-4B1A-8258-7249B55C788E/0/csszpodavacidotazovaciprotokol20110608.pdf
<?php // The version number (9_5_0) should match version of the Chilkat extension used, omitting the micro-version number. // For example, if using Chilkat v9.5.0.48, then include as shown here: include("chilkat_9_5_0.php"); // This requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // First prepare the XML body that is to be GZip compressed and then encrypted. // Build the following XML.. // Use the online tool at http://tools.chilkat.io/xmlCreate.cshtml // to generate the XML creation code that follows this XML. // <?xml version="1.0" encoding="utf-8" ?> // <pvpoj xmlns="http://schemas.cssz.cz/POJ/PVPOJ2016"> // <prehled verze="2016.0" typPrehledu="N"> // <okres> // <kodOSSZ>119</kodOSSZ> // <nazevOSSZ>Praha 9</nazevOSSZ> // </okres> // <obdobi> // <mesic>1</mesic> // <rok>2018</rok> // </obdobi> // <zamestnavatel> // <vs>9992002999</vs> // <IC>49710999</IC> // <nazev>SIT & KHASO v.o.s.</nazev> // <adresa> // <ulice>Na spleniti</ulice> // // <cisloDomu>517</cisloDomu> // <obec>Praha 9</obec> // <PSC>19032</PSC> // <stat>CZ</stat> // </adresa> // </zamestnavatel> // <pojistne> // <uhrnVymerovacichZakladu>1104</uhrnVymerovacichZakladu> // <pojistneZamestnance>175</pojistneZamestnance> // <pojistneZamestnavatele>2826</pojistneZamestnavatele> // <pojistneCelkem>4301</pojistneCelkem> // </pojistne> // <platebniUdaje> // <bankaCisloUctu>012345789/0800</bankaCisloUctu> // </platebniUdaje> // <pracovnik> // <jmeno>Matt</jmeno> // <prijmeni>Murdock</prijmeni> // <telefon>606796999</telefon> // <email>admin@chilkatsoft.com</email> // </pracovnik> // <datumVyplneni>2018-03-02</datumVyplneni> // <poznamka /> // </prehled> // </pvpoj> $xml = new CkXml(); $xml->put_Tag('pvpoj'); $xml->AddAttribute('xmlns','http://schemas.cssz.cz/POJ/PVPOJ2016'); $xml->UpdateAttrAt('prehled',true,'verze','2016.0'); $xml->UpdateAttrAt('prehled',true,'typPrehledu','N'); $xml->UpdateChildContent('prehled|okres|kodOSSZ','119'); $xml->UpdateChildContent('prehled|okres|nazevOSSZ','Praha 9'); $xml->UpdateChildContent('prehled|obdobi|mesic','1'); $xml->UpdateChildContent('prehled|obdobi|rok','2018'); $xml->UpdateChildContent('prehled|zamestnavatel|vs','9992002999'); $xml->UpdateChildContent('prehled|zamestnavatel|IC','49710999'); $xml->UpdateChildContent('prehled|zamestnavatel|nazev','SIT & KHASO v.o.s.'); $xml->UpdateChildContent('prehled|zamestnavatel|adresa|ulice','Na spleniti'); $xml->UpdateChildContent('prehled|zamestnavatel|adresa|cisloDomu','517'); $xml->UpdateChildContent('prehled|zamestnavatel|adresa|obec','Praha 9'); $xml->UpdateChildContent('prehled|zamestnavatel|adresa|PSC','19032'); $xml->UpdateChildContent('prehled|zamestnavatel|adresa|stat','CZ'); $xml->UpdateChildContent('prehled|pojistne|uhrnVymerovacichZakladu','1104'); $xml->UpdateChildContent('prehled|pojistne|pojistneZamestnance','175'); $xml->UpdateChildContent('prehled|pojistne|pojistneZamestnavatele','2826'); $xml->UpdateChildContent('prehled|pojistne|pojistneCelkem','4301'); $xml->UpdateChildContent('prehled|platebniUdaje|bankaCisloUctu','012345789/0800'); $xml->UpdateChildContent('prehled|pracovnik|jmeno','Matt'); $xml->UpdateChildContent('prehled|pracovnik|prijmeni','Murdock'); $xml->UpdateChildContent('prehled|pracovnik|telefon','606796999'); $xml->UpdateChildContent('prehled|pracovnik|email','admin@chilkatsoft.com'); $xml->UpdateChildContent('prehled|datumVyplneni','2018-03-02'); $xml->UpdateChildContent('prehled|poznamka',''); $xml->put_EmitCompact(true); $xml->put_EmitXmlDecl(false); // Emit the XML into bd. $bd = new CkBinData(); $bd->AppendString($xml->getXml(),'utf-8'); // GZip compress the bd contents. $gzip = new CkGzip(); // The Filename is not an actual file on disk, but is just the filename string stored in the gzip compressed format. $gzip->put_Filename('pvpoj.xml'); $gzip->CompressBd($bd); // Encrypt the contents using the government provided cert. $cert = new CkCert(); $success = $cert->LoadFromFile('qa_data/govs/czech/pvpoj/DISCSSZ2019.cer'); if ($success != true) { print $cert->lastErrorText() . "\n"; exit; } $crypt = new CkCrypt2(); $crypt->put_CryptAlgorithm('pki'); $crypt->put_Pkcs7CryptAlg('aes'); $crypt->put_KeyLength(256); $success = $crypt->SetEncryptCert($cert); if ($success != true) { print $crypt->lastErrorText() . "\n"; exit; } $success = $crypt->EncryptBd($bd); if ($success != true) { print $crypt->lastErrorText() . "\n"; exit; } // At this point, bd contains the gzip compressed / encrypted XML. // Build the following GovTalkMessage XML: // <?xml version="1.0" encoding="utf-8"?> // <GovTalkMessage xmlns="http://www.govtalk.gov.uk/CM/envelope"> // <EnvelopeVersion>2.0</EnvelopeVersion> // <Header> // <MessageDetails> // <Class>CSSZ_PVPOJ</Class> // <Qualifier>request</Qualifier> // <Function>submit</Function> // <TransactionID /> // <AuditID /> // <CorrelationID /> // <ResponseEndPoint PollInterval="0" /> // <Transformation>XML</Transformation> // <GatewayTest /> // <GatewayTimestamp /> // </MessageDetails> // <SenderDetails> // <IDAuthentication> // <SenderID /> // <Authentication> // <Method>clear</Method> // <Role /> // <Value /> // </Authentication> // </IDAuthentication> // <X509Certificate /> // <EmailAddress>admin@chilkatsoft.com</EmailAddress> // </SenderDetails> // </Header> // <GovTalkDetails> // <Keys> // <Key Type="vars">9992888999</Key> // </Keys> // <GatewayAdditions /> // </GovTalkDetails> // <Body> // <Message xmlns="http://www.cssz.cz/XMLSchema/envelope" version="1.2" eType="PVPOJ16"> // <Header> // <Signature xmlns:dt="urn:schemas-microsoft-com:datatypes" dt:dt="bin.base64">Signature goes here</Signature> // <Vendor productName="Abc xyz. s r.o. JKL .NET Client" version="6.0.2.0" /> // </Header> // <Body xmlns:dt="urn:schemas-microsoft-com:datatypes" encrypted="yes" contentEncoding="gzip" dt:dt="bin.base64">Base64 goes here // </Body> // </Message> // </Body> // </GovTalkMessage> // // Use the online tool at http://tools.chilkat.io/xmlCreate.cshtml // to generate this code. $xml->Clear(); $xml->put_Tag('GovTalkMessage'); $xml->AddAttribute('xmlns','http://www.govtalk.gov.uk/CM/envelope'); $xml->UpdateChildContent('EnvelopeVersion','2.0'); $xml->UpdateChildContent('Header|MessageDetails|Class','CSSZ_PVPOJ'); $xml->UpdateChildContent('Header|MessageDetails|Qualifier','request'); $xml->UpdateChildContent('Header|MessageDetails|Function','submit'); $xml->UpdateChildContent('Header|MessageDetails|TransactionID',''); $xml->UpdateChildContent('Header|MessageDetails|AuditID',''); $xml->UpdateChildContent('Header|MessageDetails|CorrelationID',''); $xml->UpdateAttrAt('Header|MessageDetails|ResponseEndPoint',true,'PollInterval','0'); $xml->UpdateChildContent('Header|MessageDetails|Transformation','XML'); $xml->UpdateChildContent('Header|MessageDetails|GatewayTest',''); $xml->UpdateChildContent('Header|MessageDetails|GatewayTimestamp',''); $xml->UpdateChildContent('Header|SenderDetails|IDAuthentication|SenderID',''); $xml->UpdateChildContent('Header|SenderDetails|IDAuthentication|Authentication|Method','clear'); $xml->UpdateChildContent('Header|SenderDetails|IDAuthentication|Authentication|Role',''); $xml->UpdateChildContent('Header|SenderDetails|IDAuthentication|Authentication|Value',''); $xml->UpdateChildContent('Header|SenderDetails|X509Certificate',''); $xml->UpdateChildContent('Header|SenderDetails|EmailAddress','admin@chilkatsoft.com'); $xml->UpdateAttrAt('GovTalkDetails|Keys|Key',true,'Type','vars'); $xml->UpdateChildContent('GovTalkDetails|Keys|Key','9992888999'); $xml->UpdateChildContent('GovTalkDetails|GatewayAdditions',''); $xml->UpdateAttrAt('Body|Message',true,'xmlns','http://www.cssz.cz/XMLSchema/envelope'); $xml->UpdateAttrAt('Body|Message',true,'version','1.2'); $xml->UpdateAttrAt('Body|Message',true,'eType','PVPOJ16'); $xml->UpdateAttrAt('Body|Message|Header|Signature',true,'xmlns:dt','urn:schemas-microsoft-com:datatypes'); $xml->UpdateAttrAt('Body|Message|Header|Signature',true,'dt:dt','bin.base64'); $xml->UpdateChildContent('Body|Message|Header|Signature','Signature goes here'); $xml->UpdateAttrAt('Body|Message|Header|Vendor',true,'productName','Abc xyz. s r.o. JKL .NET Client'); $xml->UpdateAttrAt('Body|Message|Header|Vendor',true,'version','6.0.2.0'); $xml->UpdateAttrAt('Body|Message|Body',true,'xmlns:dt','urn:schemas-microsoft-com:datatypes'); $xml->UpdateAttrAt('Body|Message|Body',true,'encrypted','yes'); $xml->UpdateAttrAt('Body|Message|Body',true,'contentEncoding','gzip'); $xml->UpdateAttrAt('Body|Message|Body',true,'dt:dt','bin.base64'); // Insert the contents of bd here: $xml->UpdateChildContent('Body|Message|Body',$bd->getEncoded('base64')); // Show the XML to be sent to https://vrep1-t.cssz.cz/VREP/submission $xml->put_EmitCompact(false); print $xml->getXml() . "\n"; $xml->put_EmitCompact(true); // ---------------------------------------------------------- // POST the XML to https://vrep1-t.cssz.cz/VREP/submission $http = new CkHttp(); // resp is a CkHttpResponse $resp = $http->PostXml('https://vrep1-t.cssz.cz/VREP/submission',$xml->getXml(),'utf-8'); if ($http->get_LastMethodSuccess() != true) { print $http->lastErrorText() . "\n"; exit; } // Examine the response status code (200 = success) $statusCode = $resp->get_StatusCode(); print 'Response status code = ' . $statusCode . "\n"; // The response body should be XML. // Load it into a Chilkat XML object to get it in indented format for viewing.. $xml->Clear(); $xml->LoadXml($resp->bodyStr()); $xml->put_EmitCompact(false); print $xml->getXml() . "\n"; // Output is: // <GovTalkMessage xmlns="http://www.govtalk.gov.uk/CM/envelope"> // <EnvelopeVersion>2.0</EnvelopeVersion> // <Header> // <MessageDetails> // <Class>CSSZ_PVPOJ</Class> // <Qualifier>acknowledgement</Qualifier> // <Function>submit</Function> // <TransactionID /> // <CorrelationID>1B6336D5ACE949CDB944424CB2D54401</CorrelationID> // <ResponseEndPoint PollInterval="60">https://vrep1-t.cssz.cz/VREP/poll</ResponseEndPoint> // <GatewayTimestamp>2018-07-02T22:23:41.310</GatewayTimestamp> // </MessageDetails> // <SenderDetails /> // </Header> // <GovTalkDetails> // <Keys /> // </GovTalkDetails> // <Body> // <Signature xmlns="http://www.podani.gov.cz/TxE/timestamp" Version="1.0"> // <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> // <TimeStamp> // <date>20180702</date> // <time>22:23:41</time> // </TimeStamp> // <SignatureValue>MIIORwYJKoZIhvcNAQcCo ... bBNE6MeXmk2siMuvY=</SignatureValue> // </Signature> // </Body> // </GovTalkMessage> // // Hint: Use the online tool at http://tools.chilkat.io/xmlParse.cshtml // to generate XML parsing code based on a sample response.. ?> |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.