Otrzymuj powiadomienia o zdarzeniach w czasie rzeczywistym dla twojej integracji Zonos.
Webhooki umożliwiają Zonosowi proaktywnie powiadamiać twoje systemy zewnętrzne, gdy następują określone zdarzenia. Gdy wystąpi zarejestrowane zdarzenie, Zonos wyśle żądanie HTTP POST na adres URL webhooka, który określisz. Treść żądania będzie zawierać szczegóły zdarzenia, umożliwiając twoim systemom obsługę zdarzenia programowo.
Webhooki są przydatne do integracji Zonosa z innymi platformami, wyzwalania zautomatyzowanych przepływów pracy i utrzymywania synchronizacji danych w systemach w czasie rzeczywistym. Na przykład możesz użyć webhooków do:
Aktualizacji systemu zarządzania zamówieniami, gdy zamówienie zostanie utworzone w Zonosie
Powiadomienia dostawcy realizacji, gdy wysyłka zostanie anulowana
Logowania zmian statusu zamówień międzynarodowych w celach audytu
Wszystkie dostępne typy webhooków są zawarte w wyliczeniu WebhookType. Przykładowe ładunki dla każdego można znaleźć w naszym przewodniku Typy zdarzeń.
Ważne: Zapisz wartość secret podczas tworzenia webhooka — jest ona zwracana tylko tutaj i będzie ci potrzebna do weryfikacji podpisów webhooków. Zobacz Weryfikacja podpisów webhooków poniżej.
Każde żądanie webhooka wysyłane przez Zonos zawiera nagłówek zonos-signature, dzięki któremu możesz potwierdzić, że żądanie rzeczywiście pochodzi od Zonos i że jego treść nie została zmieniona podczas przesyłania.
timestamp — czas, w milisekundach epoki Uniksa, w którym żądanie zostało podpisane.
hmac — podpis HMAC-SHA256 surowej treści żądania JSON, obliczony przy użyciu sekretu twojego webhooka jako klucza i zakodowany w formacie Base64.
Aby zweryfikować żądanie:
Wyodrębnij wartości timestamp i hmac z nagłówka zonos-signature.
Oblicz własny podpis HMAC-SHA256 na podstawie surowej, nieprzetworzonej treści żądania, używając sekretu otrzymanego podczas tworzenia webhooka.
Porównaj obliczony podpis z wartością hmac, stosując porównanie w czasie stałym, i odrzuć żądanie, jeśli się nie zgadzają.
Opcjonalnie odrzucaj żądania, w których timestamp jest starszy niż kilka minut, aby zabezpieczyć się przed powtórzeniem przechwyconego żądania. Zonos sam nie wymusza okna dostarczenia, więc ta kontrola należy do ciebie.
Webhooki
Słuchaj zdarzeń za pośrednictwem webhooków
Otrzymuj powiadomienia o zdarzeniach w czasie rzeczywistym dla twojej integracji Zonos.
Webhooki umożliwiają Zonosowi proaktywnie powiadamiać twoje systemy zewnętrzne, gdy następują określone zdarzenia. Gdy wystąpi zarejestrowane zdarzenie, Zonos wyśle żądanie HTTP POST na adres URL webhooka, który określisz. Treść żądania będzie zawierać szczegóły zdarzenia, umożliwiając twoim systemom obsługę zdarzenia programowo.
Webhooki są przydatne do integracji Zonosa z innymi platformami, wyzwalania zautomatyzowanych przepływów pracy i utrzymywania synchronizacji danych w systemach w czasie rzeczywistym. Na przykład możesz użyć webhooków do:
Typy webhooków
Wszystkie dostępne typy webhooków są zawarte w wyliczeniu
WebhookType. Przykładowe ładunki dla każdego można znaleźć w naszym przewodniku Typy zdarzeń.Tworzenie webhooków
Aby utworzyć webhook za pośrednictwem API:
mutation WebhookCreate($input: WebhookCreateInput!) {webhookCreate(input: $input) {idurltypestatussecretheaders {key}}}Edytuj szczegóły webhooka
Aby edytować istniejący webhook za pośrednictwem API:
mutation WebhookUpdate($input: WebhookUpdateInput!) {webhookUpdate(input: $input) {idurltypestatus}}Weryfikacja podpisów webhooków
Każde żądanie webhooka wysyłane przez Zonos zawiera nagłówek
zonos-signature, dzięki któremu możesz potwierdzić, że żądanie rzeczywiście pochodzi od Zonos i że jego treść nie została zmieniona podczas przesyłania.Wartość nagłówka ma format:
timestamp— czas, w milisekundach epoki Uniksa, w którym żądanie zostało podpisane.hmac— podpis HMAC-SHA256 surowej treści żądania JSON, obliczony przy użyciu sekretu twojego webhooka jako klucza i zakodowany w formacie Base64.Aby zweryfikować żądanie:
timestampihmacz nagłówkazonos-signature.hmac, stosując porównanie w czasie stałym, i odrzuć żądanie, jeśli się nie zgadzają.timestampjest starszy niż kilka minut, aby zabezpieczyć się przed powtórzeniem przechwyconego żądania. Zonos sam nie wymusza okna dostarczenia, więc ta kontrola należy do ciebie.const crypto = require('crypto');function verifyZonosWebhook(rawBody, signatureHeader, secret) {const [timestampPart, hmacPart] = signatureHeader.split(',');const receivedHmac = hmacPart.split('=')[1];const expectedHmac = crypto.createHmac('sha256', secret).update(rawBody).digest('base64');const receivedBuffer = Buffer.from(receivedHmac);const expectedBuffer = Buffer.from(expectedHmac);if (receivedBuffer.length !== expectedBuffer.length) {return false;}return crypto.timingSafeEqual(receivedBuffer, expectedBuffer);}Wyświetl dzienniki webhooków
Aby wyświetlić dzienniki webhooków za pośrednictwem API:
query WebhookLogs($first: Int$after: String$filter: WebhookLogsFilterInput) {webhookLogs(first: $first, after: $after, filter: $filter) {edges {node {idtypeurlcreatedAtresponseStatus}}}}WebhookCreateInput WebhookLogsFilterInput WebhookUpdateInput
webhookCreate webhookUpdate
Czy ta strona była pomocna?