Chcete ukázkový příklad práce s Flexi API v jazyce PHP?
Společný kód
Aby byly jednotlivé ukázky jednodušší, připravíme si společný kód, který nám připraví prostředí:
// konfigurace serveru $host = "https://demo.flexibee.eu"; $firma = "demo"; $ch = curl_init(); // create curl resource curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); // return content as a string from curl_exec curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); // follow redirects (compatibility for future changes in Flexi) curl_setopt($ch, CURLOPT_HTTPAUTH, TRUE); // HTTP authentication curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // Flexi by default uses Self-Signed certificates // curl_setopt($ch, CURLOPT_VERBOSE, TRUE); // For debugging curl_setopt($ch, CURLOPT_USERPWD, "winstrom:winstrom"); // set username and password
A případně i vypíše chyby:
$output = curl_exec($ch); $info = curl_getinfo($ch); if (curl_getinfo($ch, CURLINFO_HTTP_CODE) != 200 && curl_getinfo($ch, CURLINFO_HTTP_CODE) != 201) { printf ("Při operaci nastala chyba (HTTP %d): %sn", curl_getinfo($ch, CURLINFO_HTTP_CODE), $output); } // close curl resource to free up system resources curl_close($ch);
Vytvoření dokladu
Doklad můžete vytvořit odesláním jednoduchého XML (ve formátu Flexi XML), které zařídí založení dokladu.
// Požadavek odešleme ve formátu XML curl_setopt($ch, CURLOPT_URL, $host."/c/".$firma."/faktura-vydana.xml"); // Nastavení samotné operace curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); // Nastavení parametrů pro založení jednoduché faktury curl_setopt($ch, CURLOPT_POSTFIELDS, ' code:FAKTURA code:WINSTROM Moje faktura v PHP1000.0 true ');
Identifikátor vytvořené faktury je předán několika způsoby (více viz podporované HTTP operace):
HTTP Hlavičkou
Location: http://demo.flexibee.eu:5434/c/demo/faktura-vydana/105
Součást odpovědi ve formátu Flexi XML:<winstrom version="1.0"> <success>true</success> <result> <id>105</id> </result> </winstrom> Copy
To samé můžete provést i ve formátu JSON:
// Požadavek odešleme ve formátu JSON curl_setopt($ch, CURLOPT_URL, $host."/c/".$firma."/faktura-vydana.json"); // Nastavení parametrů pro založení jednoduché faktury // Nastavení samotné operace curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); // Nastavení parametrů pro založení jednoduché faktury $faktura = array( "winstrom" => array ( "faktura-vydana" => array( "typDokl" => "code:FAKTURA", "firma" => "code:WINSTROM", "popis" => "Moje Faktura v PHP","sumDphZakl" => "1000.0", "bezPolozek" => "true", ) ) ); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($faktura));
Export faktury do ISDOC
Doklad můžete přečíst v mnoha formátech včetně XML, JSON, PDF či ISDOC (přehled podporovaných formátů):
// Požadavek chceme ve formátu ISDOCX curl_setopt($ch, CURLOPT_URL, $host."/c/".$firma."/faktura-vydana/19.isdocx"); // Nastavení samotné operace curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); // Proveď samotnou operaci $output = curl_exec($ch); // Odešleme výsledek do prohlížeče uživatele header("Content-Type: application/x-isdocx"); print ($output);
Smazání dokladu
Pokud chcete smazat doklad, stačí nad ním vyvolat HTTP operaci DELETE:
// Nastavení URL. JSON na konci je proto, abychom dostali případnou // chybovou odpověď ve formát JSON. curl_setopt($ch, CURLOPT_URL, $host."/c/".$firma."/faktura-vydana/19.json"); // Nastavení samotné operace curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE"); // Proveď samotnou operaci $output = curl_exec($ch);