Skip to main content
HjemBloggWebhook-sporing av forsendelser: Slik fungerer sporings-webhooks sammenlignet med polling (payloads, nye forsøk og oppsett)

Webhook-sporing av forsendelser: Slik fungerer sporings-webhooks sammenlignet med polling (payloads, nye forsøk og oppsett)

17TRACK

Webhooks for forsendelsessporing sender en HTTP-forespørsel til applikasjonen din når en sporingstjeneste har en oppdatering å rapportere. Polling fungerer i motsatt retning: applikasjonen din ber gjentatte ganger om den nyeste sporingsinformasjonen. For utviklere som kobler forsendelsesdata til et ordrebehandlingssystem, en butikk eller en tjeneste for kundemeldinger, er webhooks vanligvis den beste primære oppdateringsmekanismen når den støttes. Målrettet polling kan bidra til å gjenopprette tapte oppdateringer og avstemme poster.

Webhook Shipment Tracking How Tracking Webhooks Work vs Polling Payloads

Ingen av metodene får en transportør til å skanne en pakke tidligere. Begge avhenger av når sporingskilden mottar og gjør ny informasjon tilgjengelig. Den praktiske forskjellen er hvordan applikasjonen din lærer om denne informasjonen, hvor mye forespørselstrafikk den genererer, og hva som skjer når leveringen mislykkes.

Webhooks for sporing kontra polling: den driftsmessige forskjellen

Dette er integrasjonsmønstre, ikke konkurrerende sporingsdatabaser. En transportør eller sporingsplattform kan tilby det ene mønsteret eller begge, med ulike tilgangsbetingelser. Sammenlign virkemåten til det spesifikke API-et du planlegger å bruke, i stedet for å anta at alle webhook-tjenester har de samme garantiene.

BeslutningspunktWebhooksPolling
Hvem starter forespørselen?Sporingstjenesten kaller endepunktet ditt.Applikasjonen din kaller sporings-API-et.
OppdateringsforsinkelseAvhenger av hvor oppdaterte kildedataene er, hendelsesgenerering, levering og behandling.Avhenger også av når den neste planlagte forespørselen kjøres.
ForespørselsvolumBestemmes av utsendte oppdateringer, gruppering og leveringsforsøk.Bestemmes av forsendelsesvolum, pollingfrekvens og gruppering.
InfrastrukturKrever en tilgjengelig mottaker og sikker håndtering av innkommende forespørsler.Krever en planlegger, utgående API-tilgang og håndtering av hastighetsbegrensninger.
Gjenoppretting etter feilAvhenger av leverandørens nye forsøk samt din egen avstemmingsprosess.Avhenger av senere forespørsler og om API-et beholder den nødvendige historikken.

Velg webhooks først når rettidige oppdateringer er viktige og teamet ditt kan drifte en pålitelig mottaker. Velg polling først når innkommende endepunkter er upraktiske, forsendelsesvolumet er moderat, eller kilden ikke tilbyr egnede webhooks. Bruk et hybridoppsett når tapte oppdateringer vil forstyrre kundekommunikasjon eller drift, og API-et støtter avstemming.

Ikke anta at webhooks er billigere. Abonnementsavgifter, registrering av sporing, API-kall, hendelseslevering og infrastruktur kan faktureres på ulike måter. Sammenlign de faktiske kommersielle vilkårene og forventet arbeidsmengde i stedet for å betrakte færre forespørsler som bevis på en lavere regning.

Hva skjer mellom en transportørskanning og applikasjonen din?

  1. Identifiser forsendelsen. Knytt sammen sporingsnummeret, transportørinformasjon der det kreves, og en intern forsendelsesreferanse. Noen tjenester krever registrering før overvåkingen starter.
  2. Konfigurer hendelseslevering. Oppgi en HTTPS-callback-URL og velg eventuelle støttede hendelsesabonnementer.
  3. Kilden mottar sporingsinformasjon. En transportørskanning eller statusendring blir tilgjengelig for sporingstjenesten.
  4. Tjenesten sender en webhook. Forespørselen kan inneholde et fullstendig øyeblikksbilde av sporingen, ett enkelt kontrollpunkt eller bare en referanse som krever et API-oppslag.
  5. Mottakeren validerer og lagrer den. Autentiser forespørselen, kontroller strukturen og lagre eller legg hendelsen i kø på en varig måte.
  6. En arbeider oppdaterer forretningssystemene. Normaliser statuser, oppdater forsendelsesposter og utløs bare handlinger som fortsatt er hensiktsmessige.

