Pedidos pendiente de pago con RedSys y Cloudflare

Cloudflare se ha convertido poco a poco en un actor relevante en muchas de las tiendas con WooCommerce que ofrecen venta online en Internet. La cuenta gratuita que ofrece la plataforma es suficiente para en la mayor parte de los casos tener una mejora considerable en unos pocos aspectos que son importantes en una tienda online.

De forma básica podemos decir que en la mayor parte de los casos CloudFlare nos proporciona:

  • Una mayor seguridad porque bloquea cualquier intento de acceso reiterativo
  • Protección contra ataques de denegación de servicio por el mismo motivo que antes
  • La posibilidad de servir tu web desde un sitio geográfico cercano a tus visitantes y no desde donde está físicamente tu alojamiento
  • Una ganancia en el tiempo de respuesta de la web, sobre todo en lo que respecta a los tiempos de carga iniciales, que ahora con las Google Core Web Vitals tienen aún más relevancia

Pero como todo, cualquier tecnología como esta también tiene algunos inconvenientes. Para lo que nos ocupa el más recurrente es el siguiente. Vamos a describir el problema y la solución.

Problemas con RedSys y CloudFlare

Este título también podríamos ponerlo como Problemas con Ceca y CloudFlare, ya que también afecta a esta otra familia de pasarelas de pago. El problema es el siguiente:

Aunque se paguen los pedidos, cuando uso CloudFlare, dentro de WooCommerce las compras con RedSys aparecen como pendientes de pago o directamente cancelados

Cuando alguien hace un pago en RedSys, la notificación instantánea del pago (también conocida como IPN por sus siglas en inglés Instant Payment Notification) es enviada desde RedSys a tu hosting. En el hosting lo recibe tu plugin para RedSys y WooCommerce y marca el pedido como pagado, pasando el estado del mismo a “Procesando”.

El problema es que la comunicación que hace RedSys a tu hosting es similar a la que podría hacer ciertos tipos de atacantes. No tiene nada que ver, pero básicamente es una llamada que se hace de forma puntual con una serie de datos POST usando un user-agent que no es un navegador, así que CloudFlare lo toma como una comunicación de un bot y lo bloquea. Por eso aunque:

  • el pago se haga
  • RedSys envía la notificación
  • el plugin esté listo para recibirla

Nunca llega a completarse la operación, quedando en primera instancia el pedido pendiente de pago y posteriormente pasando a cancelado, una vez pasa el tiempo en el que preservamos el stock de los productos.

Solución

Como el problema se da dentro de CloudFlare, la solución también está en su panel de configuración. Concretamente tenéis que hacer lo siguiente:

  • Iniciáis sesión en CloudFlare
  • Elegís el sitio en el que tenéis problemas
  • En el menú elegís la pestaña “Firewall”
  • En el submenú que aparece os dirigís a la parte derecha para darle a “Configuración”
  • Desactiváis la “Comprobación de integridad del navegador”

Podéis ver estos mismos pasos en la imagen siguiente:

Más aclaraciones

Terminamos dando algunas aclaraciones más:

  • Este es un problema de filtrado de las llamadas de RedSys a tu sitio. Hay muchos más problemas así que si no das con la tecla no pierdas más el tiempo y escribe al soporte de tu plugin para RedSys y WooCommerce para que te ayuden.
  • Este problema no solo ocurre en RedSys, algo parecido pasa con Ceca
  • Aparte de WooCommerce, como podéis imaginar cualquier otro plugin para Contact Form 7 y RedSys, GiveWP y RedSys, etc. puede tener el mismo problema. En vez de pedidos serán donaciones o pagos. Pero será equivalente: quien te paga hace el pago correctamente, en canales RedSys lo ves todo correcto, pero en tu panel ves que la donación no ha llegado o que el pago está pendiente.
1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (Ninguna valoración todavía)
Cargando…

Almacenamos las IPs desde la que se envían las valoraciones para evitar fraudes

Carrito