Telepítés folyamata
Az alábbiakban részletezzük, hogy zajlik egy külső fejlesztésű integráció telepítése a felhasználó által. Ennek a technikai hátterét kell neked is megteremteni.
- A vásárló az Unas admin felületen az integrációs listában kattint az Alkalmazás telepítése gombra.
- Unas meghívja az InstallURL-t - POST hívás, amiben az alábbi adatokat küldjük.
shop_id - áruház egyedi azonosítója
time - kérés időpontja
token - kéréshez generált egyedi hash, 2 percig érvényes
hmac - ellenőrző hash
Például (PHP mintakód):
$data = [
'shop_id' => '1000',
'time' => '1709206682',
'token' => '098f6bcd4621d373cade4e832627b4f6',
'hmac' => '66b1132a0173910b01ee3a15ef4e69583bbf2f7f1e4462c99efbe1b9ab5bf808'
];
$ch = curl_init('https://app-123456.com/app/install');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
- Az alkalmazás ellenőrzi a kérés hitelességét: a kérés
hmac nélküli részének secret kulccsal kódolt sha256 hash-e meg kell egyezzen a kérésben szereplő hmac értékkel.
Például:
$query="shop_id=1000&time=1709206682&token=098f6bcd4621d373cade4e832627b4f6";
$hmac=hash_hmac('sha256', $query, $secret)
- Ha a hitelesítés sikeres, akkor az alkalmazás POST kérést küld az Unas felé, a requestApiKey végpontra. A kérés ugyan azokat az adatokat kell tartalmazza, mint az InstallURL hívásakor.
Például:
$data = [
'shop_id' => '1000',
'time' => '1709206682',
'token' => '098f6bcd4621d373cade4e832627b4f6',
'hmac' => '66b1132a0173910b01ee3a15ef4e69583bbf2f7f1e4462c99efbe1b9ab5bf808'
];
$ch = curl_init('https://shop.unas.eu/app-123456/requestApiKey');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
- Unas válaszban megküldi az alkalmazás működéséhez szükséges adatokat vagy az esetleges telepítési hibával kapcsolatos részleteket:
api_key - Unas API kapcsolódóhoz szükséges API kulcs
permissions - Alkalmazás számára engedélyezett API végpontok
allowed_ips - Alkalmazás számára engedélyezett IP címek, IP tartományok
status - ok: sikeres telepítés, error: telepítési hiba
error - telepítési hiba oka
Példa sikeres kérésre:
{"api_key":"07936bfd4621d373cade4e932657b4f6",
"permissions":["getOrder","setOrder","getProduct"],
"allowed_ips":["192.168.1.1","192.168.1.2","192.168.2.1/24"],
"status":"ok"}
Hiba lehetséges okai:
hmac nem megfelelő.
- A kérés nem engedélyezett IP címről érkezett.
- Hibás vagy nem létező
shop_id.
- Hibás vagy nem létező
token.
- A
token érvényességi ideje lejárt.
Példa sikertelen kérésre:
{"status":"error","error":"Expired token"}
- Ha a telepítés sikeresen lezajlott, akkor Unas elindítja az integrációt (embedded típus esetén iframe-ben, redirected típus esetén átirányítással. Ehhez a StartURL-t használjuk, aminek GET paraméterében ugyan azon adatok szerepelnek, mint az Install URL hívásakor, kiegészítve az alábbi adatokkal. Később, ha már telepítve van az integráció, akkor ezzel a lépéssel azonnal indítjuk az integrációt.
user - Az admin felületet aktuálisan használó felhasználó felhasználóneve.
dark - Ha az admin felületet sötét módban használja a felhasználó, akkor ennek értéke 1, egyéb esetben 0.
Az integrációnak a StartURL meghívásakor ellenőriznie kell, hogy a time érték 2 percen belüli-e, ellenkező esetben az alkalmazás nem indulhat el. Embedded típusú integráció esetén az integrációnak gondoskodnia kell arról, hogy ha a referer header értéke nem https://shop.unas.hu/ vagy https://shop.unas.eu/ értékű, akkor ne induljon el.