redsys y prestashop

Redsys, Prestashop y SSL, una combinación imposible

Si tienes un Prestashop con Redsys y haces la migración a SSL, verás que dejan de llegarte los avisos de compra. 

En los últimos meses la migración a SSL se ha convertido en una de las grandes prioridades SEO en todos aquellos proyectos que tienen por medio una tienda online o una web con registro de usuarios. Pese a que Google lleva meses avisando sobre la importancia del SSL para la mejora del posicionamiento, no ha sido hasta ahora, cuando ha comenzado a lanzar avisos de ‘No seguro’ desde Chrome en aquellas páginas que nos se muestran con https, cuando todos los negocios online se han puesto las pilas con el tema.

Sin embargo, a muchas plataformas que viven de y para los ecommerce, parece haberles pillado el toro con todo esto del SSL. Es el caso de Redsys, una de las pasarelas de pago más usadas en España y que, aunque parezca incomprensible, muestra deficiencias a la hora de integrarse con una web SSL en Prestashop. Os lo explicamos.

Problema detectado por Adrenalina

Hace unos días procedimos a la migración a https de uno de nuestros clientes con tienda online. Tras la compra del certificado SSL, las redirecciones pertinentes, el alta nueva en Search Console, la configuración en Analytics y demás, todo parecía haber ido a las mil maravillas y dimos la migración por cerrada.

Sin embargo, pocas horas después el cliente nos informó de que, las compras a través de Redsys, se estaban ejecutando de manera correcta pero que, ni en Prestashop ni en su email había confirmación ninguna sobre dichas ventas. Es decir, la pasarela de pago funcionaba y cobraba, pero las compras no se estaban registrando en ninguna parte.

Ante esta problemática y tras leer mucho por ahí y hablar directamente con Redsys, llegamos a la conclusión de que, al parecer, Redsys no es capaz de ejecutar correctamente los avisos de compra en aquellas tiendas online en Prestashop con protocolos https en servidores multidominio. Al parecer, si utilizamos un servidor dedicado la configuración sí puede hacerse correctamente, pero si utilizamos un servidor compartido es imposible configurar correctamente la pasarela.

Además, Redsys nos envió información sobre ciertos certificados que sí que aceptaba, pero siempre con IP dedicada.

Soluciones propuestas por Redsys

Las soluciones que se planteaban inicialmente y que los propios gestores de Redsys nos dieron telefónicamente eran tres:

  1. Volver a http y olvidarnos del SSL. Esta solución no tenía sentido. Ya habíamos dado el paso adelante con la migración y volver atrás se planteaba como una solución a medias. Antes o después tendríamos que volver al SSL.
  2. Olvidarnos de Redsys y utilizar otras pasarelas de pago como PayPal o Stripe, opción que no beneficiaba al cliente en términos de comisiones por uso de TPV.
  3. Contratar un servidor dedicado. Esta era de las tres posibles soluciones la más sencilla, pero nuevamente repercutía en unos costes para el cliente totalmente innecesarios, dado que el proyecto no requería de un servidor dedicado excepto para conseguir que Redsys funcionara de manera correcta.

Intentando solucionar el problema

Tras mucho investigar por ahí, dimos con lo que parecía una solución alternativa a las tres y que consistía en modificar el código de Redsys. Os explicamos cómo.

Consistía en acceder al FTP de vuestra web, accediendo al archivo redsys.php que se encuentra en la carpeta /modules/redsys/redsys.php.

A continuación, debíamos buscar en el archivo el siguiente código:

//URL de Respuesta Online

if (empty($_SERVER[‘HTTPS’]))

{

$protocolo = ‘http://’;

$urltienda = $protocolo.$_SERVER[‘HTTP_HOST’].__PS_BASE_URI__.’modules/redsys/validation.php’;

}

else

{

$protocolo = ‘https://’;

$urltienda = $protocolo.$_SERVER[‘HTTP_HOST’].__PS_BASE_URI__.’modules/redsys/validation.php’;

}

Lo copiamos y lo reemplazamos por el siguiente:

//URL de Respuesta Online

if (empty($_SERVER[‘HTTPS’]))

{

$protocolo = ‘http://’;

$urltienda = $protocolo.$_SERVER[‘HTTP_HOST’].__PS_BASE_URI__.’modules/redsys/validation.php’;

}

Modificando este código obligamos a Redsys a devolver siempre una url http al finalizar cualquier compra, enviando de manera correcta la información al Prestashop y solucionando el problema.

Nos las prometíamos muy felices por lo que habíamos leído por ahí pero, nuevamente y contra todo pronóstico, esta solución tampoco ha funcionado.

Solución final al problema

Finalmente y tras hablar con Siteground, nuestro proveedor de hosting, la solución que encontramos fue:

  1. Pudimos seguir con nuestro propio servidor pero contratando una IP dedicada que permitía cumplir las exigencias de Redsys.
  2. Contratar un SSL que sí aceptaba Redsys dentro de su escueto catálogo de SSL aprobados por la plataforma.

Es curioso cómo con otros proyectos en woocomerce, estando en el mismo servidor y con el mismo protocolo SSL funcionan a la perfección pero con un cms de tienda online pura no. Esperemos que puedan poner solución a esta situación lo antes posible.

2 Comentarios
  1. Pedro

    Buenos días,

    Me ha parecido un post muy interesante. Tengo una pregunta sobre vuestra solución final, ¿donde puedo ver que SSL acepta redsys? Porque me gustaría instalarlo en mi tienda virtual y con let’s encrypt parece dar problemas.

    Un saludo

  2. Jorge Gonzalez

    Lo primero antes de nada, debes instalar certificado SSL de Let’s Encrypt sobre tu web para tener HTTPs
    activa HTTPs en tu Prestashop
    1º En primer lugar deberás asegurarte de que actualmente no tienes ningún módulo de Redsys, Servired o Sermepa instalado en tu PrestaShop. En caso contrario podrías generar conflictos con el nuevo. Ves en la administración de PrestaShop a Módulos->Módulos. Se mostrará un listado con los módulos que tienes instalados en PrestaShop. Verifica si hay alguno de tipo Redsys, Servired o Sermepa. De ser así, desactívalo y después elimínalo.
    En esta misma página de módulo deberás instalar el nuevo módulo de Redsys para SHA256. Para ello pulsa en la parte superior de la página en “Añadir nuevo módulo” e instala el módulo que te puedes descargar
    http://www.webempresa.com/descargas/redsys256/redsys_prestashop_2.8.2_WE.zip
    2º Una vez instalado el módulo pulsa en su botón Instalar para entrar en la configuración de la pasarela de Redsys. Aquí deberás agregar los datos de configuración de tu comercio y, una vez hecho, deberás guardar los cambios. El método de pago quedará listo para su uso.

    Es importante que hagas una prueba de compra real usando este método de pago, de forma que puedas verificar que se conecta correctamente con la pasarela de Redsys, se puede realizar el pago y el estado del pedido se actualiza cuando el pago haya sido correcto.

Escribe un comentario

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies