Skip to main content
EtusivuBlogiWebhook-lähetyksen seuranta: miten seuranta-webhookit toimivat verrattuna pollaukseen (payloadit, uudelleenyritykset ja käyttöönotto)

Webhook-lähetyksen seuranta: miten seuranta-webhookit toimivat verrattuna pollaukseen (payloadit, uudelleenyritykset ja käyttöönotto)

17TRACK

Lähetysseurannan webhookit lähettävät HTTP-pyynnön sovellukseesi, kun seurantapalvelulla on raportoitava päivitys. Kysely toimii päinvastaiseen suuntaan: sovelluksesi pyytää uusimmat seurantatiedot toistuvasti. Kehittäjille, jotka yhdistävät lähetystietoja tilaustenhallintajärjestelmään, verkkokauppaan tai asiakasviestintäpalveluun, webhookit ovat yleensä parempi ensisijainen päivitysmekanismi silloin, kun niitä tuetaan; kohdennettu kysely voi auttaa palauttamaan väliin jääneet päivitykset ja täsmäyttämään tietueet.

Webhook Shipment Tracking How Tracking Webhooks Work vs Polling Payloads

Kumpikaan menetelmä ei saa kuljetusliikettä skannaamaan pakettia nopeammin. Molemmat riippuvat siitä, milloin seurantatietojen lähde vastaanottaa ja julkaisee uutta tietoa. Käytännön ero on siinä, miten sovelluksesi saa tiedon, kuinka paljon pyyntöliikennettä se tuottaa ja mitä tapahtuu toimituksen epäonnistuessa.

Seurannan webhookit vs. kysely: toiminnallinen ero

Nämä ovat integraatiomalleja, eivät kilpailevia seurantatietokantoja. Kuljetusliike tai seurantaympäristö voi tarjota jommankumman mallin tai molemmat erilaisin käyttöehdoin. Vertaa käyttämäsi API:n todellista toimintaa sen sijaan, että olettaisit kaikkien webhook-palvelujen tarjoavan samat takuut.

PäätöskohtaWebhookitKysely
Kuka aloittaa pyynnön?Seurantapalvelu kutsuu päätepistettäsi.Sovelluksesi kutsuu seuranta-API:a.
Päivityksen viiveRiippuu lähteen ajantasaisuudesta, tapahtuman muodostamisesta, toimituksesta ja käsittelystä.Riippuu myös siitä, milloin seuraava ajastettu pyyntösi suoritetaan.
Pyyntöjen määräMääräytyy lähetettyjen päivitysten, eräajon ja toimitusyritysten perusteella.Määräytyy lähetysten määrän, kyselytiheyden ja eräajon perusteella.
InfrastruktuuriEdellyttää saavutettavaa vastaanotinta ja turvallista saapuvien pyyntöjen käsittelyä.Edellyttää ajastinta, lähtevää API-yhteyttä ja nopeusrajoitusten käsittelyä.
Virheistä palautuminenRiippuu palveluntarjoajan uusintayrityksistä ja omasta täsmäytysprosessistasi.Riippuu myöhemmistä pyynnöistä ja siitä, säilyttääkö API tarvittavan historian.

Valitse webhookit ensin, kun oikea-aikaiset päivitykset ovat tärkeitä ja tiimisi pystyy ylläpitämään luotettavaa vastaanotinta. Valitse kysely ensin, kun saapuvat päätepisteet ovat epäkäytännöllisiä, lähetysten määrä on kohtuullinen tai lähde ei tarjoa sopivia webhookeja. Käytä hybridimallia, kun väliin jääneet päivitykset häiritsisivät asiakasviestintää tai toimintoja ja API tukee täsmäytystä.

Älä oleta, että webhookit ovat halvempia. Tilausmaksut, seurannan rekisteröinti, API-kutsut, tapahtumien toimitus ja infrastruktuuri voidaan laskuttaa eri tavoin. Vertaa todellisia kaupallisia ehtoja ja odotettua työmäärää sen sijaan, että pitäisit pienempää pyyntömäärää todisteena pienemmästä laskusta.

