Skip to main content
KezdőlapBlogWebhookos szállítmánykövetés: hogyan működnek a követési webhookok a lekérdezéshez képest (payloadok, újrapróbálkozások és beállítás)

Webhookos szállítmánykövetés: hogyan működnek a követési webhookok a lekérdezéshez képest (payloadok, újrapróbálkozások és beállítás)

17TRACK

A szállítmánykövetési webhookok HTTP-kérést küldenek az alkalmazásának, amikor egy követési szolgáltatásnak jelentésre váró frissítése van. A lekérdezéses módszer ennek az ellenkező irányában működik: az alkalmazása ismételten lekéri a legfrissebb követési információkat. A szállítmányadatokat rendeléskezelő rendszerhez, áruházhoz vagy ügyfélértesítési szolgáltatáshoz kapcsoló fejlesztők számára a webhookok általában jobb elsődleges frissítési mechanizmust jelentenek, ha támogatottak; a célzott lekérdezés segíthet a kimaradt frissítések helyreállításában és a rekordok egyeztetésében.

Webhook Shipment Tracking How Tracking Webhooks Work vs Polling Payloads

Egyik módszer sem gyorsítja fel a fuvarozó csomagszkennelését. Mindkettő attól függ, hogy a követési forrás mikor fogadja és teszi elérhetővé az új információkat. A gyakorlati különbség az, hogy az alkalmazása hogyan értesül ezekről az információkról, mekkora kérésforgalmat generál, és mi történik kézbesítési hiba esetén.

Követési webhookok és lekérdezés: a működésbeli különbség

Ezek integrációs minták, nem egymással versengő követési adatbázisok. Egy fuvarozó vagy követési platform az egyik vagy mindkét mintát kínálhatja, eltérő hozzáférési feltételekkel. Azt a konkrét API-t vizsgálja meg, amelyet használni kíván, ahelyett hogy feltételezné: minden webhookszolgáltatás ugyanazokat a garanciákat nyújtja.

Döntési szempontWebhookokLekérdezés
Ki indítja a kérést?A követési szolgáltatás hívja meg az Ön végpontját.Az alkalmazása hívja meg a követési API-t.
Frissítési késleltetésA forrás frissességétől, az esemény létrehozásától, a kézbesítéstől és a feldolgozástól függ.Attól is függ, hogy mikor fut le a következő ütemezett kérés.
Kérések mennyiségeA kibocsátott frissítések, a kötegelés és a kézbesítési újrapróbálkozások határozzák meg.A szállítmányok száma, a lekérdezés gyakorisága és a kötegelés határozza meg.
InfrastruktúraElérhető fogadó végpontot és a bejövő kérések biztonságos kezelését igényli.Ütemezőt, kimenő API-hozzáférést és a sebességkorlátozás kezelését igényli.
HibahelyreállításA szolgáltató újrapróbálkozásaitól és a saját egyeztetési folyamatától függ.A későbbi kérésektől és attól függ, hogy az API megőrzi-e a szükséges előzményeket.

Elsőként webhookokat válasszon, ha fontosak az időszerű frissítések, és csapata képes megbízható fogadó végpontot üzemeltetni. Elsőként lekérdezést válasszon, ha a bejövő végpontok nem praktikusak, a szállítmányok mennyisége mérsékelt, vagy a forrás nem biztosít megfelelő webhookokat. Hibrid kialakítást használjon, ha a kimaradt frissítések megzavarnák az ügyfélkommunikációt vagy a működést, és az API támogatja az egyeztetést.

Ne feltételezze, hogy a webhookok olcsóbbak. Az előfizetési díjak, a követés regisztrációja, az API-hívások, az események kézbesítése és az infrastruktúra eltérő módon számlázható. Hasonlítsa össze a tényleges kereskedelmi feltételeket és a várható munkaterhelést, ahelyett hogy a kevesebb kérést automatikusan alacsonyabb számlának tekintené.

Mi történik a fuvarozói szkennelés és az alkalmazása között?

  1. A szállítmány azonosítása. Kapcsolja össze a követési számot, a szükség esetén megadott fuvarozói adatokat és a belső szállítmányhivatkozást. Egyes szolgáltatásoknál a megfigyelés megkezdése előtt regisztráció szükséges.
  2. Az eseménykézbesítés beállítása. Adjon meg egy HTTPS-visszahívási URL-t, és válassza ki a támogatott esemény-előfizetéseket.
  3. A forrás fogadja a követési információkat. Egy fuvarozói szkennelés vagy állapotváltozás elérhetővé válik a követési szolgáltatás számára.
  4. A szolgáltatás webhookot küld. A kérés tartalmazhat teljes követési pillanatképet, egyetlen ellenőrzőpontot vagy csak egy hivatkozást, amely API-lekérdezést igényel.
  5. Az Ön fogadó végpontja ellenőrzi és tárolja. Hitelesítse a kérést, ellenőrizze a szerkezetét, majd tartósan rögzítse vagy tegye sorba az eseményt.
  6. Egy feldolgozó frissíti az üzleti rendszereket. Normalizálja az állapotokat, frissítse a szállítmányrekordokat, és csak a még megfelelő műveleteket indítsa el.

