WordPress

Jak naprawić błąd webhooka Stripe (TLS i zdarzenia dostawy)

  • 13 maja, 2021
  • 5 min read
Jak naprawić błąd webhooka Stripe (TLS i zdarzenia dostawy)


Używamy Stripe wraz z PayPal, aby akceptować płatności za naszą działalność związaną z wtyczkami WordPress. Kochamy Stripe’a; jest łatwy w użyciu i ma wszystko, czego potrzebujesz jako programista. Chociaż mieliśmy wiele problemów z PayPal, Stripe był całkiem bezbłędny. Jednak, jak w przypadku każdej usługi, czasami pojawiają się problemy.

Dzisiaj przeprowadzę Cię przez proces rozwiązywania problemów z błędem webhooka Stripe, zarówno TLS, jak i zdarzeń dostarczania.

E-mail dotyczący problemu z dostarczeniem elementu webhook Stripe

Większość z was prawdopodobnie nie sprawdza regularnie dziennika zdarzeń w Stripe pod kątem webhooków; Wiem, że nie. Dlatego, podobnie jak ja, prawdopodobnie po raz pierwszy słyszysz o błędzie webhooka Stripe w wiadomości e-mail od Stripe. Nadszedł czas, aby porzucić wszystko, co robisz, i rozwiązać problem z webhookiem. Mój oczywiście przyszedł w piątek po południu.

Wiadomość e-mail od Stripe najprawdopodobniej będzie brzmiała mniej więcej tak, jak poniżej. Używam podsumowanego błędu TLS jako przykładu:

Wystąpiły problemy z wysyłaniem żądań w trybie na żywo do punktu końcowego elementu webhook powiązanego z Twoim kontem…

Adres URL uszkodzonego punktu końcowego webhooka to: https://domain.com/index.php?edd-listener=stripe

Próbowaliśmy wysłać powiadomienia o zdarzeniach do tego punktu końcowego x razy od pierwszego niepowodzenia w dniu/godzinie. Jeśli ten punkt końcowy jest ważny dla Twojej aplikacji, spróbuj rozwiązać problem. Przestaniemy wysyłać powiadomienia o zdarzeniach do tego punktu końcowego webhook według daty/godziny”.

