Cómo corregir un error de webhook de Stripe (TLS y eventos de entrega)

Publicado: 2021-05-13

Usamos Stripe, junto con PayPal, para aceptar pagos para nuestro negocio de complementos de WordPress. Nos encanta Stripe; es fácil de usar y tiene todo lo que desearía como desarrollador. Si bien hemos tenido muchos problemas con PayPal, Stripe ha sido bastante impecable. Sin embargo, como con cualquier servicio, a veces surgen problemas.

Hoy lo guiaré a través de cómo solucionar un error de webhook de Stripe, tanto TLS como eventos de entrega.

  • Correo electrónico de problema de entrega de webhook de Stripe
  • Comprobación de eventos de punto final de webhook
  • Cómo corregir un error TLS de webhook
  • Cómo arreglar el webhook bloqueado

Correo electrónico de problema de entrega de webhook de Stripe

La mayoría de ustedes probablemente no esté revisando el registro de eventos en Stripe con respecto a los webhooks con regularidad; Sé que no. Por lo tanto, como yo, probablemente escuche por primera vez sobre un error de webhook de Stripe en un correo electrónico de Stripe. Entonces es hora de dejar lo que estés haciendo y solucionar el problema del webhook. El mío, por supuesto, llegó un viernes por la tarde.

Lo más probable es que el correo electrónico de Stripe diga algo como esto a continuación. Estoy usando un error TLS resumido como ejemplo:

Tuvimos algunos problemas para enviar solicitudes en modo en vivo a un punto final de webhook asociado con su cuenta...

La URL del punto final del webhook que falla es: https://domain.com/index.php?edd-listener=stripe

Hemos intentado enviar notificaciones de eventos a este extremo x veces desde el primer error en la fecha/hora. Si este punto final es importante para su aplicación, intente solucionar el problema. Dejaremos de enviar notificaciones de eventos a este punto final de webhook por fecha/hora”.

x solicitudes tenían un error de TLS, lo que indica que Stripe no pudo establecer una conexión segura con su servidor. Puede generar un análisis detallado sobre la configuración TLS de su host (https://ssllabs.com/ssltest/) para identificar errores comunes.

Debe devolver cualquier código de estado entre HTTP 200 y 299 para que Stripe considere que el evento de webhook se entregó correctamente.

Puede encontrar el conjunto completo de eventos y solicitar registros en el tablero.

Tuya,
El equipo de la raya

Lo importante es no entrar en pánico. A continuación, lo guiaré a través de un par de formas fáciles de solucionar los problemas y algunas de las cosas que tuvimos que solucionar con nuestra implementación de Stripe.

Comprobación de eventos de punto final de webhook

Lo primero que debe hacer es verificar los eventos registrados para los puntos finales de su webhook de Stripe. Vaya a su panel de control de Stripe y, en el lado izquierdo, haga clic en "Webhooks" en el menú Desarrollador.

En esta pantalla, podrá ver todos sus puntos finales de Stripe y, lo más importante, la tasa de error durante los últimos 7 días. Si acaba de recibir un correo electrónico de Stripe que dice que intentaron x número de veces llegar a su punto final, entonces probablemente verá una tasa de error bastante alta.

Tasa de error de puntos finales de Stripe
Tasa de error de puntos finales de Stripe

Si ordena los intentos de webhook por "Error", puede ver fácilmente todos los intentos y el motivo del error. Algunos errores comunes de webhook de Stripe incluyen error TLS, tiempo de espera y 500 (error interno del servidor).

Intentos de webhook de banda
Intentos de webhook de banda

Cómo corregir un error TLS de webhook

Nos hemos encontrado personalmente con un error de TLS del webhook de Stripe. Esto es lo que debe hacer.

  1. Verifique su certificado SSL escaneando su sitio con la herramienta SSL Server Test de Qualys. Lo primero que debe confirmar es que su certificado es válido y que no le falta ningún certificado intermedio. Si es así, intente volver a agregar su certificado SSL con su proveedor de alojamiento. Esta es probablemente una de las razones más comunes por las que se produce un error de TLS.
  2. Confirme la versión de TLS que admite su proveedor de alojamiento. Stripe admite hasta TLS 1.2 al momento de escribir esto.
  3. Si tiene un proxy o WAF frente a su sitio web, deberá ejecutar los pasos 1 y 2 nuevamente, ya que el webhook de Stripe llegará primero al proxy/WAF.

Cuando encontramos nuestro error de TLS, el problema se debió a que nos mudamos a Cloudflare. Nuestro dominio de Cloudflare tenía la versión TLS mínima establecida en TLS 1.3. (1.0 es el valor predeterminado). Dado que Stripe solo admite hasta la versión 1.2 en este momento, comenzamos a encontrar un error de webhook. Nos tomó un tiempo rastrear esto.

Versión mínima de TLS de Cloudflare
Versión mínima de TLS de Cloudflare

Cómo arreglar el webhook bloqueado

Stripe necesita poder comunicarse con su servidor para que todo funcione correctamente. Entonces, si obtiene un tiempo de espera o incluso un error 500, podría ser que esté bloqueando accidentalmente el webhook de Stripe. Esto es lo que debe hacer.

  1. Si está ejecutando WordPress y un complemento de seguridad, asegúrese de que no esté bloqueando ninguna conexión de Stripe.
  2. Consulte con su proveedor de alojamiento para asegurarse de que esté permitiendo Stripe y no bloqueando sus IP.
  3. Si está ejecutando WAF como Cloudflare, es posible que deba agregar una regla de permiso al firewall con las direcciones IP de Stripe. El firewall de Cloudflare no usa nombres de host, por lo que deberá usar sus direcciones IP. Recomiendo agregar las direcciones IP para api.stripe.com y sus notificaciones de webhook. Puede consultar el registro de actividad y compararlo con la lista de direcciones IP de Stripe para confirmar que se trata de un problema de Cloudflare.
Regla de firewall de Cloudflare para direcciones IP de Stripe
Regla de firewall de Cloudflare para direcciones IP de Stripe

Aquí está la expresión completa de la regla de firewall de Cloudflare con sus IP a partir de 2021:

 (Ip.src en 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)

Resumen

Con suerte, algunos de estos consejos han sido útiles para solucionar los errores de webhook de Stripe. Si tiene alguna pregunta u otros pasos que le hayan funcionado, me encantaría escucharlos. Deja un comentario a continuación.