A webhook kézbesítése nem azonos a fizikai kézbesítéssel. Ez egy szállítmányinformációról szóló üzenet. Hasonlóképpen, a sikeres webhookválasz nem bizonyítja, hogy egy e-mailt elküldtek, vagy hogy egy rendelési rekord frissült; ezek további feldolgozási eredmények, amelyekhez saját megfigyelés szükséges.

Követési webhook hasznos terhének olvasása

Az alábbi JSON egy szemléltető integrációs kialakítás, nem 17TRACK-hasznos teher és nem univerzális séma. A tényleges mezőneveknek, állapotkódoknak, időbélyeg-formátumoknak és eseményazonosítóknak a kiválasztott szolgáltató dokumentációjából kell származniuk.

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

Az adatmodellben különítsen el három időpontot: mikor történt a szállítmány eseménye, mikor hozta létre az üzenetet a szolgáltató, és mikor fogadta azt az alkalmazása. Egy későn érkező ellenőrzőpont egy újabb után is megérkezhet. Az eltolás nélküli időbélyeghez explicit értelmezés szükséges; ne kezeljen automatikusan minden fuvarozói helyi időbélyeget UTC-ként.

Tartsa meg a belső szállítmányhivatkozást a szolgáltató azonosítói mellett. A követési szám önmagában nem biztos, hogy elegendő állandó globális azonosítóként, különösen eltérő fuvarozói környezetekben. Megosztott rendelések esetén szállítmányszintű rekordokat tartson fenn, ahelyett hogy egyetlen csomag kézbesített állapota a teljes rendelést lezárná.

Őrizze meg az eredeti állapotot és leírást a normalizált üzleti állapot mellett. Az alkalmazása több fuvarozói üzenetet is „úton” állapotra képezhet le, de az ügyfélszolgálati munkatársaknak továbbra is szükségük lehet az eredeti ellenőrzőpontra a késés megértéséhez. A várható kézbesítési dátumokat becslésként kezelje, és különböztesse meg a hiányzó mezőt attól a kifejezett utasítástól, amely egy meglévő érték törlésére vonatkozik.

Újrapróbálkozások, visszaigazolások és duplikált események

A webhook kézbesítése időtúllépések, hálózati megszakítások, hitelesítési hibák vagy elérhetetlen fogadó végpont miatt meghiúsulhat. A szolgáltató újrapróbálkozhat, de nincs univerzális újrapróbálkozási ütemezés, megőrzési időablak vagy maximális kísérletszám. Ellenőrizze, mely válaszok váltanak ki újabb kísérletet, hogyan kezeli a rendszer az átirányításokat, és elérhető-e kézi újrakézbesítés.

Visszaigazolás tartós elfogadás után

Tartsa röviden a kérés útvonalát: ellenőrizze a kérést, tartósan mentse az elfogadott munkát, majd küldje vissza a szolgáltató által elvárt sikeres választ. Az e-maileket és a lassabb üzleti műveleteket aszinkron módon hajtsa végre. A HTTP-specifikáció a 202 Accepted választ feldolgozásra való elfogadásként, nem pedig a feldolgozás befejezéseként határozza meg, de a szolgáltató ettől eltérő sikeres választ is megkövetelhet. Kövesse a webhook-szerződését.

Ha még a tárolás előtt sikert jelez vissza, azzal azt kockáztatja, hogy a folyamat összeomlása esetén elveszik a frissítés. Ha minden további művelet befejezésére vár, időtúllépést és újabb kézbesítési kísérletet okozhat. Egy tartós beérkezési postaláda vagy sor határt képez a fogadás és a feldolgozás között.

Tegye idempotenssé a feldolgozást

