[Solucionado] A vueltas con Redsys y en 1.6

Outlander

Amante de Prestashop
Ya estoy en el último paso de mi migración de 1.4.11 a 1.6.0.9. Después de semanas peleándome con historias que ahora están resueltas me encuentro con este escollo:

Instalo el módulo de Redsys para dar la opción de pago con tarjeta. El módulo v.1.5 que va de cine con mi 1.4.11 y que según he leído va bien en la 1.6 (será para algunos), a mi no me va.
Con este modulo, el pago lo hace correctamente, se carga en el banco, se descuenta al cliente, pero... no retorna bien a Prestashop, dando un error en la página (creo que un 403) y no vacía el carrito ni registra el pedido en la tienda. Pero sí que hace bien el cargo al banco.

Segunda opción. Me bajo la v.2.4.3 y lo mismo pero con un diferencial, retorna al index de la tienda sin dar error alguno. Hace la gestión del pago, pero no vacía ni el carrito y no registra el pedido. Lo mismo

He probado con versiones intermedias, incluida la v.2 de Redsys e idem, más de lo mismo.

Sospecho que el fallo está en el retorno, y que no retorna a la página que debiera para devolver los valores y cerrar bien la compra, y sinceramente no se por donde mirar. Comentar que el resto de los módulos de pago, incluido PayPal funcionan perfectamente.

¿A alguien le ha ocurrido esto o algo parecido?
Un saludo
 

Outlander

Amante de Prestashop
Re:A vueltas con Redsys y en 1.6

Me respondo yo mismo, en la parte principal de la "solución":

Tonto de mi que no me di cuenta que el retorno de Redsys, no funciona en modo de Mantenimiento de la tienda, que es como tengo la nueva versión. Esto es lo que pasa cuando buscas los errores a un nivel superior y son la cosa más simple y sencilla. Parece la Ley de Murphy. Lo pongo por si a algun@ le ocurre semejante despiste: Probar el pago con la tienda activa.

Pero... No me gusta la forma que hace el retorno Redsys: Regresa directamente a la página principal de la tienda (index) sin sacar ni un mensaje al cliente de que el pago y el pedido ha concluido exitosamente. ¿¿Por qué así?? ¿¿Es normal en esta nueva versión??

  • Añadir que, a mi particularmente la versión 1.5 de Redsys no me funciona con Prestashop 1.6.0.9 Me da un error 404.
  • Me funciona con la última versión, la 2.4.3. Pero como digo, sin mensaje final...

No pongo solucionado porque creo que la falta del mensaje o bien es un bug del módulo o un fallo de mi 1.6.0.9
¿Qué opináis?
 

Josraso

Lo cortes no quita lo valiente.
Miembro del equipo
Re:A vueltas con Redsys y en 1.6

Sobre el error que comentas, yo creo que deberia devolverte a la pantalla de validacion del pedido es decir a la confirmacion de que el pedido esta bien realizado, ya que mirando el manual del modulo asi como el codigo del modulo, tiene toda la pinta que algo te esta fallando ya que la url de vuelta, en la linea 378 y 379 del archivo redsys.php veras que pone esto:

Si el pago sale correcto devuelve esta url:
Insertar CODE, HTML o PHP:
'UrlOk' => $protocolo.$_SERVER['HTTP_HOST'].__PS_BASE_URI__.'index.php?controller=order-confirmation&id_cart='.$id_cart.'&id_module='.$this->id.'&id_order='.$this->currentOrder.'&key='.$customer->secure_key,
Si el pago no es correcto devuelve esta URl (la cual puedes personalizar):

Insertar CODE, HTML o PHP:
'UrlKO' => $urltienda,
 

Adjuntos

Outlander

Amante de Prestashop
Re:A vueltas con Redsys y en 1.6

Josraso dijo:
Sobre el error que comentas, yo creo que deberia devolverte a la pantalla de validacion del pedido es decir a la confirmacion de que el pedido esta bien realizado, ya que mirando el manual del modulo asi como el codigo del modulo, tiene toda la pinta que algo te esta fallando ya que la url de vuelta, en la linea 378 y 379 del archivo redsys.php veras que pone esto:

Si el pago sale correcto devuelve esta url:
Insertar CODE, HTML o PHP:
'UrlOk' => $protocolo.$_SERVER['HTTP_HOST'].__PS_BASE_URI__.'index.php?controller=order-confirmation&id_cart='.$id_cart.'&id_module='.$this->id.'&id_order='.$this->currentOrder.'&key='.$customer->secure_key,
Si el pago no es correcto devuelve esta URl (la cual puedes personalizar):

