Skip to main content
Izmantojiet webhook izsaukumus, lai reaģētu uz asinhronām izmaiņām. Piegāde notiek vismaz vienu reizi, tāpēc dublēti, aizkavēti un nesakārtoti notikumi ir normāli.

Reģistrējiet tikai vajadzīgos notikumus

Izveidojiet galapunktu ar POST /v3/webhooks. Abonējiet tikai dokumentētus notikumus, kas vada jūsu integrāciju. Šis piemērs izmanto transfer.state_changed.
Saglabājiet atbildes data.idWEBHOOK_ID. Atveriet portālu, ko atgriež GET /v3/webhooks/portal, iegūstiet šī galapunkta parakstīšanas noslēpumu un glabājiet to atsevišķi no API atslēgas noslēpumu pārvaldniekā.

Pārbaudiet pirms parsēšanas

Swipelux piegādā jaunas webhook integrācijas caur Svix. Pārbaudiet neapstrādāto pieprasījuma pamattekstu ar sava galapunkta parakstīšanas noslēpumu un šīm galvenēm:
  • svix-id
  • svix-timestamp
  • svix-signature
Neparsējiet JSON un neradiet blakusefektus, pirms verifikācija ir veiksmīga.
Noraidiet pieprasījumus ar trūkstošiem vai nederīgiem parakstiem. Uzturiet neapstrādāto pamattekstu pieejamu, līdz verifikācija ir pabeigta.

Saglabājiet, apstipriniet, pēc tam apstrādājiet

Uzstādiet unikalitātes ierobežojumu aploksnes id. Saglabājiet pārbaudīto aploksni, ātri atgriezt 2xx, pēc tam apstrādājiet to asinhroni. Ja notikuma ID jau pastāv, apstipriniet piegādi, neatkārtojot pabeigtos blakusefektus. Atsāciet neizpildītos vai neveiksmīgos lokālos darbus caur savu atkārtotu mēģinājumu rindu. Neizmantojiet aploksnes lauku attempt kā deduplikācijas atslēgu vai transporta atkārtojumu skaitītāju.

Atkārtoti ielādējiet pašreizējo stāvokli

Webhook secība nav autoritatīva resursu vēsture. Izmantojiet resource.type un resource.id, lai atrastu objektu, pēc tam pirms sistēmas atjaunināšanas iegūstiet tā pašreizējo stāvokli. Pārveduma notikumam izsauciet GET /v3/transfers/{transferId}:
Vadiet klientam redzamo statusu un turpmākās darbības no pašreizējās API atbildes. Veidojiet blakusefektus tā, lai tie paliktu droši, ja divi izpildītāji apstrādā saistītus notikumus dažādā secībā.

Atjaunojiet piegādes

Izmantojiet GET /v3/webhooks/portal, lai atvērtu piegāžu žurnālus, atkārtoti mēģinātu neveiksmīgas piegādes vai sāktu manuālu atkārtojumu. Katram atkārtojumam jāizet cauri tai pašai parakstu pārbaudei un noturīgai iesūtnei. Lai atgūtu pēc dīkstāves, atkārtojiet ietekmēto logu un atkārtoti ielādējiet katru minēto resursu. Pabeigtie notikumu ID paliek bez darbībām; nepabeigtie ieraksti tiek atsākti asinhroni. Tālāk pārbaudiet dublētās un nesakārtotās piegādes smilšu kastē, pēc tam pabeidziet Doties tiešraidē kontrolsarakstu.