En webhook-levering er ikke det samme som en fysisk levering. Det er en melding om forsendelsesinformasjon. På samme måte beviser ikke et vellykket webhook-svar at en e-post ble sendt eller at en ordrepost ble oppdatert. Dette er resultater av etterfølgende behandling som trenger egen overvåking.

Slik leser du en nyttelast fra en sporings-webhook

Følgende JSON er et illustrerende integrasjonsdesign, ikke en 17TRACK-nyttelast eller et universelt skjema. Faktiske feltnavn, statuskoder, tidsstempelformater og hendelsesidentifikatorer må hentes fra dokumentasjonen til den valgte leverandøren.

{
  "event_id": "evt_example_001",
  "event_type": "shipment.updated",
  "created_at": "2025-04-08T10:16:00Z",
  "shipment": {
    "reference": "shipment_example_123",
    "tracking_number": "EXAMPLE123456",
    "carrier_code": "example_carrier",
    "status": "in_transit",
    "checkpoint": {
      "occurred_at": "2025-04-08T10:10:00Z",
      "description": "Departed processing facility"
    }
  }
}

Skill mellom tre klokker i datamodellen din: når forsendelseshendelsen inntraff, når leverandøren genererte meldingen, og når applikasjonen din mottok den. Et forsinket kontrollpunkt kan ankomme etter et nyere kontrollpunkt. Et tidsstempel uten forskyvning trenger også en eksplisitt tolkning. Ikke behandle alle transportørens lokale tidsstempler som UTC uten videre.

Behold den interne forsendelsesreferansen sammen med leverandørens identifikatorer. Et sporingsnummer alene er kanskje ikke tilstrekkelig som en permanent global identifikator, særlig på tvers av ulike transportørkontekster. For delte ordrer bør du opprettholde poster på forsendelsesnivå i stedet for å la statusen «levert» for én pakke markere hele ordren som fullført.

Bevar den opprinnelige statusen og beskrivelsen sammen med den normaliserte forretningsstatusen. Applikasjonen din kan knytte flere transportørmeldinger til «under transport», men supportmedarbeidere kan fortsatt trenge det opprinnelige kontrollpunktet for å forstå en forsinkelse. Behandle estimerte leveringsdatoer som estimater, og skill mellom et manglende felt og en eksplisitt instruksjon om å tømme en eksisterende verdi.

Nye forsøk, bekreftelser og dupliserte hendelser

Webhook-levering kan mislykkes på grunn av tidsavbrudd, nettverksavbrudd, autentiseringsfeil eller en utilgjengelig mottaker. En leverandør kan forsøke på nytt, men det finnes ingen universell plan for nye forsøk, oppbevaringsperiode eller maksimalt antall forsøk. Bekreft hvilke svar som utløser et nytt forsøk, hvordan omdirigeringer håndteres, og om manuell videresending er tilgjengelig.

Bekreft etter varig mottak

Hold forespørselsbanen kort: valider forespørselen, lagre det godtatte arbeidet varig, og returner suksessvaret leverandøren krever. Send e-poster og utfør langsommere forretningsoperasjoner asynkront. HTTP-spesifikasjonen definerer 202 Accepted som aksept for behandling, ikke som fullført behandling, men leverandøren din kan kreve et annet suksessvar. Følg webhook-kontrakten deres.

Hvis du returnerer suksess før du har lagret noe, risikerer du å miste oppdateringen dersom prosessen krasjer. Hvis du venter på alle etterfølgende handlinger, risikerer du et tidsavbrudd og et nytt leveringsforsøk. En varig innboks eller kø gir et skille mellom mottak og behandling.

Gjør behandlingen idempotent

Idempotens betyr at behandling av den samme hendelsen på nytt ikke gjentar forretningseffektene. En avsender kan forsøke på nytt etter at serveren din har godtatt en hendelse, men bekreftelsen har gått tapt. Duplisert levering bør derfor være et vanlig testtilfelle.

  • Bruk en dokumentert hendelsesidentifikator som dedupliseringsnøkkel når en slik finnes, avgrenset til riktig leverandør eller konto.
  • Hvis ingen identifikator finnes, utform en sammensatt nøkkel fra stabile hendelsesfelt og test risikoen for kollisjoner.
  • Håndhev unikhet atomisk i lagringen. En separat sekvens med «kontroller, deretter sett inn» kan føre til kappløp ved samtidig levering.
  • Beskytt også etterfølgende handlinger. En duplisert hendelse må ikke sende et nytt leveringsvarsel eller gjenta en økonomisk handling.
  • Angi oppbevaringsperioden i tråd med leverandørens avspillingsatferd og kravene til gjenoppretting, i stedet for å slette dedupliseringsposter umiddelbart.

Ikke anta kronologisk ankomst

Ikke overskriv gjeldende forsendelsestilstand bare fordi en forespørsel ankom sist. Sammenlign hendelsens betydning, tidsstempler og eventuell dokumentert sekvensinformasjon. Bevar sene kontrollpunkter i historikken uten automatisk å flytte den viste statusen bakover. Tillat samtidig dokumenterte korrigeringer. En rigid regel om at leverte forsendelser aldri kan endres, kan skjule legitime unntak eller korrigert informasjon.

En praktisk oppsettsjekkliste

1. Bekreft leverandørkontrakten

Før implementering må du bekrefte registreringskrav, støttede hendelser, nyttelastens struktur, autentisering, forventede svar, tidsavbrudd, atferd ved nye forsøk og API-begrensninger. Kontroller om et varsel representerer et øyeblikksbilde eller en trinnvis endring, om leveringer kan inneholde flere poster, og om et abonnement sender en innledende tilstand.

For en 17TRACK-integrasjon kan du begynne med den offisielle Tracking API-siden og API-dokumentasjonen. Bruk leverandørens spesifikke dokumentasjon til å fastsette forespørselsfelt og callback-krav. Den generiske nyttelasten ovenfor er ikke en erstatning for dette. Bekreft tilgangsbetingelser og driftsbegrensninger for integrasjonen du har tenkt å distribuere.

2. Sikre mottaksendepunktet

Bruk HTTPS og autentiseringsmekanismen leverandøren dokumenterer. Hvis den bruker en HMAC-signatur, må du validere nøyaktig den signerte inndataen som er angitt. Når rå forespørselsbytes signeres, kan parsing og ny serialisering av JSON før verifisering endre disse bytene og gjøre signaturen ugyldig. Bruk sammenligning i konstant tid for signaturverdier som er avledet fra hemmeligheter.

Hvis signerte tidsstempler eller leveringsidentifikatorer er tilgjengelige, skal du bruke de dokumenterte kontrollene mot replay-angrep. En gyldig signatur autentiserer en melding, men fastslår ikke alene at den er fersk. Hold hemmeligheter borte fra URL-er og applikasjonslogger, støtt rotering av hemmeligheter og begrens forespørselsstørrelser. IP-tillattliste kan være en ekstra kontroll når vedlikeholdte adresseområder finnes, men er ikke en erstatning for meldingsautentisering.

3. Skill mottak fra forretningsbehandling

Lagre nok informasjon til å spore og trygt spille av en godtatt hendelse på nytt. Køarbeidere bør normalisere oppdateringen, bruke regler for tilstandsoverganger og registrere resultatene av handlingene. Legg arbeid som mislykkes gjentatte ganger i en gjennomgåelig dead-letter-arbeidsflyt i stedet for å prøve for alltid. Begrens tilgang og oppbevaring fordi sporingsnyttelaster kan inneholde kundeinformasjon.

