Przejdź do głównej zawartości

Jak ponownie wysłać powiadomienie webhook z Systemu Partnerskiego

Czym są webhooki, dlaczego czasem nie docierają i jak samodzielnie wysłać powiadomienie ponownie z poziomu dziennika zdarzeń zamówienia.

Napisane przez Laura from Montonio

Czym jest webhook i dlaczego czasem nie dociera?

Za każdym razem, gdy status zamówienia zmienia się w Montonio (na przykład z "oczekujący na płatność" na "opłacony"), wysyłamy do Twojego sklepu powiadomienie webhook. W ten sposób sklep dowiaduje się, że ma zaktualizować zamówienie po swojej stronie.

Czasem webhook nie dociera z powodu indywidualnych ustawień serwera. Najczęstsze przyczyny to:

  • Serwer blokuje nasze zapytanie. Zwykle powoduje to reguła firewalla lub tryb bot-fight. (HTTP 403)

  • Nie można połączyć się z adresem powiadomień. Serwer nie znajduje adresu, na który wysyłamy dane. (HTTP 404)

  • Weryfikacja tokenu na poziomie platformy odrzuca zapytanie. Blokuje je walidacja CSRF lub podobna. (HTTP 419)

  • Serwer napotkał błąd podczas przetwarzania. Może to wynikać z konfiguracji serwera, problemów z pamięcią lub nieobsłużonego wyjątku. (HTTP 500)

  • Serwer nie odpowiedział na czas. Endpoint odpowiadał dłużej niż 30 sekund. (Timeout)

W większości przypadków problem musi zostać rozwiązany po stronie sklepu przez Twojego programistę lub dział IT — na przykład przez dodanie adresów IP Montonio do listy dozwolonych, poprawienie adresu powiadomień albo sprawdzenie logów serwera.


Gdzie mogę sprawdzić, co się stało?

Szczegółowe informacje o dostarczeniu powiadomień dla każdego zamówienia znajdziesz w dzienniku zdarzeń (Event log).

  • Otwórz System Partnerski i przejdź do zakładki Zamówienia.

  • Wybierz zamówienie, które chcesz sprawdzić, i kliknij ikonę rozwinięcia w prawym górnym rogu panelu, aby otworzyć widok szczegółowy.

  • Przejdź do zakładki Dziennik zdarzeń.

  • Każde zdarzenie ma znacznik czasu i krótki opis. Kliknij Pokaż metadata przy nieudanym zdarzeniu webhook, aby zobaczyć pełne szczegóły, w tym kod statusu HTTP zwrócony przez Twój serwer.

Kiedy warto wysłać webhook ponownie?

Webhook warto wysłać ponownie dopiero po usunięciu przyczyny problemu po Twojej stronie. Poniższe wskazówki możesz przekazać swojemu programiście lub działowi IT do sprawdzenia:

Rozwiązywanie błędu 403 Forbidden

  • Sprawdź, czy webhook nie jest blokowany przez zasady bezpieczeństwa lub konfigurację proxy.

  • Upewnij się, że adresy IP Montonio są na liście dozwolonych: 35.156.245.42 oraz 35.156.159.169.

  • Sprawdź, czy włączony jest tryb bot-fight lub „under attack". Jeśli tak, wyłącz go dla ścieżki webhooka albo utwórz wyjątek WAF dla zapytań POST do adresu powiadomień.

    • WooCommerce: zezwól na adresy URL zawierające wc-api

    • PrestaShop: zezwól na adresy URL zawierające /module/montonio/webhook


Rozwiązywanie błędu 404 Not Found

  • Sprawdź notificationURL w dzienniku zdarzeń Montonio i porównaj go z adresem produkcyjnym.

  • Upewnij się, że notificationURL jest publicznie dostępny (nie localhost, nie środowisko testowe, nie za VPN-em).

  • Sprawdź, czy ostatnie zmiany w sklepie nie zaburzyły routingu adresów — na przykład zmiana domeny albo reguły SSL i przekierowań.


Rozwiązywanie błędu 419 CSRF Token Mismatch

  • Dodaj zapytania POST webhooków Montonio do listy wyjątków, aby omijały walidację tokenu CSRF.


Rozwiązywanie błędu 500 Internal Server Error

  • Sprawdź logi serwera z godziny wskazanej w metadanych zdarzenia.

  • Przejrzyj ostatnie wdrożenia lub zmiany konfiguracji, które mogły spowodować problem.

  • Sprawdź, czy endpoint nie przekracza limitów pamięci lub czasu odpowiedzi przy większym obciążeniu.


Rozwiązywanie błędu Timeout (przekroczono 30000 ms)

  • Sprawdź, ile czasu zajmuje odpowiedź handlera webhooka.

  • Potwierdź odbiór webhooka natychmiast (zwróć 200), a właściwe przetwarzanie wykonaj asynchronicznie — w kolejce lub zadaniu w tle.

  • Zoptymalizuj wolne zapytania do bazy danych.

  • Sprawdź zasoby hostingu, jeśli serwer stale nie nadąża za ruchem w sklepie.


Jak ponownie wysłać webhook?

⚠️ Uwaga: przycisk ponownego wysłania webhooka jest dostępny tylko wtedy, gdy:

  • dla zamówienia zdefiniowany jest notificationURL,

  • zarejestrowane zostało co najmniej jedno zdarzenie webhook,

  • jesteś zalogowany do Systemu Partnerskiego jako manager lub sygnatariusz.

  • Otwórz zamówienie i przejdź do zakładki Dziennik zdarzeń.

  • W sekcji Order events (prawy górny róg) kliknij Wyślij ponownie webhook.

  • Pojawi się okno potwierdzenia. Kliknij Wyślij ponownie, aby kontynuować, lub Anuluj, aby wrócić.

  • Zobaczysz komunikat potwierdzający.

  • Odśwież stronę, aby zobaczyć nowe zdarzenie w dzienniku — pokaże ono, czy ponowna wysyłka się powiodła.


Co zrobić, jeśli ponowna wysyłka również się nie powiedzie?

Jeśli pojawi się ten sam błąd, pierwotny problem prawdopodobnie nie został jeszcze w pełni rozwiązany. Kliknij Pokaż metadata przy nowym nieudanym zdarzeniu, sprawdź aktualny kod statusu, przekaż go swojemu programiście lub działowi IT i spróbuj ponownie po potwierdzeniu poprawki.


Jeśli masz dodatkowe pytania i potrzebujesz pomocy, skontaktuj się z naszym zespołem wsparcia przez czat w prawym dolnym rogu.

Czy to odpowiedziało na twoje pytanie?