Insertar CODE, HTML o PHP:
'UrlKO' => $urltienda,
Estoy mirando lo que pones y no veo nada de eso. Te explico, partiendo que he usado el módulo v.2.4.3 descargado recientemente de Redsys, el código lo han debido de separar en dos .php:
redsys.php
validation.php

No aparece nada relacionado con "UrlOK" ni "UrlKO. Si puedes bájate el modulo para que lo veas, ya verás.
La validación aparece en validation.php, tal cual:

Insertar CODE, HTML o PHP:
	if ($firma_local == $firma_remota)
	{
		/** Creamos los objetos para confirmar el pedido **/
		$context = Context::getContext();
		$cart = new Cart($pedido);
		$redsys = new redsys();
		if ($cart->id_customer == 0 || $cart->id_address_delivery == 0 || $cart->id_address_invoice == 0 || !$redsys->active)
			Tools::redirect('index.php?controller=order&step=1');
		/** Objeto cliente **/
		$customer = new Customer((int)$cart->id_customer);
		if (!Validate::isLoadedObject($customer))
			Tools::redirect('index.php?controller=order&step=1');

		/** Formatear variables **/
		$respuesta = (int)$respuesta;
		if ($respuesta < 101)
		{
			/** Compra válida **/
			Tools::redirect('index.php?controller=order-confirmation&id_cart='.$pedido.'&id_module='.$redsys->id.'&id_order='.$redsys->currentOrder.'&key='.$customer->secure_key);
		}
		else
			Tools::redirect('index.php');
	}
	else
		Tools::redirect('index.php');
}
No se... ¿cómo lo ves tu? Puede ser que esto esté mal o sea un fallo de order-confirmation.php, no se qué pensar. Gracias.
 

Josraso

Lo cortes no quita lo valiente.
Miembro del equipo
Re:A vueltas con Redsys y en 1.6

Para darte esa informacion me he bajado el ultimo modulo de la pagina de Redsys y si vi ese trozito de codigo y justo en las lineas que te comento. También puede ser lo que tu comentas pero en ese caso seria si tienes algun tipo de modificacion sobre la base de ese archivo o algun override creado.
 

Outlander

Amante de Prestashop
Re:A vueltas con Redsys y en 1.6

Josraso dijo:
Para darte esa informacion me he bajado el ultimo modulo de la pagina de Redsys y si vi ese trozito de codigo y justo en las lineas que te comento. También puede ser lo que tu comentas pero en ese caso seria si tienes algun tipo de modificacion sobre la base de ese archivo o algun override creado.
Antes de nada, gracias por molestarte en bajar el modulo y revisarlo. :-)
Ahora, la línea que tu pusiste difiere de la que viene en el nuevo validation.php

La del modulo 2.4.3
Insertar CODE, HTML o PHP:
Tools::redirect('index.php?controller=order-confirmation&id_cart='.$pedido.'&id_module='.$redsys->id.'&id_order='.$redsys->currentOrder.'&key='.$customer->secure_key);
La tuya:
Insertar CODE, HTML o PHP:
$protocolo.$_SERVER['HTTP_HOST'].__PS_BASE_URI__.'index.php?controller=order-confirmation&id_cart='.$id_cart.'&id_module='.$this->id.'&id_order='.$this->currentOrder.'&key='.$customer->secure_key,
He mirado línea a línea order-confirmation.php y no veo que esté mal. Tal como el original 1.6.0.9

Lo que no entiendo es si todo está validado, ok, tramita el pedido, envía emails, etc... por qué no ejecuta esta línea. Porque según leo el código tan solo debería de ir a index.php si fuera negativo. ¡¡Y va... de "cabeza" ahí!! Que de cabeza me trae... :o

Claro que esa sentencia viene dada por lo que veo del valor <101 ¿Alguna luz de dónde viene y qué reporta ese valor?
Insertar CODE, HTML o PHP:
 if ($respuesta < 101)
Gracias una vez más. Saludos
 

frajufesi

Aprendiz de Prestashop
Re:A vueltas con Redsys y en 1.6

Llevo todo el día peleandome con los de REDSYS. Le echan la culpa al hosting. Dicen que no es visible desde internet la url