Mitä tapahtuu kuljetusliikkeen skannauksen ja sovelluksesi välillä?

  1. Tunnista lähetys. Yhdistä seurantanumero, tarvittaessa kuljetusliikkeen tiedot ja sisäinen lähetysviite. Jotkin palvelut edellyttävät rekisteröintiä ennen seurannan aloittamista.
  2. Määritä tapahtumien toimitus. Anna HTTPS-callback-URL-osoite ja valitse tuetut tapahtumatilaukset.
  3. Lähde vastaanottaa seurantatiedot. Kuljetusliikkeen skannaus tai tilanmuutos tulee seurantapalvelun saataville.
  4. Palvelu lähettää webhookin. Pyyntö voi sisältää täydellisen seurantatilannekuvan, yhden tarkistuspisteen tai vain viitteen, joka edellyttää API-hakua.
  5. Vastaanottimesi vahvistaa ja tallentaa sen. Tunnista pyyntö, tarkista sen rakenne ja tallenna tai jonota tapahtuma pysyvästi.
  6. Työntekijä päivittää liiketoimintajärjestelmät. Normalisoi tilat, päivitä lähetystietueet ja käynnistä vain toimet, jotka ovat edelleen tarkoituksenmukaisia.

Webhookin toimitus ei ole sama asia kuin fyysinen toimitus. Se on viesti lähetystiedoista. Vastaavasti onnistunut webhook-vastaus ei todista, että sähköposti lähetettiin tai tilaustietue päivitettiin; nämä ovat myöhemmän käsittelyn tuloksia, joita on valvottava erikseen.

Seurannan webhook-hyötykuorman lukeminen

Seuraava JSON on havainnollistava integraatiosuunnitelma, ei 17TRACKin hyötykuorma tai yleinen skeema. Todellisten kenttien nimet, tilakoodit, aikaleimojen muodot ja tapahtumatunnisteet on haettava valitun palveluntarjoajan dokumentaatiosta.

{
  "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"
    }
  }
}

Erota tietomallissasi kolme kelloa: milloin lähetystapahtuma tapahtui, milloin palveluntarjoaja loi viestin ja milloin sovelluksesi vastaanotti sen. Viivästynyt tarkistuspiste voi saapua uudemman jälkeen. Ilman aikavyöhykesiirtymää oleva aikaleima tarvitsee myös selkeän tulkinnan; älä käsittele kaikkia kuljetusliikkeen paikallisia aikaleimoja hiljaisesti UTC-aikana.

Säilytä sisäinen lähetysviitteesi palveluntarjoajan tunnisteiden rinnalla. Pelkkä seurantanumero ei välttämättä riitä pysyväksi maailmanlaajuiseksi tunnisteeksi, erityisesti eri kuljetusliikekonteksteissa. Jaetuissa tilauksissa ylläpidä lähetyskohtaisia tietueita sen sijaan, että yhden paketin toimitettu-tila merkitsisi koko tilauksen valmiiksi.

Säilytä alkuperäinen tila ja kuvaus normalisoidun liiketoimintatilan rinnalla. Sovelluksesi voi yhdistää useita kuljetusliikkeen viestejä tilaan ”kuljetuksessa”, mutta tukihenkilöt voivat silti tarvita alkuperäisen tarkistuspisteen viivästyksen ymmärtämiseksi. Käsittele arvioituja toimituspäiviä arvioina ja erota puuttuva kenttä nimenomaisesta ohjeesta tyhjentää olemassa oleva arvo.

Uusintayritykset, kuittaukset ja päällekkäiset tapahtumat

