Erhalten Sie Echtzeit-Ereignisbenachrichtigungen für Ihre Zonos-Integration.
Webhooks bieten Zonos die Möglichkeit, Ihre externen Systeme proaktiv zu benachrichtigen, wenn bestimmte Ereignisse stattfinden. Wenn das abonnierte Ereignis eintritt, sendet Zonos eine HTTP-POST-Anfrage an die von Ihnen angegebene Webhook-URL. Der Anforderungstext enthält die Ereignisdetails, sodass Ihr System das Ereignis programmgesteuert verarbeiten kann.
Webhooks sind nützlich, um Zonos mit anderen Plattformen zu integrieren, automatisierte Workflows auszulösen und Daten systemübergreifend in Echtzeit zu synchronisieren. Sie könnten Webhooks beispielsweise verwenden, um:
Ihr Auftragsverwaltungssystem zu aktualisieren, wenn eine Bestellung in Zonos erstellt wird
Ihren Fulfillment-Anbieter zu benachrichtigen, wenn eine Sendung storniert wird
Statusänderungen internationaler Bestellungen zu Prüfzwecken zu protokollieren
Alle verfügbaren Webhook-Typen sind in der WebhookType-Enumeration enthalten. Beispielnutzlasten für jeden finden Sie in unserem Ereignistypen-Leitfaden.
Wichtig: Speichern Sie den Wert secret, wenn Sie den Webhook erstellen – er wird nur an dieser Stelle zurückgegeben, und Sie benötigen ihn, um Webhook-Signaturen zu überprüfen. Siehe Überprüfen von Webhook-Signaturen weiter unten.
Jede von Zonos gesendete Webhook-Anfrage enthält einen zonos-signature-Header, mit dem Sie bestätigen können, dass die Anfrage tatsächlich von Zonos stammt und dass die Nutzlast während der Übertragung nicht verändert wurde.
timestamp — der Zeitpunkt, zu dem die Anfrage signiert wurde, in Unix-Epochen-Millisekunden.
hmac — eine HMAC-SHA256-Signatur des rohen JSON-Anfragetexts, berechnet mit dem Secret Ihres Webhooks als Schlüssel und Base64-codiert.
So überprüfen Sie eine Anfrage:
Extrahieren Sie die Werte timestamp und hmac aus dem zonos-signature-Header.
Berechnen Sie Ihre eigene HMAC-SHA256-Signatur über den rohen, nicht geparsten Anfragetext, unter Verwendung des Secrets, das Sie beim Erstellen des Webhooks erhalten haben.
Vergleichen Sie Ihre berechnete Signatur mit dem Wert hmac anhand eines zeitkonstanten Vergleichs und lehnen Sie die Anfrage ab, wenn sie nicht übereinstimmen.
Lehnen Sie optional Anfragen ab, bei denen timestamp älter als einige Minuten ist, um sich vor der Wiederholung einer abgefangenen Anfrage zu schützen. Zonos erzwingt selbst kein Zustellfenster, daher liegt diese Prüfung bei Ihnen.
Hinweis: Wenn Sie benutzerdefinierte Header für Ihren Webhook konfiguriert haben, werden diese ebenfalls unverändert bei jeder Anfrage neben zonos-signature mitgesendet.
Webhooks
Hören Sie sich Ereignisse mit Webhooks an
Erhalten Sie Echtzeit-Ereignisbenachrichtigungen für Ihre Zonos-Integration.
Webhooks bieten Zonos die Möglichkeit, Ihre externen Systeme proaktiv zu benachrichtigen, wenn bestimmte Ereignisse stattfinden. Wenn das abonnierte Ereignis eintritt, sendet Zonos eine HTTP-POST-Anfrage an die von Ihnen angegebene Webhook-URL. Der Anforderungstext enthält die Ereignisdetails, sodass Ihr System das Ereignis programmgesteuert verarbeiten kann.
Webhooks sind nützlich, um Zonos mit anderen Plattformen zu integrieren, automatisierte Workflows auszulösen und Daten systemübergreifend in Echtzeit zu synchronisieren. Sie könnten Webhooks beispielsweise verwenden, um:
Webhook-Typen
Alle verfügbaren Webhook-Typen sind in der
WebhookType-Enumeration enthalten. Beispielnutzlasten für jeden finden Sie in unserem Ereignistypen-Leitfaden.Webhooks erstellen
So erstellen Sie einen Webhook über die API:
mutation WebhookCreate($input: WebhookCreateInput!) {webhookCreate(input: $input) {idurltypestatussecretheaders {key}}}Webhook-Details bearbeiten
So bearbeiten Sie einen vorhandenen Webhook über die API:
mutation WebhookUpdate($input: WebhookUpdateInput!) {webhookUpdate(input: $input) {idurltypestatus}}Überprüfen von Webhook-Signaturen
Jede von Zonos gesendete Webhook-Anfrage enthält einen
zonos-signature-Header, mit dem Sie bestätigen können, dass die Anfrage tatsächlich von Zonos stammt und dass die Nutzlast während der Übertragung nicht verändert wurde.Der Header-Wert hat das folgende Format:
timestamp— der Zeitpunkt, zu dem die Anfrage signiert wurde, in Unix-Epochen-Millisekunden.hmac— eine HMAC-SHA256-Signatur des rohen JSON-Anfragetexts, berechnet mit dem Secret Ihres Webhooks als Schlüssel und Base64-codiert.So überprüfen Sie eine Anfrage:
timestampundhmacaus demzonos-signature-Header.hmacanhand eines zeitkonstanten Vergleichs und lehnen Sie die Anfrage ab, wenn sie nicht übereinstimmen.timestampälter als einige Minuten ist, um sich vor der Wiederholung einer abgefangenen Anfrage zu schützen. Zonos erzwingt selbst kein Zustellfenster, daher liegt diese Prüfung bei Ihnen.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);}Webhook-Protokolle anzeigen
So zeigen Sie Webhook-Protokolle über die API an:
query WebhookLogs($first: Int$after: String$filter: WebhookLogsFilterInput) {webhookLogs(first: $first, after: $after, filter: $filter) {edges {node {idtypeurlcreatedAtresponseStatus}}}}WebhookCreateInput WebhookLogsFilterInput WebhookUpdateInput
webhookCreate webhookUpdate
War diese Seite hilfreich?