Come correggere un errore del webhook Stripe (TLS ed eventi di consegna)

Pubblicato: 2021-05-13

Usiamo Stripe, insieme a PayPal, per accettare pagamenti per la nostra attività di plugin per WordPress. Adoriamo Stripe; è facile da usare e ha tutto ciò che vorresti come sviluppatore. Anche se abbiamo avuto molti problemi con PayPal, Stripe è stato piuttosto impeccabile. Tuttavia, come con qualsiasi servizio, a volte si verificano problemi.

Oggi ti illustrerò come risolvere un errore del webhook Stripe, sia TLS che eventi di consegna.

  • Email relativa al problema della consegna del webhook Stripe
  • Controllo degli eventi dell'endpoint webhook
  • Come correggere un errore TLS del webhook
  • Come risolvere il blocco del webhook

Email relativa al problema della consegna del webhook Stripe

La maggior parte di voi probabilmente non controlla regolarmente il registro degli eventi in Stripe per quanto riguarda i webhook; So di no. Pertanto, come me, probabilmente sentirai per la prima volta di un errore del webhook Stripe in un'e-mail di Stripe. È quindi il momento di abbandonare tutto ciò che stai facendo e risolvere il motivo per cui il webhook ha un problema. Il mio, ovviamente, è arrivato un venerdì pomeriggio.

L'e-mail di Stripe molto probabilmente leggerà qualcosa di simile di seguito. Sto usando un errore TLS riepilogato come esempio:

Si sono verificati dei problemi nell'invio di richieste in modalità live a un endpoint webhook associato al tuo account...

L'URL dell'endpoint webhook in errore è: https://domain.com/index.php?edd-listener=stripe

Abbiamo tentato di inviare notifiche di eventi a questo endpoint x volte dal primo errore in data/ora. Se questo endpoint è importante per la tua applicazione, prova a risolvere il problema. Interromperemo l'invio di notifiche di eventi a questo endpoint webhook per data/ora".

x le richieste presentavano un errore TLS, a indicare che Stripe non è stato in grado di stabilire una connessione sicura con il tuo server. Puoi generare un'analisi dettagliata sulla configurazione TLS del tuo host (https://ssllabs.com/ssltest/) per identificare gli errori comuni.

Devi restituire qualsiasi codice di stato compreso tra HTTP 200 e 299 affinché Stripe consideri l'evento webhook consegnato correttamente.

Puoi trovare la serie completa di eventi e registri delle richieste sulla dashboard.

Il tuo,
La squadra di Stripe

L'importante è non farsi prendere dal panico. Di seguito ti guiderò attraverso un paio di semplici modi per risolvere i problemi e alcune delle cose che abbiamo dovuto risolvere con la nostra implementazione di Stripe.

Controllo degli eventi dell'endpoint webhook

La prima cosa da fare è controllare gli eventi registrati per i tuoi endpoint webhook Stripe. Vai alla dashboard di Stripe e, sul lato sinistro, fai clic su "Webhook" nel menu Sviluppatore.

In questa schermata potrai vedere tutti i tuoi endpoint Stripe e, soprattutto, il tasso di errore negli ultimi 7 giorni. Se hai appena ricevuto un'e-mail da Stripe che dice che hanno provato un numero x di volte per raggiungere il tuo endpoint, probabilmente vedrai un tasso di errore piuttosto alto.

Tasso di errore degli endpoint della striscia
Tasso di errore degli endpoint della striscia

Se ordini i tentativi del webhook per "Fallito", puoi facilmente vedere tutti i tentativi e il motivo dell'errore. Alcuni errori comuni del webhook Stripe includono l'errore TLS, il timeout e 500 (errore interno del server).

Tentativi di webhook Stripe
Tentativi di webhook Stripe

Come correggere un errore TLS del webhook

Abbiamo riscontrato personalmente un errore TLS del webhook Stripe. Ecco cosa dovresti fare.

  1. Controlla il tuo certificato SSL scansionando il tuo sito con lo strumento SSL Server Test di Qualys. La prima cosa da confermare è che il tuo certificato è valido e che non ti mancano certificati intermedi. Se lo sei, prova ad aggiungere nuovamente il tuo certificato SSL con il tuo provider di hosting. Questo è probabilmente uno dei motivi più comuni per il verificarsi di un errore TLS.
  2. Conferma la versione di TLS supportata dal tuo provider di hosting. Stripe supporta fino a TLS 1.2 al momento della stesura di questo.
  3. Se hai un proxy o un WAF seduto davanti al tuo sito web, dovrai eseguire di nuovo i passaggi 1 e 2 poiché il webhook di Stripe colpirà prima il proxy/WAF.

Quando abbiamo riscontrato il nostro errore TLS, il problema era in realtà dovuto al passaggio a Cloudflare. Il nostro dominio Cloudflare aveva la versione minima di TLS impostata su TLS 1.3. (1.0 è l'impostazione predefinita). Poiché al momento Stripe supporta solo fino alla versione 1.2, abbiamo iniziato a riscontrare un errore webhook. Ci è voluto un po' per rintracciarlo.

Versione TLS minima di Cloudflare
Versione TLS minima di Cloudflare

Come risolvere il blocco del webhook

Stripe deve essere in grado di comunicare con il tuo server affinché tutto funzioni correttamente. Quindi, se ricevi un timeout o anche un errore 500, è possibile che tu stia bloccando accidentalmente il webhook di Stripe. Ecco cosa dovresti fare.

  1. Se stai utilizzando WordPress e un plug-in di sicurezza, assicurati che non stia bloccando alcuna connessione da Stripe.
  2. Verifica con il tuo provider di hosting per assicurarti che consentano Stripe e non blocchino i loro IP.
  3. Se stai eseguendo WAF come Cloudflare, potresti dover aggiungere una regola di autorizzazione al firewall con gli IP di Stripe. Il firewall di Cloudflare non utilizza i nomi host, quindi dovrai utilizzare i loro IP. Consiglio di aggiungere sia gli IP per api.stripe.com che le loro notifiche webhook. Puoi controllare il registro delle attività e confrontarlo con l'elenco IP di Stripe per confermare che si tratta di un problema di Cloudflare.
Regola del firewall Cloudflare per IP Stripe
Regola del firewall Cloudflare per IP Stripe

Ecco l'espressione completa per la regola del firewall Cloudflare con i loro IP a partire dal 2021:

 (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.1 06,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)

Sommario

Si spera che alcuni di questi suggerimenti siano stati utili per risolvere gli errori del webhook Stripe. Se hai domande o altri passaggi che hanno funzionato per te, mi piacerebbe ascoltarli. Lascia un commento qui sotto.