Webhookin toimitus voi epäonnistua aikakatkaisujen, verkkokatkosten, todennusvirheiden tai saavuttamattoman vastaanottimen vuoksi. Palveluntarjoaja voi yrittää uudelleen, mutta yleistä uusintayritysten aikataulua, säilytysikkunaa tai yrityskertojen enimmäismäärää ei ole. Varmista, mitkä vastaukset käynnistävät uuden yrityksen, miten uudelleenohjaukset käsitellään ja onko manuaalinen uudelleentoimitus mahdollinen.

Kuittaa pysyvän vastaanoton jälkeen

Pidä pyyntöpolku lyhyenä: vahvista pyyntö, tallenna hyväksytty työ pysyvästi ja palauta palveluntarjoajan edellyttämä onnistumisvastaus. Lähetä sähköpostit ja suorita hitaammat liiketoimintatoimet asynkronisesti. HTTP-määritys määrittelee 202 Accepted -vastauksen käsittelyyn hyväksymiseksi, ei käsittelyn valmistumiseksi, mutta palveluntarjoajasi voi edellyttää muuta onnistumisvastausta. Noudata sen webhook-sopimusta.

Onnistumisen palauttaminen ennen tallennusta voi johtaa päivityksen menettämiseen prosessin kaatuessa. Kaikkien myöhempien toimien valmistumisen odottaminen voi aiheuttaa aikakatkaisun ja uuden toimitusyrityksen. Pysyvä inbox tai jono muodostaa rajan vastaanoton ja käsittelyn välille.

Tee käsittelystä idempotenttia

Idempotenssi tarkoittaa, että saman tapahtuman käsittely uudelleen ei toista sen liiketoimintavaikutuksia. Lähettäjä voi yrittää uudelleen sen jälkeen, kun palvelimesi on hyväksynyt tapahtuman mutta kuittaus on kadonnut. Päällekkäisen toimituksen tulee siksi olla tavallinen testitapaus.

  • Käytä dokumentoitua tapahtumatunnistetta deduplikointiavainkenttänä, jos sellainen on saatavilla, ja rajaa se oikeaan palveluntarjoajaan tai tiliin.
  • Jos tunnistetta ei ole, muodosta yhdistelmäavain vakaista tapahtumakentistä ja testaa törmäysriskit.
  • Varmista yksikäsitteisyys atomisesti tallennuksessa; erillinen ”tarkista ja lisää” -sarja voi joutua kilpailutilanteeseen samanaikaisessa toimituksessa.
  • Suojaa myös myöhemmät toimet. Päällekkäinen tapahtuma ei saa lähettää uutta toimitusilmoitusta tai toistaa taloudellista toimea.
  • Aseta säilytysaika palveluntarjoajan uudelleentoistokäytännön ja palautumisvaatimustesi mukaan sen sijaan, että poistaisit deduplikointitietueet heti.

Älä oleta tapahtumien saapuvan aikajärjestyksessä

Älä korvaa nykyistä lähetys tilaa vain siksi, että pyyntö saapui viimeisenä. Vertaa tapahtuman merkitystä, aikaleimoja ja dokumentoituja järjestystietoja. Säilytä myöhäiset tarkistuspisteet historiassa muuttamatta näytettävää tilaa automaattisesti taaksepäin. Salli samalla dokumentoidut korjaukset: jäykkä sääntö, jonka mukaan toimitettujen lähetysten tila ei voi koskaan muuttua, voi peittää oikeutetut poikkeukset tai korjatut tiedot.

Käytännön määrityslista

1. Vahvista palveluntarjoajan sopimus

Vahvista ennen toteutusta rekisteröintivaatimukset, tuetut tapahtumat, hyötykuorman rakenne, todennus, vastausodotukset, aikakatkaisut, uusintayrityskäytännöt ja API-rajoitukset. Tarkista, edustaako ilmoitus tilannekuvaa vai osittaista muutosta, voiko toimitus sisältää useita tietueita ja lähettääkö tilaaminen alkuperäisen tilan.

