Preskoči na glavno vsebino

ABRA Flexi API z jazyka PHP

Ukážka práce s API v jazyku PHP

Avtor: Lenka Haringerová

Chcete ukážkový príklad práce s Flexi API v jazyku PHP?

Spoločný kód

Aby boli jednotlivé ukážky jednoduchšie, pripravíme si spoločný kód, ktorý nám pripraví prostredie:

// 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 prípadne aj 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);

Vytvorenie dokladu

Doklad môžete vytvoriť odoslaním jednoduchého XML (vo formáte Flexi XML), ktoré zabezpečí založenie 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, '
<winstrom version="1.0">
<faktura-vydana>
<typDokl>code:FAKTURA</typDokl>
<firma>code:WINSTROM</firma>
<popis>Moje faktura v PHP</popis>
<sumZklZakl>1000.0</sumZklZakl>
<bezPolozek>true</bezPolozek>
</faktura-vydana>
</winstrom>
');


// Nastavení správné hlavičky
$headers = ['Content-Type: application/json'];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers

Identifikátor vytvorenej faktúry je odovzdaný niekoľkými spôsobmi (viac pozri podporované HTTP operácie):

To isté môžete vykonať aj vo formáte 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));

// Nastavení správné hlavičky
$headers = ['Content-Type: application/json'];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

Export faktúry do ISDOC

Doklad môžete načítať v mnohých formátoch vrátane XML, JSON, PDF či ISDOC (prehľad podporovaných formátov):

// 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);

Zmazanie dokladu

Ak chcete zmazať doklad, stačí nad ním vyvolať HTTP operáciu 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);
Ste s tem dobili odgovor na svoje vprašanje?