Cómo configurar Redsys en Woocommerce con un hosting compartido

por | 0 Comentarios

Configurar una pasarela de pago en una e-commerce de WordPress es muy sencillo, pero la opción de la TPV de Redsys en Woocommerce con un hosting compartido puede complicarse, debemos tomar medidas para que al pagar con tarjeta el estado del pedido sea el adecuado y lo recibamos correctamente en nuestro correo.

Suscríbete:

Configurar la pasarela virtual Redsys en Woocommerce

Seguro que si estás aquí es porque has tenido el mismo problema que yo con la TPV de Redsys en Woocommerce con un hosting compartido. No recibimos el pedido correctamente porque el estado, en la administración de la tienda, no cambia. Por eso Woocommerce no envía el email.

Para realizar este tutorial he utilizado los siguientes recursos, pero cumpliendo las normas que indico en el artículo podéis utilizar los que mejor se adapten a vuestras posibilidades:

  • Alojamiento: Siteground, Hosting que utilizo para todas mis webs en producción. También funciona perfectamente en Hostgator, que es donde alojo las webs que lanzo nuevas.
  • Certificado SSL: Gratuito con el hosting, Let’s Encrypt.
  • Plugins: Woocommerce para crear la tienda online en WordPress. Really Simple SSL para forzar HTTPS en el archivo .htaccess y corregir el contenido mixto. iThemes como plugin de seguridad. Woocommerce Redsys Lite para pagar con tarjeta de crédito.
  • Tema: Divi de Elegant Themes, para mí el mejor tema premium para Woocommerce que permite configurar la tienda con módulos.

El problema con Redsys en WordPress

Es difícil resolver un problema cuando la compañía que ofrece el servicio de la pasarela de pago no ofrece lo que el cliente demanda.

He leído muchos artículos donde decían que se estaban poniendo las pilas para adaptarse a la situación actual, pero la verdad es que sigue dando problemas.

Cuando Redsys empezó a ofrecer los servicios de pago virtual online, sólo se podía instalar en webs que tuvieran una IP dedicada, condición indispensable también para disponer de un certificado digital.

Pero los tiempos cambian y hoy día es posible tener una tienda en un hosting compartido (donde es posible que la misma IP sea compartida por varios usuarios), con un certificado digital (obligatorio) y ofrecer los mismos servicios que antes sólo permitía una IP dedicada.

He aquí el principal problema, Redsys sólo envía peticiones a través del protocolo HTTP en los hostings compartidos porque no entiende que pueda disponer de un certificado HTTPS.

Redsys no ha conseguido adaptarse a este cambio, y si tienes un hosting compartido con un certificado digital como «Let’s Encrypt«, «Comodo» u otros, no se comunicará con tu web para indicar el estado del pedido.

Condiciones para instalar Redsys en Woocommerce con un hosting compartido

Partiendo de la obligatoriedad de disponer de un certificado de seguridad SSL y de tener instalado el plugin Woocommerce, es necesario configurar varias cosas para conseguir que funcione la pasarela de pago correctamente.

Desactivar «Forzar HTTPS» de las opciones del hosting

Si ya tienes tu tienda preparada con todo configurado, es posible que este primer método no te funcione, ya que exige disponer de un hosting con las prestaciones adecuadas para poder desactivar la opción de «Forzar HTTPS«.

Si tu hosting tiene esta opción bloqueada, te recomiendo que cambies de servidor, como el que yo uso de SiteGround, para instalar Redsys en Woocommerce con un hosting compartido correctamente.

Opción de desactivar HTTPS en SiteGround
Desactivar «Forzar HTTPS» en el hosting

Si no puedes permitírtelo en estos momentos, al final del vídeo explico un apaño para poder recibir los correos de Woocommerce cada vez que tenemos un pedido y que el estado del pedido cambie correctamente.

Tener desactivada la redirección HTTPS con esta opción no tiene porque interferir en el certificado de seguridad si tenemos bien configurada la web.

Configurar HTTPS a través de .htaccess

Al desactivar la opción del hosting podemos tener problemas con algunas URLs de nuestra web que no están cambiadas de forma manual.

Para solucionarlo utilizamos el archivo .htaccess para forzar la redirección de todas las URLs a través de HTPPS.

Si estás acostumbrado a editar los archivos de la web no tendrás problema alguno en añadir este código en el archivo:

Además, deberás asegurarte que WordPress no está forzando esta redirección ni está configurada esta opción con ningún otro plugin que tengas instalado.

Configurar HTTPS a través de Really Simple SSL

Si te encuentras más cómodo utilizando un plugin, puedes utilizar el mejor complemento hasta el momento que es Really Simple SSL.

Forzar HTTPS para Redsys en Woocommerce con un hosting compartido
Plugin para forzar la redirección HTTPS

En las opciones del plugin, para que funcione Redsys en Woocommerce con un hosting compartido, tienes que desactivar la opción de redirección 301 de WordPress y activar la redirección 301 de .htaccess.

Si no vas a usar la TPV virtual de Redsys puedes tener activas las dos opciones anteriores.