17TRACK-integraatiossa aloita viralliselta Tracking API -sivulta ja API-dokumentaatiosta. Käytä palveluntarjoajakohtaista dokumentaatiota pyyntökenttien ja callback-vaatimusten määrittämiseen; yllä oleva yleinen hyötykuorma ei korvaa sitä. Vahvista käyttöehdot ja toiminnalliset rajoitukset suunnitellulle integraatiolle.

2. Suojaa vastaanottava päätepiste

Käytä HTTPS:ää ja palveluntarjoajan dokumentoimaa todennusmenetelmää. Jos käytössä on HMAC-allekirjoitus, tarkista täsmälleen määritetty allekirjoitettu syöte. Kun allekirjoitetaan raakoja pyynnön tavuja, JSON:n jäsentäminen ja sarjoittaminen uudelleen ennen varmennusta voi muuttaa tavuja ja mitätöidä allekirjoituksen. Käytä vakioaikaista vertailua salaisuudesta johdetuille allekirjoitusarvoille.

Jos allekirjoitetut aikaleimat tai toimitustunnisteet ovat saatavilla, käytä dokumentoituja uudelleentoiston estomekanismeja. Kelvollinen allekirjoitus todentaa viestin, mutta ei yksin osoita sen olevan tuore. Pidä salaisuudet poissa URL-osoitteista ja sovelluslokeista, tue salaisuuksien vaihtamista ja rajoita pyyntöjen kokoa. IP-allowlistaus voi olla lisäsuojaus, jos ylläpidettyjä osoitealueita on saatavilla, mutta se ei korvaa viestin todennusta.

3. Erota vastaanotto liiketoimintakäsittelystä

Tallenna riittävästi tietoa hyväksytyn tapahtuman jäljittämiseen ja turvalliseen uudelleentoistoon. Jonotyöntekijöiden tulee normalisoida päivitys, soveltaa tilasiirtymäsääntöjä ja kirjata toimien tulokset. Ohjaa toistuvasti epäonnistuva työ tarkistettavaan dead-letter-käsittelyyn sen sijaan, että yrittäisit ikuisesti uudelleen. Rajoita käyttöä ja säilytysaikaa, koska seurantahyötykuormat voivat sisältää asiakkaisiin liittyviä tietoja.

4. Testaa virhepolut ennen julkaisua

  • Lähetä sama tapahtuma kahdesti, myös samanaikaisina toimituksina.
  • Toimita vanhempi tarkistuspiste uudemman jälkeen.
  • Simuloi jonon käyttökatko ja työntekijän kaatuminen vastaanoton jälkeen.
  • Testaa virheellinen todennus, virheellinen JSON ja liian suuret pyynnöt.
  • Testaa tuntemattomat lähetykset, puuttuvat valinnaiset kentät ja lisätyt kentät.
  • Varmista, ettei yhden paketin toimitus merkitse jaettua tilausta valmiiksi.
  • Toista tapahtuma palautumisen jälkeen ja varmista, että ilmoitukset pysyvät deduplikoituina.

Siedä lisätyt kentät turvallisissa tapauksissa, mutta älä tulkitse tuntemattomia tila-arvoja hiljaisesti uudelleen. Säilytä raaka arvo ja ohjaa tunnistamattomat tapaukset määritettyyn varamenettelyyn tai tarkistusprosessiin.

Missä kyselyllä on edelleen paikkansa

Kysely on hyödyllinen ensimmäiseen synkronointiin, käyttökatkon jälkeiseen palautumiseen ja sellaisten lähetysten tarkistamiseen, joiden odotettuja päivityksiä ei ole saapunut. Pelkkä hiljaisuus ei kuitenkaan todista webhookin epäonnistumista: paketilla ei ehkä aidosti ole uusia skannauksia. Täsmäytä API:n nykyiseen tilaan tai historiaan sen sijaan, että olettaisit jokaisen hiljaisen lähetyksen tarvitsevan hälytyksen.