"http://xxxxxxxx.com/modules/redsys/validation.php"

Y la solución que dan es:

En respuesta a su correo le informamos que la url de notificación online HTTP se define en el parámetro Ds_ Merchant_MerchantURL
La ruta debe ser válida y visible.
No debe redireccionar a una tercera página.
Debe estar preparada para recibir los parámetros por Post.
No debe solicitar ni usuario ni contraseña.
Como le indicamos en correo anterior debe solicitar información de la respuesta a su hosting.

Pero con el modulo bajado de su web: version 2.4.3 y con la versión de prestashop 1.6.0.8 los pedidos se tramitan en el modo test, pero cuando se hace con la tarjeta que no se acepta, directamente se va a la home, no ejecuta la url "http://xxxxxxxx.com/modules/redsys/validation.php"

Alguien lo ha resuelto?
 

Outlander

Amante de Prestashop
Re:A vueltas con Redsys y en 1.6

frajufesi dijo:
Llevo todo el día peleandome con los de REDSYS. Le echan la culpa al hosting. Dicen que no es visible desde internet la url

"http://xxxxxxxx.com/modules/redsys/validation.php"

Y la solución que dan es:

En respuesta a su correo le informamos que la url de notificación online HTTP se define en el parámetro Ds_ Merchant_MerchantURL
La ruta debe ser válida y visible.
No debe redireccionar a una tercera página.
Debe estar preparada para recibir los parámetros por Post.
No debe solicitar ni usuario ni contraseña.
Como le indicamos en correo anterior debe solicitar información de la respuesta a su hosting.

Pero con el modulo bajado de su web: version 2.4.3 y con la versión de prestashop 1.6.0.8 los pedidos se tramitan en el modo test, pero cuando se hace con la tarjeta que no se acepta, directamente se va a la home, no ejecuta la url "http://xxxxxxxx.com/modules/redsys/validation.php"

Alguien lo ha resuelto?
Te voy a contar cómo he resuelto yo el asunto del modulo de Redsys:

Después de publicarlo en este hilo y buscar opciones del porqué no redirige y es más... hace (o no hace nada) lo que le sale en gana es acordarme de quién programó semejante módulo, me refiero a la versión 2.4.3.

Un detalle como le comenté a Josraso es que el modulo en esa versión lo han dividido en dos .php : uno el redsys.php y el validation.php. Cosa que en versiones anteriores estaba la validación dentro del módulo redsys.php y hubo cambios en el código de validación, conclusión: el modulo no va bien.

Intenté poner la v.1.5 de Redsys que en Prestashop 1.4 va bien, pero debe haber incompatible con la 1.6.0.9 pues no hay forma de hacerla funcionar correctamente ¿Qué hice además de estirarme de las venas durante una semana...?

Solución: Bajarme una versión anterior a la chapucera 2.4.3, por ejemplo la Redsys v.2.0. El código está en un bloque (como antes: redsys.php) y la configuración al igual que en la v.1.5. Y voilá... ¡Funciona, y bien!
;D
Ten en cuenta que además de eso NO debes de tener la tienda en modo mantenimiento, y tampoco en debug.

Suerte y moraleja: "Cuando veas un módulo que te funciona, no lo sueltes por mucho que te tiente una versión superior. Esa trae aspirinas incluidas" ;)
 

frajufesi

Aprendiz de Prestashop
SOLUCIONADO:

COMPRE EL MODULO DE http://www.idnovate.com/. 39 euritos. Y con su ayuda logré encontrar cual era el problema.

Muy recomendable su servicio y concretamente al técnico David.
 

josegemar

Aprendiz de Prestashop
Frajufesi, yo tambien llevo desde el viernes rompiéndome la cabeza con el maldito modulo de Redsys, asi que cuando he visto que te ha ido de lujo con este modulo lo he comprado. Ahora va perfecto, recibo notificaciones http, asi que me vacia la cesta y pone el pedido. El problema es que 2 pruebas reales que he hecho me sale "Error de pago". En el historial de pedidos puedo ver esos 2 pedidos, pero el estado muestra ese mensaje que te decia "Error de pago". ¿Te ha pasado esto? Es que no sé si me he dejado algo en la configuración del modulo o qué es. Aparentemente todo parece bien...
 

javilopez

Aprendiz de Prestashop
Re:A vueltas con Redsys y en 1.6

