API kulcs alapú azonosítás
Ez az azonosítási mód az ajánlott megoldás. Az áruház adminisztrációs felületén a
Beállítások / Külső kapcsolatok / API kapcsolat menüben hozhatsz létre API kulcsot. Itt beállíthatod azt is, hogy az adott API kulcs segítségével milyen API funkciók legyenek elérhetők. A végpontnál az alábbi limitek élnek:
Sikeres hívások maximális száma: 2000 / óra
A limittől függetlenül NEM ajánljuk az ilyen gyakori lekéréseket, mivel egy sikeres kérés által visszakapott token 2 órán keresztül használható!
Sikertelen hívások maximális száma: 5 / óra
Bármely API funkció használata előtt belépés szükséges. Ehhez a "login" API funkció használható, amihez az alábbi formátumú bemeneti XML tartozik:
<?xml version="1.0" encoding="UTF-8" ?>
<Params>
<ApiKey>abc123</ApiKey> <!-- Az admin felületen létrehozott api kulcs -->
</Params>
Megfelelő API kulcs megadása esetén a sikeres XML válasz így néz ki:
<?xml version="1.0" encoding="UTF-8" ?>
<Login>
<Token>xyz789</Token> <!-- A későbbi hívásoknál használandó folyamat azonosító token -->
<Expire>2020.01.01 10:00:00</Expire> <!-- A token érvényességének lejárati időpontja -->
<ShopId>1000</ShopId> <!-- Webáruház azonosító -->
<Subscription>vip-100000</Subscription> <!-- Webáruház előfizetése -->
<Permissions> <!-- Jogosultságok -->
<Permission>getProduct</Permission>
<Permission>setProduct</Permission>
<Permission>...</Permission>
</Permissions>
<Status>ok</Status> <!-- Sikeres belépés státusza -->
</Login>
A visszakapott token Bearer autorizációs HTTP fejlécként használandó a későbbi hívásokhoz. A lejárati időn belül a token több híváshoz is használható, így NEM szükséges minden más hívás előtt a login kérés.
Minta API kulcsos azonosításhoz
Az alábbi PHP példa alapján áttekinthetőek az API hívás szükséges lépései. Természetesen bármilyen programozási nyelven megvalósítható ugyanez a felépítés.
<?php
//////////////////////////////////////////////////
/// curl init
$curl = curl_init();
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
///////////////////////////////////////////////////////////////////
/// login
$request='<qqqxml version="1.0" encoding="UTF-8" qqq>
<Params>
<ApiKey>abc123</ApiKey>
</Params>';
curl_setopt($curl, CURLOPT_URL, "https://api.unas.eu/shop/login");
curl_setopt($curl, CURLOPT_POSTFIELDS,$request);
$response = curl_exec($curl);
$xml=simplexml_load_string($response);
$token=(string)$xml->Token;
///////////////////////////////////////////////////////////////////
/// getOrder
$headers=array();
$headers[]="Authorization: Bearer ".$token;
$request='<qqqxml version="1.0" encoding="UTF-8" qqq>
<Params>
<Key>123456</Key>
</Params>';
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_URL, "https://api.unas.eu/shop/getOrder");
curl_setopt($curl, CURLOPT_POSTFIELDS,$request);
$response = curl_exec($curl);
echo $response;
///////////////////////////////////////////////////////////////////
/// getProduct
$headers=array();
$headers[]="Authorization: Bearer ".$token;
$request='<qqqxml version="1.0" encoding="UTF-8" qqq>
<Params>
<Id>654321</Id>
</Params>';
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_URL, "https://api.unas.eu/shop/getProduct");
curl_setopt($curl, CURLOPT_POSTFIELDS,$request);
$response = curl_exec($curl);
echo $response;
?>
Felhasználónév alapú azonosítás
Ezt a megoldást új API kliens fejlesztésekhez
NEM javasoljuk, ilyen esetben kérünk használd az
API kulcs alapú azonosítást. Az áruház adminisztrációs felületén a
Beállítások / Külső kapcsolatok / API kapcsolat menüben engedélyezheted a felhasználónév alapú azonosítást. A használt felhasználó minden API funkcióhoz korlátozás nélkül hozzáférhet. Az adott API funkció használatához az autentikációs adatokat illetve a funkció bemeneti adatait POST változóként kell elküldeni. Az autentikációs XML az alábbi módon épül fel:
<?xml version="1.0" encoding="UTF-8" ?>
<Auth>
<Username>abc123</Username> <!-- Felhasználónév -->
<PasswordCrypt>abcdefghijklmnopqrstuvwxyz</PasswordCrypt> <!-- Kódolt jelszó -->
<ShopId>1000</ShopId> <!-- Áruház azonosító -->
<AuthCode>01ab23ce56</AuthCode> <!-- Hash -->
</Auth>
Minta felhasználóneves azonosításhoz
Az alábbi PHP példa alapján áttekinthető egy teljes API hívás. Természetesen bármilyen programozási nyelven megvalósítható ugyanez a felépítés.
<?php
$auth='<qqqxml version="1.0" encoding="UTF-8" qqq>
<Auth>
<Username>abc123</Username>
<PasswordCrypt>abcdefghijklmnopqestuvwxyz</PasswordCrypt>
<ShopId>1000</ShopId>
<AuthCode>01ab23ce56</AuthCode>
</Auth>';
$params='<qqqxml version="1.0" encoding="UTF-8" qqq>
<Params>
<Key>123456</Key>
</Params>';
$curl = curl_init();
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_URL, "https://api.unas.eu/shop/getOrder");
curl_setopt($curl, CURLOPT_POSTFIELDS,"auth=".urlencode($auth)."¶ms=".urlencode($params));
$response = curl_exec($curl);
echo $response;
?>