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:
https://app-123456.com/app/install?shop_id=1000&time=1709206682&token=098f6bcd4621d373cade4e832627b4f6&hmac=66b1132a0173910b01ee3a15ef4e69583bbf2f7f1e4462c99efbe1b9ab5bf808
- 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 GET 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 GET hívásakor.
Például:
https://shop.unas.eu/app-123456/requestApiKey?shop_id=1000&time=1709206682&token=098f6bcd4621d373cade4e832627b4f6&hmac=66b1132a0173910b01ee3a15ef4e69583bbf2f7f1e4462c99efbe1b9ab5bf808
- 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.