Configurar las opciones de seguridad

Si tienes un plugin de seguridad como iThemes para proteger tu web, es posible que estés bloqueando algunas funciones de la pasarela de pago sin saberlo.

Como indiqué más arriba, la función SSL tiene que estar desactivada, pero además tienes que desmarcar lo siguiente:

Dentro de los «Usuarios baneados», hay que dejar desactivada cualquier opción que incluya conectarse con alguna lista negra, ya que pueden bloquearnos el acceso a través de HTTP a la pasarela de pago.

Desactivar lista negea de usuarios baneados en iThemes
Desactivar lista negra de usuarios baneados

Dentro de los ajustes del sistema desmarcamos, si están marcadas, las opciones de «Cadenas de consultas sospechosas» que puede impedir que los pedidos se marquen como pagados, y las «Cadenas de URL largas».

Ajustes del sistema en iThemes para configurar Redsys en Woocommerce con un hosting compartido
Ajustes del sistema en iThemes

Instalar la pasarela de pago con tarjeta a través de Redsys

El proceso para que el banco proporcione las claves necesarias para activar el servicio suele ser muy lento. Varias semanas concretamente, pero esto no impide que podamos realizar las configuraciones necesarias para ir avanzando.

Como he dicho al principio, el complemento oficial de Redsys está pensado ahora mismo para usarse con IP dedicadas y certificados homologados por ellos, espero que esto cambie algún día para facilitarnos la vida.

Así que, si lo usas y tienes suerte puede funcionar o no, lo más lógico es que te acabe dando algún problema.

Instalar el plugin de Woocommerce Redsys

Woocommerce dispone de su propio plugin para configurar la pasarela de pago para pagar con tarjeta de crédito y, además, el creador del plugin ofrece en el repositorio de WordPress una versión «Lite» con las opciones necesarias para que funcione bajo los ajustes que hemos realizado.

Así que vamos a instalar «Woocommerce Redsys Gateway Light» en nuestra web.

Plugin para pagar con tarjeta a través de Redsys

Este plugin, permite de una vez, configurar el pago con tarjeta de crédito y Bizum con los mismos datos que nos proporcione el banco para configurar la TPV virtual.

Una vez instalado y activado en WordPress, vamos a los ajustes de Woocommerce y al apartado de «Pagos» para configurar las opciones de Redsys.

Configurar opciones de Redsys
Configurar opciones de Redsys

En un principio, y hasta que comprobemos que funciona y tengamos los datos del banco para su uso en modo producción, usaremos el «Entorno de pruebas», que viene activado por defecto al final de las opciones.

La información para añadir a los campos de configuración en prueba los encontramos en la página de Redsys en el apartado «Desarrolladores». Te los dejo aquí para que los tengas más a mano:

  • Número de comercio (FUC): 999008881
  • Número de terminal: 001
  • Clave secreta SHA256 (en pruebas): sq7HjrUOBfKmC576ILgskD5srU870gJ7

Además de estos datos debemos marcar las casillas «Enable PSD2» y «Compatibilidad HTTPS SNI».

El resto de opciones las podemos dejar como están. Puedes modificar el texto que aparece a la hora de pagar si te apetece, pero para las pruebas el que viene por defecto es suficiente.

Opciones de configuración del plugin Woocommerce redsys
Opciones de configuración del plugin

Añadir excepción en el archivo .htaccess

Ahora si que nos toca editar el archivo del servidor queramos o no. Hay que añadir una regla para que el plugin consiga funcionar a la perfección con Redsys en Woocommerce con un hosting compartido.

Al código que añadimos para forzar el certificado SSL para que la web funcionara siempre la web bajo HTTPS (de forma manual o a través del plugin Really Simple SSL), hay que añadir una línea de código para que Redsys pueda comunicarse con nuestro sitio.

Si hemos utilizado el plugin «Really Simple SSL», debemos eliminar las líneas que hacen que el plugin modifique el código y después marcar la pestaña «Dejar de editar el archivo .htaccess», dentro de las opciones del plugin.

El código resultante sería el siguiente:

Otras configuraciones

Como no todas las páginas o sitios webs son iguales y cada uno tenemos nuestras preferencias a la hora de utilizar los plugins o configurarlas, es posible que necesitemos realizar alguna acción más para que esto funcione.

Hay que vigilar aspectos como posibles firewalls que puedan bloquear las peticiones de Redsys, o la utilización de centros de datos como Cloud Flare.

En este enlace podéis encontrar soluciones que pueden adaptarse a vuestra situación concreta. Espero que os funcione.

Prueba de funcionamiento con tarjetas simuladas en Redsys

En el mismo enlace donde encontramos los datos para configurar el entorno de pruebas, podemos utilizar una serie de tarjetas de crédito que nos permitirán ver si todo el proceso de compra funciona correctamente.

Aquí os dejo un par de ellas y el teléfono para el test con Bizum para quien le interese.

Tarjeta para una compra correcta

  • Número de tarjeta: 4918019199883839
  • Caducidad: 12/32
  • Código CVV2: 123