x wystąpił błąd TLS, wskazujący, że Stripe nie mógł nawiązać bezpiecznego połączenia z Twoim serwerem. Możesz wygenerować szczegółową analizę konfiguracji TLS hosta (w celu zidentyfikowania typowych błędów.

Musisz zwrócić dowolny kod stanu między HTTP 200 a 299, aby Stripe uznał, że zdarzenie webhooka zostało pomyślnie dostarczone.

Pełny zestaw dzienników zdarzeń i żądań można znaleźć na pulpicie nawigacyjnym.

Twój,
Zespół Stripesa

Najważniejsze to nie panikować. Poniżej omówię kilka prostych sposobów rozwiązywania problemów i niektóre rzeczy, które musieliśmy naprawić w naszej implementacji Stripe.

Warto przeczytać!  niestandardowe typy wpisów - wstępnie zdefiniowany stan pola wyboru/przycisku radiowego na podstawie wartości przechowywanej w polach ACF w formularzu realizacji zamówienia WooCommerce

Sprawdzanie zdarzeń punktu końcowego elementu webhoon

Pierwszą rzeczą do zrobienia jest sprawdzenie zarejestrowanych zdarzeń dla punktów końcowych elementu webhook Stripe. Przejdź do pulpitu nawigacyjnego Stripe i po lewej stronie kliknij „Webhooks” w menu Deweloper.

Na tym ekranie będziesz mógł zobaczyć wszystkie swoje punkty końcowe Stripe i, co najważniejsze, wskaźnik błędów w ciągu ostatnich 7 dni. Jeśli właśnie otrzymałeś wiadomość e-mail od Stripe z informacją, że próbowali x razy dotrzeć do punktu końcowego, prawdopodobnie zobaczysz dość wysoki wskaźnik błędów.

Wskaźnik błędów punktów końcowych Stripe
Wskaźnik błędów punktów końcowych Stripe

Jeśli posortujesz próby webhooka według „Nieudane”, możesz łatwo zobaczyć wszystkie próby i przyczynę niepowodzenia. Niektóre typowe błędy webhooka Stripe obejmują błąd TLS, przekroczenie limitu czasu i 500 (wewnętrzny błąd serwera).

Stripe próby webhocka
Stripe próby webhocka

Jak naprawić błąd TLS webhooka

Osobiście napotkaliśmy błąd TLS Stripe webhook. Oto, co powinieneś zrobić.

  1. Sprawdź swój certyfikat SSL, skanując swoją witrynę za pomocą narzędzia do testowania serwera SSL firmy Qualys. Pierwszą rzeczą do potwierdzenia jest to, że Twój certyfikat jest ważny i że nie brakuje Ci żadnych certyfikatów pośrednich. Jeśli tak, spróbuj ponownie dodać certyfikat SSL u dostawcy usług hostingowych. Jest to prawdopodobnie jedna z najczęstszych przyczyn występowania błędu TLS.
  2. Potwierdź wersję protokołu TLS obsługiwaną przez dostawcę usług hostingowych. Stripe obsługuje TLS 1.2 w chwili pisania tego tekstu.
  3. Jeśli masz serwer proxy lub WAF przed swoją witryną, musisz ponownie wykonać kroki 1 i 2, ponieważ webhook Stripe najpierw uderzy w serwer proxy/WAF.
Warto przeczytać!  przekierowanie - Wordpress (za HAProxy i Jetty), a nie na wielu serwerach, w podfolderze - i /en/wp-admin/przekierowuje do /wp-admin/

Kiedy napotkaliśmy nasz błąd TLS, problem był w rzeczywistości spowodowany przejściem do Cloudflare. Nasza domena Cloudflare miała minimalną wersję TLS ustawioną na TLS 1.3. (wartość domyślna to 1.0). Ponieważ Stripe obsługuje obecnie tylko wersję 1.2, zaczęliśmy napotykać błąd webhooka. Wyśledzenie tego zajęło nam trochę czasu.

Minimalna wersja TLS Cloudflare
Minimalna wersja TLS Cloudflare

Jak naprawić blokowanie webhocka

Stripe musi mieć możliwość komunikacji z serwerem, aby wszystko działało poprawnie. Jeśli więc otrzymujesz przekroczenie limitu czasu lub nawet błąd 500, może to oznaczać, że przypadkowo blokujesz webhooka Stripe. Oto, co powinieneś zrobić.

  1. Jeśli korzystasz z WordPressa i wtyczki zabezpieczającej, upewnij się, że nie blokuje ona żadnych połączeń ze Stripe.
  2. Skontaktuj się ze swoim dostawcą usług hostingowych, aby upewnić się, że zezwala na Stripe i nie blokuje jego adresów IP.
  3. Jeśli korzystasz z WAF, takiego jak Cloudflare, może być konieczne dodanie pliku zezwolić na regułę do zapory za pomocą adresów IP Stripe. Zapora ogniowa Cloudflare nie używa nazw hostów, więc będziesz musiał użyć ich adresów IP. Polecam dodać zarówno adresy IP dla api.stripe.com, jak i ich powiadomienia webhook. Możesz sprawdzić dziennik aktywności i porównać go z listą adresów IP Stripe, aby potwierdzić, że jest to problem z Cloudflare.
Warto przeczytać!  Nawigacja po kartach i interfejs API ustawień WordPress
Reguła zapory sieciowej Cloudflare dla adresów IP Stripe
Reguła zapory sieciowej Cloudflare dla adresów IP Stripe

Oto pełne wyrażenie reguły zapory sieciowej Cloudflare wraz z ich adresami IP od 2021 r.:

(ip.src in {13.112.224.240 13.115.13.148 13.210.129.177 13.210.176.167 13.228.126.182 13.228.224.121 13.230.11.13 13.230.90.110 13.55.153.188 13.55.5.15 13.56.126.253 13.56.173.200 13.56.173.232 13.57.108.134 13.57.155.157 13.57.156.206 13.57.157.116 13.57.90.254 13.57.98.27 18.194.147.12 18.195.120.229 18.195.125.165 34.200.27.109 34.200.47.89 34.202.153.183 34.204.109.15 34.213.149.138 34.214.229.69 34.223.201.215 34.237.201.68 34.237.253.141 34.238.187.115 34.239.14.72 34.240.123.193 34.241.202.139 34.241.54.72 34.241.59.225 34.250.29.31 34.250.89.120 35.156.131.6 35.156.194.238 35.157.227.67 35.158.254.198 35.163.82.19 35.164.105.206 35.164.124.216 50.16.2.231 50.18.212.157 50.18.212.223 50.18.219.232 52.1.23.197 52.196.53.105 52.196.95.231 52.204.6.233 52.205.132.193 52.211.198.11 52.212.99.37 52.213.35.125 52.22.83.139 52.220.44.249 52.25.214.31 52.26.11.205 52.26.132.102 52.26.14.11 52.36.167.221 52.53.133.6 52.54.150.82 52.57.221.37 52.59.173.230 52.62.14.35 52.62.203.73 52.63.106.9 52.63.119.77 52.65.161.237 52.73.161.98 52.74.114.251 52.74.98.83 52.76.14.176 52.76.156.251 52.76.174.156 52.77.80.43 52.8.19.58 52.8.8.189 54.149.153.72 54.152.36.104 54.183.95.195 54.187.182.230 54.187.199.38 54.187.208.163 54.238.140.239 54.65.115.204 54.65.97.98 54.67.48.128 54.67.52.245 54.68.165.206 54.68.183.151 107.23.48.182 107.23.48.232 3.18.12.63 3.130.192.231 13.235.14.237 13.235.122.149 35.154.171.200 52.15.183.38 54.187.174.169 54.187.205.235 54.187.216.72 54.241.31.99 54.241.31.102 54.241.34.107})

Streszczenie

Mamy nadzieję, że niektóre z tych wskazówek były pomocne w rozwiązywaniu problemów z błędami elementu webhook Stripe. Jeśli masz jakieś pytania lub inne kroki, które Ci pomogły, chętnie je usłyszę. Upuść komentarz poniżej.


Źródło