> Faqs > Cómo solucionar un error 403 en los webhooks de Stripe usando Laravel Cashier

Cómo solucionar un error 403 en los webhooks de Stripe usando Laravel Cashier

He seguido la documentación de Laravel Cashier para configurar los webhooks en el panel de Stripe.

He creado el webhook en el panel para los eventos indicados. Sin embargo, aunque los webhooks se disparan en Stripe, no están llegando bien a mi sitio web.

En el panel de Stripe veo que en el log de los webhook que mi servidor está dando un error 403 Forbidden. ¿alguna sugerencia para poder solucionarlo?

Respuestas

El error 403 en los webhooks puede deberse principalmente a dos factores:

  • Que no tengas desactivado el middleware del CSRF
  • Que no tengas configurada bien la variable de entorno de los webhooks

Desactivar CSRF para las rutas del webhook

Este tema lo tienes que hacer en la ruta de App\Http\Middleware\VerifyCsrfToken

Allí tienes que crear una propiedad "protected":

protected $except = [
    'stripe/*',
];

Configurar variables de entorno

En tu archivo .env necesitas indicar la variable de entorno del webhook. Esa variable tendrá esta forma en tu archivo .env:

STRIPE_WEBHOOK_SECRET=whsec_vxxxxxyyyyzzzz

El valor de la variable lo tienes que sacar desde el panel de Stripe, en la pantalla de configuración del webhook, tienes que pulsar el enlace que pone "Revelar" que está situado al lado de la etiqueta "Secreto de firma". La copias en tu archivo .env y listo!

Rutas incorrectas

Tienes por supuesto que verificar que la ruta a la que estás llevando tu webhook sea la correcta. Al crear el webhook en stripe tienes que poner la URL acabada en "/stripe/webhook", algo como:

http://example.com/stripe/webhook

Aunque no creo que sea problema de la URL, ya que si es un 403 más tiene pinta de ser por los dos problemas comentados antes.

Versión del API

Ah! otra cosa que podría dar problemas sería la versión del API que tengas configurado en el webhook. Habría que revisar que sea la correcta, que estés usando en tu versión de Cashier. Consulta la documentación para definir la versión del API que se debe usar en el webhook.

Miguel Angel
1956 91 125 5