4. Test feilbaner før lansering

  • Send den samme hendelsen to ganger, inkludert samtidige leveringer.
  • Lever et eldre kontrollpunkt etter et nyere.
  • Simuler et køavbrudd og et krasj i en arbeider etter mottak.
  • Test ugyldig autentisering, feilformatert JSON og for store forespørsler.
  • Test ukjente forsendelser, manglende valgfrie felt og nye felt.
  • Kontroller at én levert pakke ikke fullfører en delt ordre.
  • Spill av en hendelse på nytt etter gjenoppretting, og bekreft at varsler fortsatt dedupliseres.

Vær tolerant overfor ekstra felt når det er trygt, men ikke tolk ukjente statusverdier på nytt uten å varsle. Bevar råverdien og send ukjente tilfeller gjennom en definert reserve- eller gjennomgangsprosess.

Hvor polling fortsatt har sin plass

Polling er nyttig for innledende synkronisering, gjenoppretting etter et avbrudd og kontroll av forsendelser der forventede oppdateringer ikke har ankommet. Stillhet alene er imidlertid ikke et bevis på webhook-feil. En pakke kan faktisk ha ingen nye skanninger. Avstem mot API-ets gjeldende tilstand eller historikk i stedet for å anta at enhver stille forsendelse trenger et varsel.

For skaleringsplanlegging er en forenklet pollingmodell requests per hour ≈ active shipments × polls per shipment per hour, forutsatt én forsendelse per forespørsel. Batch-endepunkter endrer denne beregningen. Som illustrasjon genererer 1 000 forsendelser som kontrolleres fire ganger i timen, 4 000 forespørsler i timen før nye forsøk. Dette er aritmetikk, ikke et leverandørkvot eller prisestimat.

Planlegg kontroller etter forsendelsesaktivitet og forretningsrisiko, respekter hastighetsbegrensninger og legg til jitter slik at jobbene ikke starter samtidig. Bruk begrenset backoff ved feil som kan forsøkes på nytt, og følg gjeldende veiledning fra serveren. Ikke prøv gjentatte ganger på permanente legitimasjons- eller valideringsfeil uten å rette dem.

Et praktisk hybridsystem bruker webhooks for rutinemessige oppdateringer og målrettede API-lesinger for mistenkte hull. Overvåk mottaksfeil, køalder, behandlingsfeil, duplikatfrekvens og avstemmingsavvik separat. Når tidsstemplene er pålitelige, må du skille mellom forsinkelse i kildedata, forsinkelse i webhook-levering og forsinkelse i intern behandling.

Vanlige spørsmål

Er sporings-webhooks sanntidsbaserte?

De kan redusere forsinkelsen som oppstår når man venter på neste pollingrunde. De garanterer ikke umiddelbare transportørskanninger eller øyeblikkelige kildeoppdateringer. Oppdatert informasjon fra ende til ende omfatter transportørens rapportering, leverandørens behandling, levering av forespørselen og din egen applikasjon.

Kan jeg slutte helt med polling etter at jeg har aktivert webhooks?

Muligens, hvis leverandørens gjenopprettingsfunksjoner og forretningskravene dine gjør dette akseptabelt. For driftsmessig viktige forsendelsesposter bør du beholde en avstemmingsmetode. Den kan være målrettet i stedet for kontinuerlig polling av alle forsendelser.

Hva skjer hvis webhook-endepunktet mitt er frakoblet?

Gjenoppretting avhenger av avsenderens dokumenterte policy for nye forsøk. Ikke anta at nye forsøk fortsetter uendelig. Etter at endepunktet er gjenopprettet, bør du undersøke mislykkede leveringer, bruke støttede verktøy for videresending og avstemme berørte forsendelser via API-et der det er tilgjengelig.

Bør hver webhook utløse et kundemvarsel?

Nei. En hendelse kan være en duplikat, et historisk kontrollpunkt eller en oppdatering som ikke endrer statusen som vises for kunden. Utløs varsler fra dedupliserte forretningsoverganger, med regler for unntak og korrigeringer.

Betyr et vellykket HTTP-svar at forsendelsesoppdateringen er fullført?

Ikke nødvendigvis. I et asynkront design betyr det at mottakeren godtok hendelsen i henhold til den avtalte kontrakten. Spor fullføring av behandlingen og resultater for etterfølgende varsler separat, slik at en godtatt forespørsel ikke kan skjule en mislykket arbeidsflyt.

Kilder

Loading