Webhook felvétele
1
Nyisd meg a Webhook fület
A menüben kattints az Értesítések menüpontra, majd a Lista lehetőségre és válaszd felül a Webhook fület.
2
Kattints az Új értesítés gombra
Add meg az Értesítés nevét, például „CRM: új foglalás” és az Esemény mezőben válaszd ki, mikor menjen ki a webhook. Kattints a Létrehozás gombra.
3
Add meg a kérés adatait
Válaszd ki a kérés módját, add meg a Webhook URL-t és az elküldendő adatokat, lásd lent.
4
Mentsd el
Kattints a Mentés gombra.
5
Rendelj hozzá Signing Secretet
A webhook csak akkor megy ki, ha Signing Secret tartozik hozzá. Lásd: Signing Secret.

Egy webhook, ami minden új foglalást elküld a CRM-be
A kérés beállításai
- Kérés módja: POST, PUT, GET vagy DELETE. A legtöbb rendszer POST kérést vár.
- Webhook URL: a fogadó rendszer címe. Csak https:// kezdetű cím lehet.
- Headerek: a kéréshez küldött fejlécek, ha a fogadó rendszer ilyet kér, például egy
Authorizationfejlécet a saját kulcsával. Az Új header gombbal adhatsz hozzá újat. - Content type: POST és PUT kérésnél választhatsz a JSON, a Form-data és a Nincs body közül.
- Body mezők vagy JSON body: az elküldött adatok. Form-data esetén mezőnként adod meg a nevet és az értéket, JSON esetén egy JSON szöveget írsz.
Teszt küldés
A Teszt küldés gombbal azonnal elküldheted a kérést a megadott címre. A rendszer kiírja, milyen HTTP státuszkóddal válaszolt a fogadó rendszer, így rögtön látod, hogy elfogadta-e a kérést.Signing Secret
A Signing Secret egy titkos kulcs, amivel a rendszer minden webhook kérést aláír. A fogadó rendszer ebből tudja ellenőrizni, hogy a kérés valóban tőled jött és útközben senki nem módosította. Signing Secret nélkül a webhook nem megy ki, a szerkesztőben ilyenkor figyelmeztetés jelenik meg.1
Nyisd meg a Fejlesztőknek oldalt
A menüben kattints a Beállítások menüpontra, majd a Fejlesztőknek lehetőségre.
2
Hozz létre egy kulcsot
A Signing Secretek résznél kattints az Új Signing Secret gombra. A Megnevezés csak neked szól, például annak a rendszernek a neve, amelyik a kéréseket fogadja.
3
Rendeld hozzá a webhookokat
A kulcs sorában kattints a Webhook gombra és válaszd ki, mely webhookokat írja alá ez a kulcs. Egy webhookhoz egyszerre egy kulcs tartozhat.
4
Add meg a kulcsot a fogadó rendszerben
Másold ki a kulcsot és add meg a fogadó rendszerben, hogy az ellenőrizni tudja az aláírást.

Egy Signing Secret a Fejlesztőknek oldalon

Webhook hozzárendelése a kulcshoz
Az aláírás ellenőrzése
Minden kérés megkapja azX-Onlinefoglalas-Signature fejlécet ebben a formában:
t a küldés ideje Unix időbélyegként, a v1 pedig a HMAC-SHA256 aláírás hexadecimálisan. Az ellenőrzés lépései:
- Bontsd fel a fejlécet a
tés av1értékre. - Vedd a kérés nyers body-ját pontosan úgy, ahogy megérkezett. GET és DELETE kérésnél a body üres.
- Állítsd össze az aláírt szöveget: írd egymás után a
tértékét, egy pont karaktert (.) és a nyers body-t, szóköz nélkül. Például:1791100000.{"foglalas_id":"1248"} - Számolj erre HMAC-SHA256-ot a Signing Secrettel és kódold hexadecimálisan.
- Hasonlítsd össze a
v1értékkel állandó idejű (constant-time) összehasonlítással, például PHP-ban ahash_equalsfüggvénnyel. Így az összehasonlítás ideje nem árulja el, hány karakter egyezett. - Ellenőrizd, hogy a
tfriss, például legfeljebb 5 perces. Ez véd a replay attack ellen: ha valaki elfog egy kérést, később nem tudja újra elküldeni neked.
Fontos tudnivalók
- Az aláírás mindig a nyers body-ra készül, a tartalomtípustól függetlenül, tehát JSON és Form-data esetén is.
- GET és DELETE kérésnél nincs body, ilyenkor az aláírt szöveg csak az időbélyeg és utána a pont karakter, például:
1791100000. - Ha az aláírás fejléc hiányzik vagy érvénytelen, utasítsd el a kérést, mert nem tőled jött.
- Signing Secret nélkül a webhook ki sem megy, ezért minden hozzád érkező kérés alá van írva.
- A Signing Secretet environment variable-ben vagy secret managerben tárold, ne a forráskódban.
Példakódok
Az alábbi példák mind ugyanazt csinálják: ellenőrzik az aláírást és az időbélyeget, majdfalse értéket adnak, ha a kérés nem tőled jött vagy túl régi. A példák a Signing Secretet az ONLINEFOGLALAS_WEBHOOK_SECRET environment variable-ből olvassák.
Kiküldés és hibák
- A webhook a háttérben megy ki, ezért a foglalást nem lassítja.
- A rendszer 10 másodpercig vár a válaszra. Ha a fogadó rendszer nem érhető el, a rendszer háromszor újrapróbálja, 10, 30 és 60 másodperc múlva.
- Ha a fogadó rendszer hibakóddal válaszol (nem 2xx státusszal), a küldés sikertelen lesz és a rendszer nem próbálja újra.

