Pereiti prie pagrindinio turinio

Kaip iš naujo išsiųsti webhook pranešimą iš partnerių sistemos?

Sužinokite, kas yra webhooks, kodėl jie kartais nepasiekia adresato ir kaip galite patys iš naujo išsiųsti pranešimą naudodami užsakymo įvykių įrašus.

Parašė Tinsey

Kas yra webhook ir kodėl šis pranešimas gali nepasiekti jūsų parduotuvės?

Kiekvieną kartą, kai Montonio sistemoje pasikeičia užsakymo būsena (pavyzdžiui, iš Laukiama į Apmokėta), jūsų parduotuvei išsiunčiamas webhook pranešimas. Taip parduotuvė informuojama, kad reikia atnaujinti užsakymo būseną savo sistemoje.

Kartais webhook pranešimas gali nepasiekti jūsų parduotuvės dėl įvairių serverio ar konfigūracijos problemų. Dažniausios priežastys:

  • Jūsų serveris blokuoja mūsų užklausą – dažniausiai dėl ugniasienės taisyklių arba apsaugos nuo botų. (HTTP 403)

  • Pranešimo URL adresas nepasiekiamas – serveris negali rasti adreso, į kurį siunčiame pranešimą. (HTTP 404)

  • Platformos lygio saugumo patikra atmeta užklausą – CSRF arba panaši apsaugos sistema blokuoja POST užklausą. (HTTP 419)

  • Jūsų serveryje įvyko klaida apdorojant pranešimą – tai gali būti susiję su serverio konfigūracija, atminties trūkumu arba kitomis išimtimi. (HTTP 500)

  • Jūsų serveris neatsakė laiku – webhook galinis taškas negrąžino atsakymo per 30 sekundžių. (Timeout)

Daugeliu atvejų problemą reikia spręsti parduotuvės pusėje. Jūsų svetainės programuotojas arba IT komanda turėtų patikrinti serverio įrašus, įtraukti Montonio IP adresus į leidžiamų adresų sąrašą (angl. allowlist), įsitikinti, kad webhook URL adresas yra teisingas, ir patikrinti, ar serveris tinkamai apdoroja gaunamus webhook pranešimus.


Kur galiu matyti, kas nutiko?

Išsamią kiekvieno užsakymo informaciją galite rasti Užsakymo įvykių įrašų skirtuke.

  • Prisijunkite prie Montonio partnerių sistemos ir kairėje pusėje spustelėkite Užsakymai.

  • Raskite norimą užsakymą, spustelėkite jo eilutę ir viršutiniame dešiniajame kampe paspauskite išplėtimo piktogramą, kad atidarytumėte išsamų užsakymo rodinį.

  • Atidarykite skirtuką Užsakymo įvykių įrašai.

  • Kiekvienas įvykis turi laiko žymą ir trumpą aprašymą. Spustelėkite Rodyti metaduomenis ant nepavykusio webhook įvykio, kad pamatytumėte visą informaciją, įskaitant jūsų serverio grąžintą HTTP būsenos kodą.


Webhook klaidų sprendimas

Kada turėčiau iš naujo išsiųsti webhook pranešimą?

Iš naujo siųskite webhook pranešimą tik tada, kai pagrindinė problema jūsų parduotuvės pusėje jau yra išspręsta.

Žemiau pateikiame rekomendacijas, kurias galite persiųsti savo programuotojui arba IT komandai. Jos padės greičiau nustatyti problemos priežastį ir rasti tinkamą sprendimą.


Klaidos kodas 403 Forbidden

Jei gaunate 403 Forbidden klaidą:

  • Patikrinkite, ar webhook užklausų neblokuoja saugumo taisyklės, ugniasienė (WAF) arba tarpinio serverio konfigūracija.

  • Įsitikinkite, kad Montonio IP adresai yra įtraukti į leidžiamų adresų sąrašą:

    • 35.156.245.42

    • 35.156.159.169

  • Patikrinkite, ar nėra įjungtos apsaugos nuo botų ar kiti saugos režimai. Jei toks režimas aktyvus:

    • išjunkite apsaugą webhook, arba

    • sukurkite WAF išimtį POST užklausoms į webhook URL.

  • WooCommerce aplinkoje įsitikinkite, kad leidžiami URL adresai, kuriuose yra wc-api.

  • PrestaShop aplinkoje įsitikinkite, kad leidžiami URL adresai, kuriuose yra /module/montonio/webhook.


