Vebhuk šalje HTTP zahtev na URL koji izabereš svaki put kada se nešto desi u tvom salonu, na primer kada se kreira termin ili ažurira klijent. Koristi ga da drugi sistem bude usklađen sa Softalonom.
Pre nego što počneš
- Tvoj salon koristi plan Ultimate.
- Imaš ulogu Super administrator ili Vlasnik.
- Imaš URL koji prihvata
POSTzahteve sa JSON telom i počinje sahttps://ilihttp://.
Kreiraj vebhuk
- 1
Korak 1 od 4
Otvori Vebhukove
Idi na Podešavanja › Programeri › Vebhukovi i klikni na Kreiraj vebhuk.
- 2
Korak 2 od 4
Unesi odredište
Popuni Odredišni URL, na primer
https://example.com/webhook, i po želji Opis, da kasnije lakše prepoznaš vebhuk. - 3
Korak 3 od 4
Izaberi teme
U delu Teme izaberi događaje koje želiš. Kartica Sve teme navodi sve dostupne teme, a kartica Izabrane teme prikazuje izabrane teme. Tvoj URL prima samo teme koje izabereš.
- 4
Korak 4 od 4
Sačuvaj
Klikni na Kreiraj vebhuk.
Videćeš:Vebhuk kreiran, a vebhuk se pojavljuje u tabeli sa uključenim prekidačem statusa.
Teme
Teme se zovu resource.action. Dostupne su ove:
Šta znači koji okidač, pogledaj u vodiču Okidači automatizacija.
Šta Softalon šalje
Svaki događaj je POST zahtev sa JSON telom:
{
"topic": "booking/appointment.created",
"event": {
"id": "...",
"type": "booking/appointment.created",
"resource": "booking/appointment",
"resourceId": "...",
"salonId": "...",
"data": {
"object": { "...": "the full object" },
"previousAttributes": { "...": "changed fields, for updates" }
}
}
}
Zahtev ima ova zaglavlja:
Proveri potpis
Svaki vebhuk ima secret. Softalon njime potpisuje telo zahteva algoritmom HMAC-SHA256 i šalje heksadecimalni rezultat u zaglavlju X-Webhook-Signature. Izračunaj istu vrednost iz sirovog tela zahteva i uporedi ih. Ako se ne poklapaju, zanemari zahtev.
const crypto = require("crypto");
function isValid(rawBody, header, secret) {
const expected = "sha256=" + crypto.createHmac("sha256", secret).update(rawBody).digest("hex");
return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(header));
}
Za upravljanje secretom koristi dugmad u koloni Secret:
- Dugme sa okom prikazuje ceo secret, a dugme za kopiranje ga kopira.
- Dugme za ponovno generisanje odmah pravi novi secret. Stari secret odmah prestaje da radi, pa istovremeno ažuriraj svoj sistem.
Isporuke i ponovni pokušaji
- Tvoj URL mora da odgovori statusnim kodom
2xxu roku od 10 sekundi. Sve ostalo se računa kao neuspeh. - Neuspela isporuka se ponavlja, najviše 5 pokušaja ukupno. Razmaci između pokušaja rastu: oko 30 sekundi, 1 minut, 2 minuta i 4 minuta.
- Koristi
X-Webhook-Delivery-Idda zanemariš isporuku koja je već obrađena.
Svaka isporuka ima jedan od ovih statusa:
Aplikacija još ne prikazuje evidenciju isporuka. Isporuke možeš da pročitaš preko API-ja na GET /v1/salons/:salonId/webhook-endpoints/:webhookEndpointId/deliveries. Pogledaj Kreiraj API aplikaciju.
Ako su poslednjih 5 isporuka nekom vebhuku sve u statusu exhausted, Softalon isključuje taj vebhuk. Popravi svoj endpoint, a zatim ponovo uključi prekidač statusa. Događaji koji se dese dok je vebhuk isključen ne šalju se kasnije.
Izmeni, pauziraj ili obriši vebhuk
- Pauziranje: isključi prekidač u koloni Status.
- Izmena: otvori meni u redu i izaberi Ažuriraj.
- Brisanje: otvori meni u redu i izaberi Obriši.
Vebhukovi šalju samo dok tvoj salon ima aktivnu, probnu ili dospelu pretplatu na planu koji uključuje vebhukove.
Česta pitanja
Svaka isporuka se šalje zasebno i ponavlja po svom rasporedu, zato se ne oslanjaj na redosled stizanja zahteva. Umesto toga koristi vremenske oznake samog objekta.