Error RedSys y Cloudflare en Prestashop

No se genera el pedido correctamente en Prestashop aunque el pago mediante RedSys se ha realizado

El pago se recibe correctamente mediante RedSys pero...

…ni rastro del pedido en nuestro backend de Prestashop, ni se le ha enviado los pertinentes emails al cliente, ni nada de nada.

Hemos estado teniendo problemas con uno de nuestros desarrollos en Prestashop. Cuando ya teníamos casi todo el entorno configurado para salir a producción hemos detecado un problema muy gordo. ¡Los clientes pagan correctamente mediante pasarela RedSys sus pedidos pero el pedido no queda registrado en Prestashop por ninguna parte!

Pago correcto mediante pasarela de RedSys

Si accedemos a nuestra consola de administración de RedSys enseguida comprobamos como el pago queda autorizado correctamente y se le realiza el cobro al cliente.

Operación autorizada correctamente. El cliente ha pagado mediante pasarela RedSys
Operación autorizada correctamente. El cliente ha pagado mediante pasarela RedSys

En cambio, nos llama la atención que sobre la misma operación existe un error en la devolución de la información a nuestro servidor web por parte de RedSys y parece que este es el motivo por el cual no queda reflejado el pedido en Prestashop. Como vemos en el error el servidor ha devuelto un código 403 (Forbidden), por lo que nos lleva a pensar que se debe a algún tema de persmisos o bloqueo por parte de algún firewall.

https://tudominio.com/index.php?fc=module&module=redsysoficial&controller=validation -1 Server returned HTTP response code: 403 for URL: https://tudominio.com/index.php?fc=module&module=redsysoficial&controller=validation
Error RedSys
Error en la devolución de datos desde RedSys a Prestashop

El Firewall de Cloudflare, el cuplable

Tras revisar la configuración del servidor web y los logs de arriba a abajo se nos ocurre pensar en que Cloudflare (el CDN que estamos utilizando para esta tienda online) puede tener algo que ver. Accedemos al registro del firewall y descubrimos como es aquí donde está el origen de todos nuestros dolores de cabeza.

El firewall de Cloudflare bloqueando las peticiones de RedSys
El firewall de Cloudflare bloqueando las peticiones de RedSys
Detalle del bloqueo
Detalle del bloqueo

¿Por qué me está bloqueando? Y la solución

Cloudflare posee de una herramienta de comprobación de la integridad del navegador, que en la práctica evita que spammers y robots hagan uso de solicitudes de encabezados HTTP para enviarnos spam (en este caso pedidos falsos por ejemplo). En este caso nos está bloqueando a nosotros mismos.

Deshabilitar la comprobación de integridad del navegador

La manera más rápida de solucionar el problema es deshabilitando esta herramienta. Para ello accedemos a Firewall -> Configuración y desactivamos la «Comprobación de integridad del navegador»

Comprobación de integridad del navegador
Deshabilitamos la comprobación de integridad del navegador en Cloudflare

Crear una regla de validación en el firewall de Cloudflare

Si no queremos desactivar completamente la herramienta de comprobación de integridad (que es lo más recomendable), podemos crear una regla que permita las peticiones que cumplan una serie de condiciones. Para configurar esta regla accedemos a Firewall -> Reglas de Firewall y creamos una nueva regla de firewall. En ella hacemos coincidir los campos que permitan identificar que el módulo de RedSys pueda hacer uso de dicha petición a la url solicitada. En nuestro caso el utilizamos el nombre del módulo que quiere acceder y el identificador ASN ¿qué es el ASN?

Regla Firewall Cloudflare
Creamos una regla en el firewall que permita la validación por parte de RedSys

Y con esto tenemos el problema solucionado y los pedidos de nuestros clientes vuelven a registrarse correctamente en nuestro Prestashop. Esperamos que os sirva de ayuda.

Comparte en redes sociales

Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *