ABRA FlexiBee API z jazyka PHP

Chcete ukázkový příklad práce s FlexiBee 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 FlexiBee)
curl_setopt($ch, CURLOPT_HTTPAUTH, TRUE);       // HTTP authentication
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // FlexiBee 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 FlexiBee 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, '
<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>
');

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 FlexiBee XML:
    <winstrom version="1.0">
      <success>true</success>
      <result>
        <id>105</id>
      </result>
    </winstrom>
    

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