Skaalasuunnittelussa yksinkertaistettu kyselymalli on requests per hour ≈ active shipments × polls per shipment per hour, kun oletetaan yksi lähetys pyyntöä kohden. Eräpäätteet muuttavat laskelmaa. Esimerkiksi 1 000 lähetyksen tarkistaminen neljä kertaa tunnissa tuottaa 4 000 pyyntöä tunnissa ennen uusintayrityksiä; tämä on aritmetiikkaa, ei palveluntarjoajan kiintiö- tai hinta-arvio.

Ajoita tarkistukset lähetysaktiivisuuden ja liiketoimintariskin mukaan, noudata nopeusrajoituksia ja lisää vaihtelua, jotta kaikki työt eivät käynnisty yhtä aikaa. Käytä uudelleen yritettävissä virheissä rajattua backoffia ja noudata soveltuvia palvelinohjeita. Älä yritä toistuvasti uudelleen pysyviä tunnistetieto- tai validointivirheitä korjaamatta niitä.

Käytännöllinen hybridijärjestelmä käyttää webhookeja tavallisiin päivityksiin ja kohdennettuja API-hakuja epäiltyjen aukkojen tarkistamiseen. Seuraa vastaanottovirheitä, jonon ikää, käsittelyvirheitä, päällekkäisyysastetta ja täsmäytyseroavaisuuksia erikseen. Kun aikaleimat ovat luotettavia, erota lähdetietojen viive webhook-toimituksen viiveestä ja sisäisen käsittelyn viiveestä.

UKK

Ovatko seurannan webhookit reaaliaikaisia?

Ne voivat lyhentää viivettä, joka syntyy seuraavan kyselykierroksen odottamisesta. Ne eivät takaa välittömiä kuljetusliikkeen skannauksia tai välitöntä lähteen päivittymistä. Päästä päähän ulottuva ajantasaisuus sisältää kuljetusliikkeen raportoinnin, palveluntarjoajan käsittelyn, pyynnön toimituksen ja oman sovelluksesi toiminnan.

Voinko lopettaa kyselyn kokonaan webhookien käyttöönoton jälkeen?

Mahdollisesti, jos palveluntarjoajan palautumisominaisuudet ja liiketoimintavaatimuksesi tekevät siitä hyväksyttävää. Toiminnan kannalta tärkeissä lähetystietueissa säilytä täsmäytysmenetelmä. Se voi olla kohdennettu jatkuvan kaikkien lähetysten kyselyn sijaan.

Mitä tapahtuu, jos webhook-päätepisteeni on offline-tilassa?

Palautuminen riippuu lähettäjän dokumentoidusta uusintayrityskäytännöstä. Älä oleta uusintayritysten jatkuvan loputtomasti. Kun päätepiste on palautettu, tarkista epäonnistuneet toimitukset, käytä tuettuja uudelleentoistotyökaluja ja täsmäytä affected shipments API:n kautta, jos mahdollista.

Pitäisikö jokaisen webhookin käynnistää asiakas ilmoitus?

Ei. Tapahtuma voi olla päällekkäinen, historiallinen tarkistuspiste tai päivitys, joka ei muuta asiakkaalle näkyvää tilaa. Käynnistä ilmoitukset deduplikoiduista liiketoimintasiirtymistä ja määritä säännöt poikkeuksille ja korjauksille.

Tarkoittaako onnistunut HTTP-vastaus, että lähetyksen päivitys on valmis?

Ei välttämättä. Asynkronisessa mallissa se tarkoittaa, että vastaanotin hyväksyi tapahtuman sovitun sopimuksen mukaisesti. Seuraa käsittelyn valmistumista ja myöhempien ilmoitusten tuloksia erikseen, jotta hyväksytty pyyntö ei voi peittää epäonnistunutta työnkulkua.

Lähteet

Loading