Få notifikationer om begivenheder i realtid til din Zonos-integration.
Webhooks giver Zonos mulighed for proaktivt at underrette dine eksterne systemer, når bestemte begivenheder finder sted. Når den abonnerede begivenhed indtræffer, sender Zonos en HTTP POST-anmodning til den webhook-URL, du angiver. Anmodningens brødtekst indeholder begivenhedsdetaljerne, så dit system kan håndtere begivenheden programmatisk.
Webhooks er nyttige til at integrere Zonos med andre platforme, udløse automatiserede workflows og holde data synkroniseret på tværs af systemer i realtid. Du kan for eksempel bruge webhooks til at:
Opdatere dit ordrestyringssystem, når en ordre oprettes i Zonos
Underrette din opfyldelsesudbyder, når en forsendelse annulleres
Logge statusændringer for internationale ordrer til revisionsformål
Vigtigt: Gem værdien for secret, når du opretter webhooken — den returneres kun her, og du får brug for den til at verificere webhook-signaturer. Se Verificering af webhook-signaturer nedenfor.
Hver webhook-anmodning, som Zonos sender, indeholder en zonos-signature-header, så du kan bekræfte, at anmodningen faktisk kom fra Zonos, og at indholdet ikke er blevet ændret undervejs.
timestamp — tidspunktet, i Unix-epoke-millisekunder, hvor anmodningen blev signeret.
hmac — en HMAC-SHA256-signatur af den rå JSON-anmodningstekst, beregnet med din webhooks secret som nøgle og Base64-kodet.
Sådan verificerer du en anmodning:
Udtræk værdierne for timestamp og hmac fra zonos-signature-headeren.
Beregn din egen HMAC-SHA256-signatur over den rå, ikke-parsede anmodningstekst ved hjælp af den secret, du modtog, da du oprettede webhooken.
Sammenlign din beregnede signatur med hmac-værdien ved hjælp af en konstant-tids-sammenligning, og afvis anmodningen, hvis de ikke stemmer overens.
Du kan eventuelt afvise anmodninger, hvor timestamp er ældre end nogle få minutter, for at beskytte mod gentagelse (replay) af en opsnappet anmodning. Zonos håndhæver ikke selv et leveringsvindue, så dette tjek er op til dig.
Bemærk: Hvis du har konfigureret brugerdefinerede headers til din webhook, er disse også inkluderet uændret i hver anmodning sammen med zonos-signature.
Webhooks
Lyt til begivenheder med webhooks
Få notifikationer om begivenheder i realtid til din Zonos-integration.
Webhooks giver Zonos mulighed for proaktivt at underrette dine eksterne systemer, når bestemte begivenheder finder sted. Når den abonnerede begivenhed indtræffer, sender Zonos en HTTP POST-anmodning til den webhook-URL, du angiver. Anmodningens brødtekst indeholder begivenhedsdetaljerne, så dit system kan håndtere begivenheden programmatisk.
Webhooks er nyttige til at integrere Zonos med andre platforme, udløse automatiserede workflows og holde data synkroniseret på tværs af systemer i realtid. Du kan for eksempel bruge webhooks til at:
Webhook-typer
Alle tilgængelige webhook-typer findes i enum
WebhookType. Eksempel-payloads for hver type findes i vores guide til Begivenhedstyper.Oprettelse af webhooks
For at oprette en webhook via API:
mutation WebhookCreate($input: WebhookCreateInput!) {webhookCreate(input: $input) {idurltypestatussecretheaders {key}}}Rediger webhook-detaljer
For at redigere en eksisterende webhook via API:
mutation WebhookUpdate($input: WebhookUpdateInput!) {webhookUpdate(input: $input) {idurltypestatus}}Verificering af webhook-signaturer
Hver webhook-anmodning, som Zonos sender, indeholder en
zonos-signature-header, så du kan bekræfte, at anmodningen faktisk kom fra Zonos, og at indholdet ikke er blevet ændret undervejs.Header-værdien har følgende format:
timestamp— tidspunktet, i Unix-epoke-millisekunder, hvor anmodningen blev signeret.hmac— en HMAC-SHA256-signatur af den rå JSON-anmodningstekst, beregnet med din webhookssecretsom nøgle og Base64-kodet.Sådan verificerer du en anmodning:
timestampoghmacfrazonos-signature-headeren.secret, du modtog, da du oprettede webhooken.hmac-værdien ved hjælp af en konstant-tids-sammenligning, og afvis anmodningen, hvis de ikke stemmer overens.timestamper ældre end nogle få minutter, for at beskytte mod gentagelse (replay) af en opsnappet anmodning. Zonos håndhæver ikke selv et leveringsvindue, så dette tjek er op til dig.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);}Vis webhook-logfiler
For at se webhook-logfiler via API:
query WebhookLogs($first: Int$after: String$filter: WebhookLogsFilterInput) {webhookLogs(first: $first, after: $after, filter: $filter) {edges {node {idtypeurlcreatedAtresponseStatus}}}}WebhookCreateInput WebhookLogsFilterInput WebhookUpdateInput
webhookCreate webhookUpdate
Var denne side nyttig?