Klaidos kodas 404 Not Found

Jei gaunate 404 Not Found klaidą:

  • Patikrinkite Montonio užsakymo įvykių įrašuose nurodytą notificationURL ir įsitikinkite, kad jis sutampa su aktyviu webhook galiniu tašku.

  • Įsitikinkite, kad notificationURL yra viešai pasiekiamas:

    • nenaudojamas localhost,

    • nėra bandomojoje aplinkoje,

    • nėra pasiekiamas tik per VPN.

  • Peržiūrėkite neseniai atliktus parduotuvės pakeitimus, kurie galėjo paveikti URL veikimą, pavyzdžiui:

    • domeno pakeitimus,

    • SSL konfigūraciją,

    • peradresavimo taisykles.


Klaidos kodas 419 CSRF Token Mismatch

Jei gaunate 419 klaidą:

  • Įtraukite Montonio webhook POST užklausas į leidžiamų išimčių sąrašą, kad jos nebūtų tikrinamos pagal CSRF apsaugos taisykles.


Klaidos kodas 500 Internal Server Error

Jei gaunate 500 klaidą:

  • Patikrinkite serverio įrašus pagal laiko žymą, pateiktą įvykio metaduomenyse.

  • Peržiūrėkite neseniai atliktus diegimus arba konfigūracijos pakeitimus, kurie galėjo sukelti klaidą.

  • Įsitikinkite, kad webhook galinis taškas neviršija:

    • atminties limitų,

    • vykdymo laiko limitų,

    • serverio išteklių ribų esant didesnei apkrovai.


Klaida Timeout (30000ms exceeded)

Jei webhook apdorojimas viršija 30 sekundžių:

  • Patikrinkite, kiek laiko užtrunka webhook užklausos apdorojimas.

  • Patvirtinkite webhook gavimą kuo greičiau (grąžinkite HTTP 200 atsakymą), o tolimesnį apdorojimą atlikite asinchroniškai naudodami:

    • užduočių eilę,

    • fonines užduotis.

  • Optimizuokite lėtas duomenų bazės užklausas.

  • Įvertinkite serverio išteklius ir įsitikinkite, kad jų pakanka dabartiniam parduotuvės srautui bei webhook užklausų apdorojimui.

⚠️ Svarbu: Webhook pakartotinio siuntimo funkcija („Resend webhook“) pasiekiama tik tada, kai:

  • užsakymui yra nurodytas notificationURL;

  • prie užsakymo užfiksuotas bent vienas webhook įvykis;

  • esate prisijungę kaip Montonio partnerių sistemos valdytojas arba pasirašantysis asmuo.


Kaip iš naujo išsiųsti webhook pranešimą?

  • Skirtuke Užsakymai, raskite norimą užsakymą, spustelėkite jo eilutę ir viršutiniame dešiniajame kampe paspauskite išplėtimo piktogramą, kad atidarytumėte išsamų užsakymo rodinį.

  • Eikite į skirtuką Užsakymų įvykių įrašai.

  • Viršuje dešinėje spustelėkite Pakartotinai siųsti webhook pranešimą.

  • Pasirodys patvirtinimo langas. Spustelėkite Siųsti dar kartą, kad tęstumėte, arba Atšaukti, kad grįžtumėte atgal.

  • Pamatysite patvirtinimo pranešimą.

  • Atnaujinkite puslapį, kad matytumėte naują įvykį — jame bus nurodyta, ar pakartotinis siuntimas buvo sėkmingas.


Ką daryti, jei pakartotinis siuntimas taip pat nepavyksta?

Jei pakartotinai išsiųstas webhook įvykis grąžina tą pačią klaidą, tikėtina, kad pagrindinė problema jūsų sistemoje dar nėra visiškai išspręsta.

Atidarykite Rodyti metaduomenis prie naujo nepavykusio įvykio ir patikrinkite naujausią būsenos kodą. Persiųskite šią informaciją savo programuotojui arba IT komandai, kad jie galėtų toliau analizuoti problemą.

Pakartotinį siuntimą atlikite dar kartą tik tada, kai bus patvirtinta, kad pagrindinė problema yra išspręsta.


Turite daugiau klausimų? Susisiekite su mūsų komanda — mielai padėsime.

Ar gavote atsakymą į savo klausimą?