Az idempotencia azt jelenti, hogy ugyanazon esemény újbóli feldolgozása nem ismétli meg az üzleti hatásokat. A küldő újrapróbálkozhat, miután a szerver elfogadta az eseményt, de a visszaigazolás elveszett. Ezért a duplikált kézbesítést rendszeres tesztesetként kell kezelni.

  • Ha rendelkezésre áll dokumentált eseményazonosító, használja deduplikációs kulcsként, a megfelelő szolgáltatóra vagy fiókra korlátozva.
  • Ha nincs azonosító, alakítson ki összetett kulcsot stabil eseménymezőkből, és tesztelje az ütközés kockázatát.
  • Atomi módon kényszerítse ki az egyediséget a tárolóban; a külön „ellenőrzés, majd beszúrás” folyamat párhuzamos kézbesítés esetén versenyhelyzetet okozhat.
  • A további műveleteket is védje. Egy duplikált esemény nem küldhet újabb kézbesítési értesítést, és nem ismételhet meg pénzügyi műveletet.
  • A megőrzést a szolgáltató visszajátszási viselkedése és a helyreállítási követelmények alapján állítsa be, ne törölje azonnal a deduplikációs rekordokat.

Ne feltételezze az időrendi érkezést

Ne írja felül az aktuális szállítmányállapotot pusztán azért, mert egy kérés érkezett utolsóként. Vesse össze az esemény jelentését, az időbélyegeket és a dokumentált sorrendi információkat. A későn érkező ellenőrzőpontokat őrizze meg az előzményekben, de ne állítsa automatikusan vissza a megjelenített állapotot. Ugyanakkor tegye lehetővé a dokumentált javításokat: az a merev szabály, miszerint a kézbesített szállítmányok soha nem változhatnak, elrejtheti a jogos kivételeket vagy a javított információkat.

Gyakorlati beállítási ellenőrzőlista

1. Erősítse meg a szolgáltatói szerződést

A megvalósítás előtt erősítse meg a regisztrációs követelményeket, a támogatott eseményeket, a hasznos teher szerkezetét, a hitelesítést, a válaszokkal kapcsolatos elvárásokat, az időtúllépéseket, az újrapróbálkozási viselkedést és az API-korlátokat. Ellenőrizze, hogy egy értesítés pillanatképet vagy növekményes változást jelent-e, a kézbesítések tartalmazhatnak-e több rekordot, és hogy az előfizetés küld-e kezdeti állapotot.

17TRACK-integráció esetén kezdje a hivatalos Tracking API oldallal és az API-dokumentációval. A kérésmezők és a visszahívási követelmények meghatározásához használja a szolgáltatóra vonatkozó dokumentációt; a fenti általános hasznos teher nem helyettesíti azt. Erősítse meg a hozzáférési feltételeket és a működési korlátokat a telepíteni kívánt integrációhoz.

2. Biztosítsa a fogadó végpontot

Használjon HTTPS-t és a szolgáltató által dokumentált hitelesítési mechanizmust. HMAC-aláírás használata esetén pontosan azt az aláírt bemenetet ellenőrizze, amelyet a szolgáltató meghatároz. Ha a rendszer nyers kérésbájtokat ír alá, a JSON ellenőrzés előtti elemzése és újraszerializálása megváltoztathatja ezeket a bájtokat, és érvénytelenítheti az aláírást. A titkos értékekből származó aláírások összehasonlításához állandó idejű összehasonlítást használjon.

Ha aláírt időbélyegek vagy kézbesítési azonosítók állnak rendelkezésre, alkalmazza a dokumentált visszajátszás-ellenőrzéseket. Az érvényes aláírás hitelesíti az üzenetet, de önmagában nem bizonyítja, hogy az friss. Tartsa a titkos értékeket távol az URL-ektől és az alkalmazásnaplóktól, támogassa a titkos értékek cseréjét, és korlátozza a kérések méretét. Az IP-engedélyezési lista további kontroll lehet, ha karbantartott címtartományok állnak rendelkezésre, de nem helyettesíti az üzenethitelesítést.

3. Válassza külön a fogadást és az üzleti feldolgozást

Tároljon elegendő információt az elfogadott esemény nyomon követéséhez és biztonságos visszajátszásához. A sormunkások normalizálják a frissítést, alkalmazzák az állapotátmeneti szabályokat, és rögzítik a műveletek eredményeit. Az ismételten sikertelen munkát helyezze ellenőrizhető, holtbetűs munkafolyamatba a végtelen újrapróbálkozás helyett. Korlátozza a hozzáférést és a megőrzési időt, mert a követési hasznos terhek ügyfélhez kapcsolódó információkat tartalmazhatnak.

4. A közzététel előtt tesztelje a hibautakat

  • Küldje el ugyanazt az eseményt kétszer, beleértve a párhuzamos kézbesítéseket is.
  • Kézbesítsen egy régebbi ellenőrzőpontot egy újabb után.
  • Szimulálja a sorkiesést és a fogadás utáni feldolgozó-összeomlást.
  • Tesztelje az érvénytelen hitelesítést, a hibás JSON-t és a túlméretezett kéréseket.
  • Tesztelje az ismeretlen szállítmányokat, a hiányzó opcionális mezőket és a hozzáadott mezőket.
  • Ellenőrizze, hogy egyetlen kézbesített csomag ne zárjon le egy megosztott rendelést.
  • Játsszon vissza egy eseményt helyreállítás után, és ellenőrizze, hogy az értesítések továbbra is deduplikáltak maradnak.

