Es bastante usual encontrarnos WooCommerce pedidos en espera cuando nos hacen el pago con el TPV de Redsys.
El problema de este error es que el pago se le efectúa al cliente, pero la pasarela de pago Redsys no se puede comunicar con la web para confirmarlo. Como el pedido queda en espera luego de un tiempo se cancela.
En general este error se da en dos casos. Cuando tenemos un certificado SSL de Let’s Encrypt o cuando usamos Clouflare. La buena noticia es que en ambos casos hay solución.
Contenido del Post
Woocommerce pedidos en espera – SSL Let’s Encrypt
El error viene dado porque Redsys soporta sólo IP dedicada para https y no soporta SNI, por lo tanto si tenemos Let’s Encrypt, no podemos trabajar con https para recibir las comunicaciones desde el servidor de Redsys. La opción que tenemos es anular el https, en este último paso y trabajar con el protocolo http.
En este caso la solución pasa por modificar la configuración del plugin. En nuestro caso generalmente trabajamos con el plugin WooCommerce Redsys payment gateway que es gratuito y funciona genial.
Nos vamos a Ajustes de WooCommerce -> Finalizar Compra -> TPV Redsys y en el cuadro de Protocolo para notificaciones elegimos la opción HTTP.
Una vez que hayamos hecho esto, tenemos que modificar el archivo .htacces para que la redirección a https sea condicional, agregando o modificando si tienes hecha la redirección el siguiente código.
Pedidos en espera WooCommerce – Cloudflare
Si no estamos trabajando con https, o estamos seguros que este no es el problema, pero trabajamos con Cloudflare, la solución pasa por desactivar los http headers en Cloudflare.
Una vez desactivado, limpiamos la cache de Cloudflare y debería estar corregido el error.
Más contenido sobre WooCommerce:
¿Cómo crear cupones de descuento en WooCommerce?
Gestionar pedidos en WooCommerce
Canal en Youtube de TargetIMC con vídeos sobre WooCommerce
Si quieres que te ayudemos con estos pasos no dudes en contactarnos o dejar tu comentario.
Alfredo Gómez dice
Perfecta solución instalando el plugging WooCommerce Redsys payment gateway de Jesús Angel del Pozo, lo configuré como propones y añadí las líneas al archivo .htacces
¡Funcionamiento perfecto!
Max Terbeck dice
Gracias. Me alegro que te haya sido útil el tutorial.
Cecilio dice
Hola, un gran artículo pero no se como desactivar los http headers en Cloudflare, me podrían indicar cómo hacerlo? Gracias
Max Terbeck dice
Hola Cecilio,
Gracias por tu comentario. Para desactivar los http headers en cloudlflare tendrías que ingresar en la configuración de tu sitio dentro de cloudflare y buscar la opción. Si no la encuentras consúltalo con Cloudflare que seguramente te ayudarán.
Saludos.
Antonia dice
Hola. Yo tengo el wordpress en otro directorio diferente de la web. La web está en el directorio raiz. O sea
www.miweb.com/blog
.He intentado la solución que propones incluyendo el código en el htaccess del directorio raiz, y también en el htaccess del directorio blog, pero no me funciona con ninguno de ellos. Los pedidos siguen pendientes.
¿Debo cambiar algo en el código propuesto?.
Muchas gracias
Max Terbeck dice
Hola Antonia,
Tendrías que cambiar en la última línea del código lo siguiente:
Reemplazar:
RewriteRule ^(.*)$ https://dominio.com/$1 [R=301,L,NE]
Por:
RewriteRule ^(.*)$ https://dominio.com/blog/$1 [R=301,L,NE]
Cualquier duda que tengas con respecto al SSL y su instalación puedes volver a contactarnos en nuestro formulario de contacto
Carlos dice
Hola! me parece interesante tu artículo. Yo manejo mas el diseño que la programacion y tengo el mismo problema, el dominio en el que estoy trabajando ya tiene instalado un certificado SSL (lo configure con un plugin)
Ya he instalado tu plugin, me podrías decir que debo colocar exactamente en el archivo .htacces?
David dice
Muchas gracias por el artículo Max. He logrado resolver el problema, pero ahora tengo otro problema que no es menos importante. La home de la tienda online no se muestra con https, mientras que el resto de páginas de la tienda online sí que lucen el candado verde y el https. ¿Cómo puedo solucionarlo teniendo en cuenta que he introducido el código sugerido en el artículo? Quiero seguir recibiendo las notificaciones tras el pago de Redsys con la home en https.
Un saludo.