Začínáme s Previo XML

Způsoby komunikace

Previo XML je postaveno na zasílání XML zpráv přes protokol HTTP. Každá operace (ceníky, pokoje, ...) má svoji unikátní URL, na které je možno ji zavolat.

Operaci zavoláte tak, že vezmete její parametry, obalíte je do elementu <request> a vzniklý XML dokument zašlete jako POST data na URL operace. Odpovědí bude opět XML dokument obsahující výstup operace.

Zavolání Hotel.get v PHP

PHP nabízí několik způsobů jak zaslat POST data na specifikovanou URL.

<?php
$login    = '*****';
$password = '*****';

$request =
    '<?xml version="1.0"?>' . "\n" .
    '<request>' .
    '<login>' . htmlspecialchars($login) . '</login>' .
    '<password>' . htmlspecialchars($password) . '</password>' .
    '<hotId>1</hotId>' .
    '</request>';

$context = stream_context_create(array(
    'http' => array(
    'method'  => 'POST',
    'header'  => 'Content-Type: application/xml',
    'content' => $request)));

$response = file_get_contents(
    'https://api.previo.cz/x1/hotel/get', null, $context);

echo "<pre>\n";
echo htmlspecialchars($response);
echo "</pre>";
<?php
$login    = '*****';
$password = '*****';
 
$request =
	'<?xml version="1.0"?>' . "\n" .
	'<request>' .
	    '<login>' . htmlspecialchars($login) . '</login>' .
	    '<password>' . htmlspecialchars($password) . '</password>' .
	    '<hotId>1</hotId>' .
	'</request>';
 
$ch = curl_init('https://api.previo.cz/x1/hotel/get');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 
$response = curl_exec($ch);
 
echo "<pre>\n";
echo htmlspecialchars($response);
echo "</pre>";

Použijte curl, pokud je na vašem serveru zakázáno allow_url_fopen. Naopak pokud chybí curl, zkuste file_get_contents.

URL adresy

Základní URL adresa Previo API je:

https://api.previo.cz/x1/

 

URL konkrétní operace získate tak, že vezmete její název, tečku nahradíte lomítkem, zmenšíte první písmeno a přidáte k základní URL. Například:

  • Hotel.get => https://api.previo.cz/x1/hotel/get
  • System.getCountries => https://api.previo.cz/x1/system/getCountries

Přihlašovací údaje

Každá operace obsahuje parametry login a password, bez nich skončí volání chybou. Pokud zatím svoje přihlašovací údaje nemáte, kontaktujte nás prosím.

Chyby

Volání operace se nemusí vždy podařit. Chyba může být v Previo API nebo ve vašich parametrech. V případě chyby Previo API namísto očekáváného XML dokumentu vrátí tento:

<error>
    <code>kod_chyby</code>
    <message>popis_chyby</message>
</error>

Seznam všech chybových kódů a zpráv.

V nejzávažnějších případech může náš server odpovědět chybou HTTP 500 nebo dokonce neodpovědět vůbec. Nezapomeňte ve vašem kódu ošetřit i tyto stavy.

Seznam operací

Všechny dostupné operace najdete v levém menu v Seznamu operací.