Ahol biztonságos, legyen toleráns a hozzáadott mezőkkel szemben, de ne értelmezze át csendben az ismeretlen állapotértékeket. Őrizze meg a nyers értéket, és irányítsa az ismeretlen eseteket meghatározott tartalék- vagy felülvizsgálati folyamatba.

Ahol a lekérdezés továbbra is hasznos

A lekérdezés hasznos kezdeti szinkronizáláshoz, kiesés utáni helyreállításhoz, valamint azon szállítmányok ellenőrzéséhez, amelyeknél nem érkezett meg a várt frissítés. A csend azonban önmagában nem bizonyítja a webhook meghibásodását: előfordulhat, hogy egy csomagnál ténylegesen nem történt új szkennelés. Az API aktuális állapotával vagy előzményeivel egyeztessen, ahelyett hogy feltételezné: minden csendben maradó szállítmány riasztást igényel.

A skálatervezéshez az egyszerűsített lekérdezési modell: requests per hour ≈ active shipments × polls per shipment per hour, feltételezve, hogy kérésenként egy szállítmány szerepel. A kötegelt végpontok módosítják ezt a számítást. Példaként 1000, óránként négyszer ellenőrzött szállítmány 4000 kérést generál óránként, az újrapróbálkozások előtt; ez számtani példa, nem szolgáltatói kvóta vagy árazási becslés.

Az ellenőrzéseket a szállítmánytevékenység és az üzleti kockázat szerint ütemezze, tartsa be a sebességkorlátokat, és alkalmazzon véletlenszerű késleltetést, hogy a feladatok ne egyszerre induljanak. Újrapróbálható hibák esetén használjon korlátozott visszalépést, és tartsa be az alkalmazandó szerverútmutatást. Ne próbálja ismételten kijavítás nélkül újra a végleges hitelesítési vagy érvényesítési hibákat.

Egy praktikus hibrid rendszer a rutinszerű frissítésekhez webhookokat, a feltételezett hiányosságokhoz pedig célzott API-olvasásokat használ. A fogadási hibákat, a sorok életkorát, a feldolgozási hibákat, a duplikációs arányokat és az egyeztetési eltéréseket külön figyelje. Ha az időbélyegek megbízhatók, különítse el a forrásadat késését a webhookkézbesítés késésétől és a belső feldolgozási késéstől.

GYIK

Valós idejűek a követési webhookok?

Csökkenthetik a következő lekérdezési ciklusra való várakozás okozta késést. Nem garantálják az azonnali fuvarozói szkennelést vagy a forrás azonnali frissítéseit. A teljes körű frissesség magában foglalja a fuvarozói jelentést, a szolgáltatói feldolgozást, a kérés kézbesítését és az Ön alkalmazását.

Teljesen leállíthatom a lekérdezést a webhookok engedélyezése után?

Lehetséges, ha a szolgáltató helyreállítási funkciói és az üzleti követelmények ezt elfogadhatóvá teszik. Működés szempontjából fontos szállítmányrekordok esetén tartson fenn egyeztetési módszert. Ez lehet célzott, nem pedig minden szállítmány folyamatos lekérdezése.

Mi történik, ha a webhook-végpontom offline állapotban van?

A helyreállítás a küldő dokumentált újrapróbálkozási szabályzatától függ. Ne feltételezze, hogy az újrapróbálkozások korlátlan ideig folytatódnak. A végpont helyreállítása után vizsgálja meg a sikertelen kézbesítéseket, használja a támogatott újrakézbesítési eszközöket, és ahol lehetséges, az API-n keresztül egyeztesse az érintett szállítmányokat.

Minden webhooknak ügyfélértesítést kell kiváltania?

Nem. Egy esemény lehet duplikált, történeti ellenőrzőpont vagy olyan frissítés, amely nem változtatja meg az ügyfél számára látható állapotot. Az értesítéseket deduplikált üzleti átmenetekből indítsa, a kivételekre és javításokra vonatkozó szabályokkal.

A sikeres HTTP-válasz azt jelenti, hogy a szállítmány frissítése befejeződött?

Nem feltétlenül. Aszinkron kialakításban azt jelenti, hogy a fogadó végpont elfogadta az eseményt a megállapodott szerződés szerint. A feldolgozás befejezését és a további értesítések eredményeit külön kövesse nyomon, hogy egy elfogadott kérés ne rejthessen el egy sikertelen munkafolyamatot.

Források

Loading