Tarjeta para compra con error:

  • Número de tarjeta: 4907271141151707
  • Caducidad: 12/32

Datos para probar BIZUM (pruebas correctas con precios menores a 15 euros)

Teléfono Bizum: 700000000
Clave Bizum: 1234
Código SMS: 12345678

Resultado de la compra pagada con Redsys

Si todo funciona estaréis recibiendo los correos de los pedidos y veréis que los estados de los pedidos se ajustan a las operaciones de los clientes.

Configuración en la administración de la pasarela de pago Redsys

Este paso sólo se puede realizar cuando el banco os envíe los datos para la conexión con la TPV en producción.

La forma de controlar los pagos, o hacer devoluciones en caso de necesitarlo, es accediendo a la administración de la pasarela de pago de Redsys en la dirección web que os envíe el banco.

Para sincronizar la comunicación entre Redsys y nuestra web hay que acceder a las opciones del comercio y modificar los siguientes campos:

  • Notificación online: (HTTP + Email Comercio) -> Email Entidad
  • Sincronización: Síncrona
  • URL OK: Vacío
  • URL KO: Vacío
  • Enviar parámetros en las URLs: No
Configuración del comercio en Redsys

Para tener terminada la configuración en producción, el banco nos exige realizar una operación correcta y otra fallida con las tarjetas de prueba. También realizar una prueba con una tarjeta real con una operación correcta que luego podemos revertir con una devolución.

Cambiar estado del pedido a través de la página de agradecimiento utilizando Redsys en Woocommerce con un hosting compartido

Si lo anteriormente explicado no funciona, seguramente vuestra web sea incompatible para poder comunicarse con Redsys y recibir los cambios de estado de los pedidos.

Esto no quiere decir que no funcione el pago con tarjeta de crédito, sólo que tendréis que estar más pendientes y comprobar los pagos desde la administración de Redsys, ya que no recibiréis los correos de los pedidos.

Para evitar esto y, al menos, recibir el correo de un pedido cuando se ha tramitado correctamente, podemos añadir una función especial en la página de agradecimiento para que sea Woocommerce quien cambie el estado del pedido en lugar de Redsys.

No es la mejor solución, pero al menos sabremos cuando alguien ha realizado un pago con tarjeta correctamente.

Para este proceso necesitamos crear un tema hijo o configurar un plugin personalizado donde colocar el código.

Dentro del tema hijo pegamos el código dentro del archivo «funtions.php» o en el plugin de funciones personalizadas.

Para que funcione el código hay que colocar el nombre correcto de cada pasarela de pago, en este caso está configurado para funcionar con el plugin Woocommerce Redsys Lite.

Si utilizas otro plugin tendrás que cambiar o añadir las pasarelas de pago a las que quieres que afecte el cambio.

Para ver como se llama la pasarela de pago que quieres utilizar tienes que editar la configuración de esta desde los ajustes de Woocommerce y fijarte en la URL del navegador. Al final aparecerá el nombre que tienes que utilizar.

Nombre de referencia de la pasarela de pago

Descargo de responsabilidad: Existe una relación publicitaria con Elegant Themes, Siteground y Hostgator por la que ganaremos una pequeña comisión si adquiere el producto por medio de los enlaces de esta página. Gracias a ello podemos ofrecerle ofertas como estas, a usted no le supone ninguna carga adicional económica ni compromiso alguno y a mí me sirve para tomarme un café.

VISITA MI CANAL DE YOUTUBE

Juan

Juan

Juan Martín es el autor del blog Ingresos Vía Web, una persona como tú que intenta ganarse la vida en internet. Trabajo en mi blog para convertir mi sueño de generar autoempleo en realidad y poder ayudar a quien quiera, a conseguir su sueño a través de mis contenidos. Si te parece interesante apúntate a mi newsletter.

0 comentarios

Enviar un comentario

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Al dejar un comentario se solicitan datos como tu email y nombre que se almacenan en una cookie para que no tengas que volver a completarlos en próximas visitas. Para enviar un comentario debes aceptar nuestra política de privacidad. Responsable de los datos: Juan Martín Pascual. | Finalidad: Controlar spam, gestión y moderación de comentarios. | Legitimación: Tu consentimiento expreso. |Comunicación de los datos: No se comunicarán a terceros salvo por obligación legal. | Destinatario: Base de datos alojada en SiteGround Spain S.L. dentro de la UE. Ver política de privacidad de Siteground. | Derechos: Acceso, rectificación, supresión, limitación, portabilidad y olvido de sus datos.

Más de lo mío en Youtube

Categorías

Recomendado para Afiliados de Amazon

AAWP Amazon Affiliate for WordPress
Azon Press

Esta web funciona gracias a:

Hosting WordPress de SiteGround

¿Quieres estar informado de lo que pasa en IVW?

Suscríbete y te aviso de las novedades

verificarprivacidad

Revisa tu bandeja de entrada o la carpeta de spam para confirmar tu suscripción. ¡Gracias por suscribirte!

Pin It on Pinterest

Share This
Ir al contenido