Outlander dijo:
Solución: Bajarme una versión anterior a la chapucera 2.4.3, por ejemplo la Redsys v.2.0. El código está en un bloque (como antes: redsys.php) y la configuración al igual que en la v.1.5. Y voilá... ¡Funciona, y bien!
;D
Hola. ¿De dónde puedo descargar esta versión antigua de redsys?
Porque a mí también me está dando problemas, el soporte de redsys no me da solución y los de la Caixa parece que les hable en chino.

Gracias.
 

Outlander

Amante de Prestashop
Re:A vueltas con Redsys y en 1.6

javilopez dijo:
Outlander dijo:
Solución: Bajarme una versión anterior a la chapucera 2.4.3, por ejemplo la Redsys v.2.0. El código está en un bloque (como antes: redsys.php) y la configuración al igual que en la v.1.5. Y voilá... ¡Funciona, y bien!
;D
Hola. ¿De dónde puedo descargar esta versión antigua de redsys?
Porque a mí también me está dando problemas, el soporte de redsys no me da solución y los de la Caixa parece que les hable en chino.

Gracias.
Si me dan permiso y me dicen cómo subir aquí el modulo v.2.0 de Redsys, lo subo y te lo bajas, y así queda para quién más pueda tener problemas con la última versión. Sino mándame un mensaje personal y te lo envío directamente. Saludos.
 

Theredflea

Aprendiz de Prestashop
Hola,
me he registrado en este foro porque he solucionado este problema, y creo que la solución será válida para muchos a los que les ocurre lo mismo.
Parece una tontería pero ha funcionadoo perfectamente:

SOLUCIÓN:
1- Localización > Traducciones: Buscar las traducciones de los campos deferentes a RedSys y Paypal y traducirlas TODAS.
Hay un montón lo sé, pero lo que he hecho ha sido copiar texto de columna izquierda (original) / pegar en columna derecha.
Importante n odejarse ninguna.
2- Hacerlo para todos los idiomas instalados

TYras tener el mismo problema que vosotros tanto con RedSys como con Paypal, haciendo esto se ha solucionado.

Espero esta aportación os vaya tan bien como a mi!!!
 

mistik

Aprendiz de Prestashop
Me parece FATAL que RedSys haya actualizado sus módulos y no funcionen.

Llamas a su soporte y te remiten a la web donde están colgados los módulos (actualizados 2.8.2 que no funcionan)

Finalmente te remiten a un "contacto" para que pagues.... DE RISA!!!

No me extrañaria que el programador de RedSys se este ganando un sobresueldo ... publico un módulo que no funciona y de cobro el que si....
 

Josraso

Lo cortes no quita lo valiente.
Miembro del equipo
"Ojo" hay que volver a generar la clave, no sirve utilizar la vieja, lo dijo por que a mi me paso y ya tengo el modulo que mencionas funcionando perfectamente.
 

Ambar

Aprendiz de Prestashop
Buenas noches
Por favor que alguien me ayude. Llevo desde la semana pasada intentando instalas el módulo de redsys para prestashop v 2.8.2. y me sale todo el rato este mensaje: se ha producido un error al extraer el módulo (puede tratarse un un fichero corrupto). He llamado a la plataforma y me dicen que el módulo funciona bien, les he escrito y me contestan que lo han probado con mi versión de prestashop que es la 1.6.0.1.4. Sí que es cierto que soy bastante torpe en estos temas, pero les expliqué paso por paso lo que hice, y parece ser que lo hice todo bien. La solución que me dan es que elimine la versión anterior, e instale el módulo en un prestashop vacío. La tienda tiene 6 meses y me la hizo una empresa externa, ya que yo no tengo ni idea de ésto y me da miedo de perder toda la información. ¿Puede alguien ayudarme? ¿le ha pasado a alguien lo mismo? Ya no sé que hacer
 

Josraso

Lo cortes no quita lo valiente.
Miembro del equipo
Probaste a subirlo manualmente desde el ftp, tambien has mirado en tu pc que se descomprima bien, a veces puede ser que se descargue mal.
 

maximo88

Aprendiz de Prestashop
https://www.prestashop.com/forums/topic/266480-modulo-redsys-tpv-virtual-gratis-en-su-web/?p=2194459

Estamos siguiendo el tema aquí. Y pondremos ahí el módulo GRATIS, porque las empresas y personas que se quieren lucrar con esto hacen un flaco favor a esta plataforma
 
Arriba