Jump to content

Pasarela de pago Redsys Prestashop 1.7


Martin Fusalario

Recommended Posts

Buenas tardes,

 

¿Os funciona bien el módulo con Prestashop 1.7.2? Llevo todo el día investigando y hasta donde he podido llegar es al validate.php. El punto en el que falla es este:

$totalCart = $cart->getOrderTotal(true, Cart::BOTH);

La ejecución no pasa de ahí, así que no termina validando el pedido. He imprimido el objeto $cart y a parte de algunos ids que sí están rellenados, no hay datos de artículos, precios, totales, etc. Seguramente por eso peta el getOrderTotal. ¿Os ha pasado a alguno?

 

¡Gracias!

 

Buenos días,

 

En primer lugar agradecer la aportación de eltitoxusmi ya que somos muchos los que nos estamos encontrando con el problema de redsys y el tiempo que él ha dedicado a retocar este módulo es para quitarse el sombrero.

 

Yo estoy teniendo un problema similar con la 1.7.2 instalada ya que me realiza el pago de forma correcta pero no me genera el pedido. He puesto trazas en el validation pero se ve que falla justo en la línea siguiente:

$customer = new Customer((int)$cart->id_customer); 

He puesto trazas para comprobar que el $cart contiene el id_customer correcto y así es por lo que debe ser algún error a la hora de instanciar el nuevo objeto "Customer". He comprobado eque los permisos del fichero "validation.php" estén a 755 y así es. ¿Alguien tiene alguna idea?

 

Muchas gracias de antemano.

Link to comment
Share on other sites

Buenas!

 

    Generalmente cuando no se generan los pedidos correctamente suele ser un problema con los certificados SSL.

 

 

 

Redsys no acepta certificados SNI (certificados SSL sin IP fija) ya que requieren la validación del certificado por dominio y por IP. Esto hace que el sistema de notificaciones, que se encarga de actualizar el estado del pedido y, en algunos casos, de almacenar el propio pedido, no funcione correctamente.

 

En la web donde monté el módulo no la he actualizado todavía a 1.7.2, un poco de miedo a que se me desconfiguren todos los módulos como me pasó cuando actualicé la última vez. Probaré de todas formas este finde con un 1.7.2 y os informo

Link to comment
Share on other sites

Buenas!

 

    Generalmente cuando no se generan los pedidos correctamente suele ser un problema con los certificados SSL.

 

 

En la web donde monté el módulo no la he actualizado todavía a 1.7.2, un poco de miedo a que se me desconfiguren todos los módulos como me pasó cuando actualicé la última vez. Probaré de todas formas este finde con un 1.7.2 y os informo

.

¡Gracias Crack!

Link to comment
Share on other sites

Pero qué pasa cuando la versión de mi Prestashop es 1.6.1.11? Serviría esta versión de la que hablas? 

Buenas!

 

    Generalmente cuando no se generan los pedidos correctamente suele ser un problema con los certificados SSL.

 

 

En la web donde monté el módulo no la he actualizado todavía a 1.7.2, un poco de miedo a que se me desconfiguren todos los módulos como me pasó cuando actualicé la última vez. Probaré de todas formas este finde con un 1.7.2 y os informo

Link to comment
Share on other sites

 

Pero qué pasa cuando la versión de mi Prestashop es 1.6.1.11? Serviría esta versión de la que hablas?

 

Usa el módulo oficial de Redsys que puedes encontrar en su página, que soporta PS 1.6. esta modificación que he hecho está pensada a partir de la 1.7

Link to comment
Share on other sites

Pero el problema que tengo es el del Error del HandShake. Tengo Hosting Compartido y Certificado SSL comprado de Comodo pero el registro del pedido no se proceso y en las notificaciones recibo error del HandShake.

 

 

Usa el módulo oficial de Redsys que puedes encontrar en su página, que soporta PS 1.6. esta modificación que he hecho está pensada a partir de la 1.7

Link to comment
Share on other sites

Pero el problema que tengo es el del Error del HandShake. Tengo Hosting Compartido y Certificado SSL comprado de Comodo pero el registro del pedido no se proceso y en las notificaciones recibo error del HandShake.

 

Este es el hilo para 1.7. Para el oficial genérico de Redsys te recomiendo que sigas el hilo https://www.prestashop.com/forums/topic/266480-modulo-redsys-tpv-virtual-gratis-en-su-web/

 

En tu caso concreto tiene pinta que el cipher del certificado SSL no está soportado por Redsys seguramente, hablando desde el desconocimiento concreto de tu proyecto.

 

 

Como le hemos indicado anteriormente esto puede ser producido a que debe admitir alguno de los siguientes Cipher Suites, que en su caso, salvo error, no admite ninguno de ellos:

 

SSL_RSA_WITH_RC4_128_MD5,

SSL_RSA_WITH_RC4_128_SHA,

SSL_RSA_WITH_AES_128_CBC_SHA,

SSL_RSA_WITH_AES_256_CBC_SHA,

SSL_RSA_WITH_3DES_EDE_CBC_SHA,

SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA

Link to comment
Share on other sites

Buenas! soy bastante nueva en todo esto, así que perdonad si la pregunta suena tonta :)

 

¿El tema de la IP fija es algo que cualquier hosting debe poder solucionar, o está sujeto al plan de pago que uno tiene contratado con ellos? Ya tengo el SSL (después de muchas dificultades para que me lo instalasen correctamente), y ahora descubro que también necesito la ip fija!

 

En todo caso, la respuesta de mi hosting a mi petición de IP fija para Redsys es esta:

 

'Te confirmo que nuestra plataforma de Hosting Linux responde bajo tecnología SNI la cual te pedirá Redsys que confirmes que dispones. Según la nueva actualización que realizaron en su módulo, podrás instalártelo sin problemas e implementarlo en tu espacio web. Meses atrás Redsys, solicitaba para sus módulos una única IP, por lo que debías pasar la gestión de tu tienda online hacia un servidor dedicado con una única IP. Desde Julio de este año, implementaron la tecnología SNI y ahora ya no es necesario de requerir una única IP, puesto que su módulo acepta tecnología SNI.

En caso de que tengas dudas, contacta con ellos directamente para que te indiquen los requisitos que debe tener tu Hosting, pero en principio, como te comentaba, nuestra plataforma es apta para este tipo de implementación.'

 

 

¿Hay algún otro requisito técnico para que el módulo gratuito de redsys funcione corretamente en 1.7.1?

 

Gracias!

Edited by naturalba (see edit history)
Link to comment
Share on other sites

Hola a tod@s,

Tras encontrar este hilo en el foro e instalado la aportación /modulo de eltitoxusmi me funciono Redsys en pretashop 1.7.1.2. Pero al tener que actualizar a la 1.7.2.0 por recomendación del creador de la plantilla que me generaba problemas, también me encuentro que no me genera el pedido / no vacía el carro de la compra, pero si hace el pago en TPV virtual. No puedo probar en modo depuración para intentar encontrar el error, ya que en modo depuración no se muestra el modulo en la compra, he probado con los permisos, el certificado ssl (aunque gratuito) esta con IP fija y otros, pero sigue sin funcionar. Los de Redsys, dicen que por sus parte no muestra errores en el pago.

¿Ha alguien le funciona en 1.7.2.0?, ¿alguna idea de que puede ser?

Gracias.

Link to comment
Share on other sites

Yo tengo el mismo problema con la versión de prestshop 1.7.2, pero si has seguido el foro verás que eltitoxusmi, que es el compañero forero que se ha currado la actualización del módulo redsys 3.0 al prestashop 1.7, iba a echar un vistazo al problema en estos días, para ver si le funcionaba correctamente en la versión última 1.7.2

Link to comment
Share on other sites

Hola a todo@s,

 

Soy nuevo en este foro pero quería aportar mi granito de arena.

 

Yo también tengo el Prestashop 1.7.2 con el último modulo de RedSys 3.0 bajado de su web, y una vez realizado el pago ni me vaciaba el carrito,ni me ponía el resumen del pago con la compra y no me redirigía correctamente.

 

Le he echado un vistazo al validation.php, y aunque no me he querido meter en profundidad, he visto que no obtiene bien el objeto $cart ni el $totalCart (que supuestamente es el importe total de la compra en la tienda. No confundir con el $total o el $totalOrig que es el total, el Ds_Amount que nos viene de RedSys).

 

He modificado para mi tienda también el redsys.php para que en el carro de la compra me cambie la imagen de RedSys (que los clientes no creo que conozcan) por los iconos de visa y mastercard.

 

Con todos estos cambios ya me funciona correctamente la pasarela de pago con Redsys.

 

Os dejo un enlace donde os podréis bajar los dos archivos y reemplazarlos en vuestra tienda para la 1.7.2

 

https://drive.google.com/open?id=0B8Dt0Ja2K-bxU1k4M20zeWpULVk

 

Los que tenéis que reemplazar son estos:

 

../modules/redsys/redsys.php

../modules/redsys/validation.php

 

Cualquier cosa me decís pepebotella y josemadominguez.

 

Espero haberos ayudado!

 

Saludos  ;)

  • Like 1
Link to comment
Share on other sites

Hola ComaFlotante,

 

Gracias por tú aportación, he probado sustituyendo los archivos que adjuntas, pero ha mi no me ha funcionado. Hace el Pago en TPV virtual, pero no continua con el pedido en prestashop (sigue el producto en el carrito). Incluso he cambiado los permisos de los ficheros de 644 a 666.

Buena idea el cambiar el icono de Redsys por las tarjetas.

Gracias a tod@s por seguir aportando.

Link to comment
Share on other sites

Hola a todo@s,

 

Soy nuevo en este foro pero quería aportar mi granito de arena.

 

Yo también tengo el Prestashop 1.7.2 con el último modulo de RedSys 3.0 bajado de su web, y una vez realizado el pago ni me vaciaba el carrito,ni me ponía el resumen del pago con la compra y no me redirigía correctamente.

 

Le he echado un vistazo al validation.php, y aunque no me he querido meter en profundidad, he visto que no obtiene bien el objeto $cart ni el $totalCart (que supuestamente es el importe total de la compra en la tienda. No confundir con el $total o el $totalOrig que es el total, el Ds_Amount que nos viene de RedSys).

 

He modificado para mi tienda también el redsys.php para que en el carro de la compra me cambie la imagen de RedSys (que los clientes no creo que conozcan) por los iconos de visa y mastercard.

 

Con todos estos cambios ya me funciona correctamente la pasarela de pago con Redsys.

 

Os dejo un enlace donde os podréis bajar los dos archivos y reemplazarlos en vuestra tienda para la 1.7.2

 

https://drive.google.com/open?id=0B8Dt0Ja2K-bxU1k4M20zeWpULVk

 

Los que tenéis que reemplazar son estos:

 

../modules/redsys/redsys.php

../modules/redsys/validation.php

 

Cualquier cosa me decís pepebotella y josemadominguez.

 

Espero haberos ayudado!

 

Saludos  ;)

 

Cuidado porque te has cepillado toda la validación del objeto cliente y eso puede ser un problema si tienes tienda multilenguaje/multidivisa. Fíjate en dos de las líneas que has comentado

//Context::getContext()->language = new Language((int)$cart->id_lang);
//Context::getContext()->currency = new Currency((int)$cart->id_currency);	

Al cargarte eso, realmente no sé qué puede pasar en una tienda con dos idiomas, por ejemplo, al no meterle en el contexto el idioma del "carrito". Por lo que aporta el compañero @ComaFlotante , el error parece que está en el objeto $cart, que por algún motivo no estará guardando algún dato correctamente cuando genera el carrito (seguramente habrá cambiado algo en 1.7.2?) y de ahí que al recuperarlo tampoco lo haga correctamente. 

 

A ver si saco un rato y lo miro

Link to comment
Share on other sites

Hola a todo@s,

 

Soy nuevo en este foro pero quería aportar mi granito de arena.

 

Yo también tengo el Prestashop 1.7.2 con el último modulo de RedSys 3.0 bajado de su web, y una vez realizado el pago ni me vaciaba el carrito,ni me ponía el resumen del pago con la compra y no me redirigía correctamente.

 

Le he echado un vistazo al validation.php, y aunque no me he querido meter en profundidad, he visto que no obtiene bien el objeto $cart ni el $totalCart (que supuestamente es el importe total de la compra en la tienda. No confundir con el $total o el $totalOrig que es el total, el Ds_Amount que nos viene de RedSys).

 

He modificado para mi tienda también el redsys.php para que en el carro de la compra me cambie la imagen de RedSys (que los clientes no creo que conozcan) por los iconos de visa y mastercard.

 

Con todos estos cambios ya me funciona correctamente la pasarela de pago con Redsys.

 

Os dejo un enlace donde os podréis bajar los dos archivos y reemplazarlos en vuestra tienda para la 1.7.2

 

https://drive.google.com/open?id=0B8Dt0Ja2K-bxU1k4M20zeWpULVk

 

Los que tenéis que reemplazar son estos:

 

../modules/redsys/redsys.php

../modules/redsys/validation.php

 

Cualquier cosa me decís pepebotella y josemadominguez.

 

Espero haberos ayudado!

 

Saludos  ;)

 

Ante todo muchas gracias por la aportación. En un principio me fallaba porque al validar los importes no eran iguales (uno de ellos tenía dos "0" al final.). He modificado la comprobación para que compruebe el mismo numero dividido entre 100 y esa parte ya la hace pero cuando llama a la función "validateOrder" falla. Seguiré investigando...
 
Gracias de nuevo!
Link to comment
Share on other sites

Una pregunta: me han mandado los de redsys a través de mi banco los parámetros para configurar el entorno de pruebas (los definitivos aún no), y cuando los meto en el módulo y quiero hacer una prueba de compra recibo el mensaje 'no hay ningún método de pago'. Ni siquiera me aparece la opción de pago por transferencia. Cuando desactivo el módulo redsys vuelve la opción de la transferencia. Tengo 1.7.1 y el módulo modificado que se subió aquí.

 

Algún pista de que puede estar pasando?

 

Gracias

Link to comment
Share on other sites

Me parece que no he subido el validationcorrecto. Tenía varios, y he subido uno con el que estaba "jugando"

 

Eltutoxusmi, a mi me da error en algún atributo que se carga o debería cargar en el $cart, pero no tengo mucho tiempo para averiguar cuál es. Si tienes un rato para investigarlo, genial, más que nada para no quedarme con la curiosidad  ;)

 

Josemadominguez, he subido el validate correcto. Me funciona bien el pago, el return, el idioma y las divisas (Ya que mi tienda está en inglés y español). Por si acaso, aunque no creo que te afecte, quita la caché de tu tienda, fuerza la recompilación de tu tienda para hacer las pruebas y limpia la caché de tu explorador.

 

Te dejo ahí el enlace para que te lo descargues:

 

https://drive.google.com/open?id=0B8Dt0Ja2K-bxZkVSV25uWjZwMTg

 

Naturalba, es la 3.0.0 de RedSys?

Link to comment
Share on other sites

Sí, la 3.0.0, pero la versión modificada que subieron por aquí. También he añadido tus dos archivos y seguía sin funcionar, aunque no he probado con el nuevo que acabas de subir. Y, claro, los de redsys al preguntarle versión de prestashop y del módulo han terminado su soporte, porque ese módulo no es compatible de entrada. Les he dicho que a vosotros os funciona con alguna modificación, pero eso no es asunto suyo. Y no quisiera comprar el módulo de pago hasta no estar por lo menos segura de que el sistema me convence (además de que si se puede prefiero el gratuito, claro).

 

Alguna idea? Mando capturas o algo?

Link to comment
Share on other sites

Me parece que no he subido el validationcorrecto. Tenía varios, y he subido uno con el que estaba "jugando"

 

Eltutoxusmi, a mi me da error en algún atributo que se carga o debería cargar en el $cart, pero no tengo mucho tiempo para averiguar cuál es. Si tienes un rato para investigarlo, genial, más que nada para no quedarme con la curiosidad  ;)

 

Josemadominguez, he subido el validate correcto. Me funciona bien el pago, el return, el idioma y las divisas (Ya que mi tienda está en inglés y español). Por si acaso, aunque no creo que te afecte, quita la caché de tu tienda, fuerza la recompilación de tu tienda para hacer las pruebas y limpia la caché de tu explorador.

 

Te dejo ahí el enlace para que te lo descargues:

 

https://drive.google.com/open?id=0B8Dt0Ja2K-bxZkVSV25uWjZwMTg

 

Naturalba, es la 3.0.0 de RedSys?

 

¡¡Funciona perfecto!!

 

Mil gracias!!!! :-)

  • Like 2
Link to comment
Share on other sites

Si, lo pongo en test, concretamente en la primera opción sis-t. La captura no te puedo poner en este mismo momento porque no tengo el ordenador delante y desde el móvil no me deja acceder a los módulos. El resto de cosas que pongo es el número de Comercio, contraseña de encriptacion, Número de terminal 1 y cero en la otra opción,que no recuerdo, más que nada por dejarlo como está ya que no me han dicho que ahí deba poner nada...

Link to comment
Share on other sites

Normalmente si tienes un CPanel te muestra los permisos a la derecha de los fichero desde su explorador.

 

En un FTP también suele mostrar los archivos y es aquí donde yo los cambio porque te lo hace recursivamente desde el directorio que tu selecciones.

 

Aquí te dejo un screenshot:

 

https://drive.google.com/open?id=0B8Dt0Ja2K-bxWmpkbThVRTVDZG8

Link to comment
Share on other sites

También he estado buscando por google y aparecen un par de conversaciones sobre el modulo redsys en las que alguien comenta que tiene el mismo error (eso de Desafortunadamente, no hay métodos de pago disponibles), pero no se ha puesto ninguna solución...

Link to comment
Share on other sites

Hola a todos.

 

Antes que nada felicitar a todos lo que hacen posible que gente con poca experiencia como yo podamos resolver problemas de programación de este tipo. Una pregunta, al descargarme los archivos nuevos de redsys. Cómo los instalo? simplemente borro (o renombro) la partela de redsys y copio esta nueva? o hay que hacer algún tipo de instalación de módulo...

 

Gracias a todos por vuestras prontas respuestas.

Un cordial Saludo

Link to comment
Share on other sites

También he estado buscando por google y aparecen un par de conversaciones sobre el modulo redsys en las que alguien comenta que tiene el mismo error (eso de Desafortunadamente, no hay métodos de pago disponibles), pero no se ha puesto ninguna solución...

 

Yo lo que haría es desinstalar el módulo de redsys, ver que realmente se ha desinstalado del servidor (comprobar que la carpeta ya no existe dentro del directorio de modulos) y volver a instalarlo. Cambiar todos los permisos dentro de la carpeta y hacer una prueba de compra. Prueba a ver si así te salen los módulos de pago

  • Like 1
Link to comment
Share on other sites

Hola a todos.

 

Antes que nada felicitar a todos lo que hacen posible que gente con poca experiencia como yo podamos resolver problemas de programación de este tipo. Una pregunta, al descargarme los archivos nuevos de redsys. Cómo los instalo? simplemente borro (o renombro) la partela de redsys y copio esta nueva? o hay que hacer algún tipo de instalación de módulo...

 

Gracias a todos por vuestras prontas respuestas.

Un cordial Saludo

 

 

Si ya tienes instalado el módulo de redsys instalado, solo tienes que sustituirlos por lo que te has bajado.

Link to comment
Share on other sites

Yo lo que haría es desinstalar el módulo de redsys, ver que realmente se ha desinstalado del servidor (comprobar que la carpeta ya no existe dentro del directorio de modulos) y volver a instalarlo. Cambiar todos los permisos dentro de la carpeta y hacer una prueba de compra. Prueba a ver si así te salen los módulos de pago

Hecho, y sigue dando el mismo error. Una pregunta: ¿Sustituir los dos archivos que tú has modificado en el zip de descarga de la web de redsys sería suficiente, o la modificación que se colgó en este foro incluye más cambios?

 

Estoy pensando también cambiar mi tienda a prestashop 1.6 y utilizar el módulo redsys tal cual está en su web, porque como acabo de contratar el servicio imagino que me darían servicio técnico al ser una versión compatible, aunque no sé si los 250 artículos que ya tengo soportarían ese retroceso (no sé si la copia de la base de datos de MySQL creada con 1.7 se leerá completa en esa versión). Ahora mismo no me dan soporte por tener la tienda en 1.7.

 

Si se te ocurre otra solución...

Link to comment
Share on other sites

Hola de nuevo,

 

He implementado el módulo y se puede hacer la compra en entorno test, llega correctamente al banco; pero no genera el pedido en el historial.

He actualizdo el archivo valdation.php que mencionaron anteriormente. No funciona la validación.

 

¿Podéis ayudarme al respecto?

 

Gracias

Edited by ecoloco2 (see edit history)
Link to comment
Share on other sites

Buenos dias, 

 

En primer lugar felicitaciones a todos por el módulo y por todas la aportaciones. Hemos seguido todo el hilo y nos esta funcionando todo a excepción de que una vez realizado el pago y Redsys confirma que el pago se ha efectuado correctamente, el pedido no queda guardado en el historial como pagado. Hemos activado las trazas del log y nos aparece las siguientes líneas:

 

Aug 30 2017 12:42:14 -- hZgurxm7bsKY1Zo8ScAG -- totalPost: 6500
Aug 30 2017 12:42:14 -- hZgurxm7bsKY1Zo8ScAG -- Total (15582405): 6500
Aug 30 2017 12:42:14 -- hZgurxm7bsKY1Zo8ScAG -- La moneda no coincide. ( : 978)
Aug 30 2017 12:42:14 -- hZgurxm7bsKY1Zo8ScAG -- Ds_AuthorisationCode inválido. (++++++)
 
Alguien ha podido detectar y resolver este error? He cambiado los permisos de las carpetas tal y como indican, y el problema persiste.
 
Muchas gracias de antemano! :)
Link to comment
Share on other sites

 

Buenos dias, 

 

En primer lugar felicitaciones a todos por el módulo y por todas la aportaciones. Hemos seguido todo el hilo y nos esta funcionando todo a excepción de que una vez realizado el pago y Redsys confirma que el pago se ha efectuado correctamente, el pedido no queda guardado en el historial como pagado. Hemos activado las trazas del log y nos aparece las siguientes líneas:

 

Aug 30 2017 12:42:14 -- hZgurxm7bsKY1Zo8ScAG -- totalPost: 6500
Aug 30 2017 12:42:14 -- hZgurxm7bsKY1Zo8ScAG -- Total (15582405): 6500
Aug 30 2017 12:42:14 -- hZgurxm7bsKY1Zo8ScAG -- La moneda no coincide. ( : 978)
Aug 30 2017 12:42:14 -- hZgurxm7bsKY1Zo8ScAG -- Ds_AuthorisationCode inválido. (++++++)
 
Alguien ha podido detectar y resolver este error? He cambiado los permisos de las carpetas tal y como indican, y el problema persiste.
 
Muchas gracias de antemano! :)

 

 

El problema realmente era con la moneda. Hemos forzado todas las variables correspondientes a la moneda a 978, y ahora en las trazas de logs no aparece ningun error, la transacción bancaria se realiza (el pedido es cobrado) pero igualmente sigue si quedar como pagado en el historial de compras...

Link to comment
Share on other sites

El problema realmente era con la moneda. Hemos forzado todas las variables correspondientes a la moneda a 978, y ahora en las trazas de logs no aparece ningun error, la transacción bancaria se realiza (el pedido es cobrado) pero igualmente sigue si quedar como pagado en el historial de compras...

 

SOLUCIÓN AL PROBLEMA QUE EL PAGO SE REALIZA PERO EL PEDIDO NO QUEDA COMO PAGADO EN EL HISTORIAL DEL CLIENTE:

 

Siguiendo el hilo hay un punto que se indica que modificar la línia donde se genera el número de pedido dentro del archivo redsys.php para evitar error de pedido repetido:

 

$numpedido = str_pad($params['cart']->id, 8, "0", STR_PAD_LEFT) . date('is');

 

Ok, pues si se modifica esta línea, deberemos de modificar otra del validation.php.

 

En lugar de 

$pedido = intval(substr($pedidoSecuencial, 0, 11));

 

tendremos que poner

$pedido = intval(substr($pedidoSecuencial, 0, 8));

 

Esta modificación me ha solucionado el problema. Espero que os sirva de ayuda.

 

saludos!

Link to comment
Share on other sites

  • 2 weeks later...

Hola, tengo un problema con el módulo Redsys modificado por vosotros, me ha funcionado perfectamente en prestashop 1.7 pero al actualizar a la 1.7.2 cuando alguien hace un pedido y paga con tarjeta, el cobro se hace correctamente, pero el pedido no se genera, queda como carrito abandonado a pesar de que el cliente lo ha pagado...

He visto en el código fuente del módulo que hace referencia a un archivo llamado header.php que en mi prestashop no está... no se si tiene algo que ver...
 

include(dirname(__FILE__).'/../../header.php');
Link to comment
Share on other sites

:wub:  UPS! la madre de las chigadas amigos, siempre me gusto hacer conectores de pagos y modulos para Redsys.

 

he visto a la ligera el archivo y tiene demasiados problemas, vean lo que les comento en el codigo:

<?php
/**
* NOTA SOBRE LA LICENCIA DE USO DEL SOFTWARE
* 
* El uso de este software está sujeto a las Condiciones de uso de software que
* se incluyen en el paquete en el documento "Aviso Legal.pdf". También puede
* obtener una copia en la siguiente url:
* http://www.redsys.es/wps/portal/redsys/publica/areadeserviciosweb/descargaDeDocumentacionYEjecutables
* 
* Redsys es titular de todos los derechos de propiedad intelectual e industrial
* del software.
* 
* Quedan expresamente prohibidas la reproducción, la distribución y la
* comunicación pública, incluida su modalidad de puesta a disposición con fines
* distintos a los descritos en las Condiciones de uso.
* 
* Redsys se reserva la posibilidad de ejercer las acciones legales que le
* correspondan para hacer valer sus derechos frente a cualquier infracción de
* los derechos de propiedad intelectual y/o industrial.
* 
* Redsys Servicios de Procesamiento, S.L., CIF B85955367
*/

include(dirname(__FILE__).'/../../config/config.inc.php');
include(dirname(__FILE__).'/../../header.php');
include(dirname(__FILE__).'/redsys.php');

/* SE DEBE INVOLUCRAR A LA CLASS PRINCIPAL LOS OBJETOS DEBEN PROVENIR DE ALLI
 */
$module = new Redsys();

if(!function_exists("escribirLog")) {
	require_once('apiRedsys/redsysLibrary.php');
}
if(!class_exists("RedsysAPI")) {
	require_once('apiRedsys/apiRedsysFinal.php');
}

//Tools::displayFileAsDeprecated();

/* NO VA 
$accesoDesde = "";
if (!empty($_POST)) {
	$accesoDesde = 'POST';
} else if (!empty($_GET)) {
	$accesoDesde = 'GET';
}
*/
/* NO VA PRESTASHOP DETERMINA SI EL METODO ES POST OR GET !!
if ($accesoDesde === 'POST' || $accesoDesde === 'GET') { 
  */
if (Tools::isSubmit('Ds_SignatureVersion') || Tools::isSubmit('Ds_MerchantParameters') || Tools::isSubmit('Ds_Signature')) {
	/*
	 * HAY QUE VALIDAR SEGUN CORRESPONDA O FILTRAR CON TOOLS */
	/* QUE SE ESPERA RECIBIR */
	$version     = Tools::getValue('Ds_SignatureVersion');
	/* QUE SE ESPERA RECIBIR */
	$datos    = Tools::getValue('Ds_MerchantParameters');
	/* QUE SE ESPERA RECIBIR */
	$firma_remota    = Tools::getValue('Ds_Signature');

	// Se crea Objeto
	$miObj = new RedsysAPI;
	
	/*
	 NO SE PUDE SIN ANTES VALIDAR
	 */
	$decodec = $miObj->decodeMerchantParameters($datos);

	/** Clave **/
	$kc = Configuration::get('REDSYS_CLAVE256');
	
	/** Se calcula la firma **/
	$firma_local = $miObj->createMerchantSignatureNotif($kc,$datos);
	
	/** Extraer datos de la notificación **/
	$total     = $miObj->getParameter('Ds_Amount');
	$pedido    = $miObj->getParameter('Ds_Order');
	$codigo    = $miObj->getParameter('Ds_MerchantCode');
	$moneda    = $miObj->getParameter('Ds_Currency');
	$respuesta = $miObj->getParameter('Ds_Response');
	$id_trans = $miObj->getParameter('Ds_AuthorisationCode');
	
	/** Código de comercio **/
	$codigoOrig = Configuration::get('REDSYS_CODIGO');
	
	/** Pedidos Cancelados **/
	$error_pago = Configuration::get('REDSYS_ERROR_PAGO');
	
	/** Log de Errores **/
	$logActivo = Configuration::get('REDSYS_LOG');
	$idLog = generateIdLog();
	$pedidoSecuencial = $pedido;
	$pedido = intval(substr($pedidoSecuencial, 0, 11));
	/** VALIDACIONES DE LIBRERÍA **/
	if ($firma_local === $firma_remota
		&& checkImporte($total)
		&& checkPedidoNum($pedido)
		&& checkFuc($codigo)
		&& checkMoneda($moneda)
		&& checkRespuesta($respuesta)) {
		  /* ??????? 
		   * LA LOGICA IMPLICA QUE DEBE SUCEDER SI YA A SUCEDIDO ?? SIENDO QUE GET PUT POST ??
		   */
		if ($accesoDesde === 'POST') {

			/** Creamos los objetos para confirmar el pedido **/
			//$context = Context::getContext();
			$cart = new Cart($pedido);
			$redsys = new redsys();

			/** Validamos Objeto carrito **/
			//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');
			//}
			/** Validamos Objeto cliente **/
			$customer = new Customer((int)$cart->id_customer);
			
			/** Donet **/
			Context::getContext()->customer = $customer;
			$address = new Address((int)$cart->id_address_invoice);
			Context::getContext()->country = new Country((int)$address->id_country);
			Context::getContext()->customer = new Customer((int)$cart->id_customer);
			Context::getContext()->language = new Language((int)$cart->id_lang);
			Context::getContext()->currency = new Currency((int)$cart->id_currency);			
			
			//if (!Validate::isLoadedObject($customer)) {
			//	Tools::redirect('index.php?controller=order&step=1');
			//}
			
			/** VALIDACIONES DE DATOS y LIBRERÍA **/
			//Total
			/* TENER UN ARCHIVO CON PERMISO ESCRITURAS EN UN MODULO QUE PUEDE 
			 * RECIBIR PARAMETROS POST GET SIN VALIDAR NO ES CONVENIENTE
			 * LOS TEXTOS DEBEN PASAR POR EL TRADUCTOR DE ESTE MODO
			 * Y NO SE usar comillas dobles!
			 */
			$totalOrig = $total;
			/*
			 * escribirLog($idLog." -- "."totalPost: " . $totalOrig,$logActivo);
			escribirLog($idLog." -- "."Total (" . $pedido . "): ".$totalOrig,$logActivo);
			*/
			escribirLog($idLog.'--'.$module->l('totalPost: ').$totalOrig, $logActivo);
			escribirLog($idLog." -- ".$module->l('Total #').$pedido.':'.$totalOrig, $logActivo);

			// ID Moneda interno
			$currencyOrig = new Currency($cart->id_currency);
			// ISO Moneda
			$monedaOrig = $currencyOrig->iso_code_num;
			// DsResponse
			$respuesta = (int)$respuesta;

			if ($monedaOrig == $moneda && $totalOrig == $total && (int)$codigoOrig == (int)$codigo && $respuesta < 101 && checkAutCode($id_trans)) {
				/** Compra válida **/
				$mailvars['transaction_id'] = (int)$id_trans;
				$redsys->validateOrder($pedido, _PS_OS_PAYMENT_, $totalOrig/100, $redsys->displayName, null, $mailvars, (int)$cart->id_currency, false, $customer->secure_key);
				escribirLog($idLog." -- "."El pedido con ID de carrito " . $pedido . " es válido y se ha registrado correctamente.",$logActivo);
			} else {
				if (!($monedaOrig == $moneda)) {
					escribirLog($idLog." -- "."La moneda no coincide. ($monedaOrig : $moneda)",$logActivo);
				}
				if (!($totalOrig == $total)) {
					escribirLog($idLog." -- "."El importe total no coincide. ($totalOrig : $total)",$logActivo);
				}
				if (!((int)$codigoOrig == (int)$codigo)) {
					escribirLog($idLog." -- "."El código de comercio no coincide. ($codigoOrig : $codigo)",$logActivo);
				}
				if (!checkAutCode($id_trans)){
					escribirLog($idLog." -- "."Ds_AuthorisationCode inválido. ($id_trans)",$logActivo);
				}
				if ($error_pago=="no"){
					/** se anota el pedido como no pagado **/
					$redsys->validateOrder($pedido, _PS_OS_ERROR_, 0, $redsys->displayName, 'errores:'.$respuesta);
				}
				escribirLog($idLog." -- "."El pedido con ID de carrito " . $pedido . " es inválido.",$logActivo);
			}
		} 
		/* ??????? QUE ES ESTO! */
		else if ($accesoDesde === 'GET') {
			$respuesta = (int)$respuesta;
			if ($respuesta < 101) {
				/* QUE JODER HOMBRE QUE SE LO QUE SEA TE LLEVA AL MISMO SITIO ?????
				 */
				Tools::redirect('index.php?controller=order&step=1');
			} else {
				Tools::redirect('index.php?controller=order&step=1');
			}
		}
	} else {
	/* NOOOO ES NEECESARIO MENOS EN ESTE PUNTO, LA VALIDACION DEBE SER ANTES DE CUALQUIER ACCION!!
	 */	
	  if ($accesoDesde === 'POST') {
			if (!($firma_local === $firma_remota)) {
				escribirLog($idLog." -- "."La firma no coincide.",$logActivo);
			}
			if (!checkImporte($total)){
				escribirLog($idLog." -- "."Ds_Amount inválido.",$logActivo);
			}
			if (!checkPedidoNum($pedido)){
				escribirLog($idLog." -- "."Ds_Order inválido.",$logActivo);
			}
			if (!checkFuc($codigo)){
				escribirLog($idLog." -- "."Ds_MerchantCode inválido.",$logActivo);
			}
			if (!checkMoneda($moneda)){
				escribirLog($idLog." -- "."Ds_Currency inválido.",$logActivo);
			}
			if (!checkRespuesta($respuesta)){
				escribirLog($idLog." -- "."Ds_Response inválido.",$logActivo);
			}
			if ($error_pago=="no"){
				/** se anota el pedido como no pagado **/
				$redsys->validateOrder($pedido, _PS_OS_ERROR_, 0, $redsys->displayName, 'errores:'.$respuesta);
			}
			escribirLog($idLog." -- "."Notificación: El pedido con ID de carrito " . $pedido . " es inválido.",$logActivo);
		} else if ($accesoDesde === 'GET') {
			Tools::redirect('index.php?controller=order&step=1');
		}
	}
}

SI ALGUIEN TIENE DOCUMENTACION OFICIAL O LINK OFICIALES donde obtener documentación puedo hacerles un modulo funcional el dia miercoles.

 

suban documentación. :rolleyes:

 

saludos

:)

  • Like 1
Link to comment
Share on other sites

Que tipo de documentación necesitas? aquí tienes las APIs y el módulo oficial para varias plataformas: 

 

http://www.redsys.es/#descargas

 

Hola que tal, lo que sucede es que no soy cliente y no tengo numero de comercio para descargar los manuales en:

 

https://www.redsys.es/manuales/index.jsp

 

En cuanto al modulo Prestashop de la descarga ya lo habia bajado, pero no sirve ya que es una perdida de tiempo andar adivinando lo que quería hacer el que lo desarrollo, es mucho mas rápido si tengo el manual.

A primera vista ni las API están dentro de los parámetros stares PSR-2 de desarrollo: 

 

http://www.php-fig.org/psr/psr-2/

 

Yo no gasto tiempo analizando archivos que no están programados dentro de un standar de programación, por que eso indica que el que lo hizo no tenia ni la mas  pálida idea de programación.  Pero se puede corregir si tengo el manual oficial para integración e-comerce.

 

LO QUE NECESITO ES ESO UN MANUAL, Y QUE ALGÚN CLIENTE SE PONGA EN CONTACTO CON EL SOPORTE TÉCNICO Y REMITA LA URL DE ESTE POST :

 

https://www.prestashop.com/forums/topic/582916-pasarela-de-pago-redsys-prestashop-17/page-8?do=findComment&comment=2609975

 

de este modo algún ingeniero o analista puede enterarse que se va a realizar un modulo FREE OPEN SOURCE.  que podrán distribuir libremente.

 

El modulo actual para Prestashop, no es seguro y el desarrollo no respecta los satandares de seguridad de Prestashop. Por ejemplo :

-no valida variables de retorno

-no da respuesta a nivel servidor

- hay archivos que deben ser propietario servidor (Owner permissions) como "config_es.xml" este archivo no debe existir en el modulo, Prestashop lo creará automáticamente.

 

En fin, hay demasiados problemas a solucionar, pero no es mi intención menoscabar el trabajo ajeno, si no ayudar.

Lo que no entiendo es ¿por qué Redsys no contrato un ingeniero? :(

 

Yo estoy con bastante trabajo, pero si consiguen los manuales, puedo hacer el modulo en cuanto me haga un tiempito, o el dia sabado.

 

saludos ^_^

Edited by tamu secreto (see edit history)
Link to comment
Share on other sites

En ese links que dices, lo que hay son manuales para los TPV físicos, para las tiendas físicas, no tiene nada que ver con la pasarela de pago online...

 

Estimado lea atentamente lo que he escrito, le repito necesito los manuales de integración e-commerce oficiales y actuales, lo que yo poseo son antiguos y la empresa se fusiono hace años y no sirven los que poseo.

De todos modos ya he contactado al departamento de ingeniería de la empresa, dudo que me envien los manuales sin ser cliente.

Si usted es cliente contacte al soporte técnico y pida los manuales de integración e-commerce formato PDF de la actual version del sys.

Link to comment
Share on other sites

Tengo el mismo problema que algún usuario por aquí.

El pedido se genera en redsys y se paga correctamente, pero no se genera en prestashop.

¿Hay alguna solución a esto que se me hay escapado?

Mil gracias

 

Primero aparentemente el archivo validation.php esta hacien de IPN, esto significa que ese archivo recibe la notificación de pago por background, esto quiere decir que la información no es visible para el usuario. En tal caso el archivo esta gestionando mal las llamadas de archivos:

include(dirname(__FILE__).'/../../config/config.inc.php');
include(dirname(__FILE__).'/../../header.php');
include(dirname(__FILE__).'/redsys.php')


la llamada header.php se debe hacer cuando se necesita el set media de prestashop, o sea los archivos css, js, etc.. para mostrar algun archivo tpl. En este caso si no se mostrar nada al cliente no es necesario, y puede que de error.

Pruebe cambiando eso en el archivo validation.php por esto:

require_once(dirname(__FILE__).'/../../config/config.inc.php');
require_once(dirname(__FILE__).'/../../init.php');
include_once(dirname(__FILE__).'/redsys.php');

luego en la linea 106, 120 hace una redireccion "Tools::redirect('index.php?controller=order&step=1');"   si el archivo es un IPN no debe hacer redirecciones.

 

en la practica hay una confucion con la url de notificacion y la url "DS_MERCHANT_URLOK"  y "DS_MERCHANT_URLKO"

 

Ds_Merchant_MerchantURL --> ES LA URL IPN NOTIFICACION DE PAGO INSTANTANEO (oculta al cliente).

 

Ds_Merchant_UrlOK --> es mayormente opcional en las TPV pero es recomendable usarla, es la url donde se debe regresar al cliente despues de hacer el pago.

 

Ds_Merchant_UrlKO --> es la url donde se regresa al cliente si el pago no se hizo correctamente o si surgio algun problema.

 

lo mas importante es la Ds_Merchant_MerchantURL IPN pues antes de que el cliente regrese ya prestashop va tener el resultado de la operación.

 

Lo que sucede en el archivo validation.php del modulo en cuestion es que si esta funcionando como IPN esta redireccionando y haciendo otras macanas que no deberia hacer.

 

 

por eso decía que hay varios problemas a solucionar. La firma RedSys se carga la autoría del modulo e incluso adjuntan términos y condiciones en formato pdf, eso también es peligroso ya que teniendo las vulnerabilidades del modulo, se puede hacer un rastreo al pdf  moules/redsys/*.pdf  y obtener una lista completa de las tiendas que lo tienen instalado y Si se pasa por consola en kali se obtiene la madre de las chingadas, no me voy ampliar mucho en este tema por que no quiero dar ideas a maliciosos.

 

Lo que tiene que hacer es dar aviso al soporte técnico.

 

saludos

Link to comment
Share on other sites

Primero aparentemente el archivo validation.php esta hacien de IPN, esto significa que ese archivo recibe la notificación de pago por background, esto quiere decir que la información no es visible para el usuario. En tal caso el archivo esta gestionando mal las llamadas de archivos:

include(dirname(__FILE__).'/../../config/config.inc.php');
include(dirname(__FILE__).'/../../header.php');
include(dirname(__FILE__).'/redsys.php')


la llamada header.php se debe hacer cuando se necesita el set media de prestashop, o sea los archivos css, js, etc.. para mostrar algun archivo tpl. En este caso si no se mostrar nada al cliente no es necesario, y puede que de error.

Pruebe cambiando eso en el archivo validation.php por esto:

require_once(dirname(__FILE__).'/../../config/config.inc.php');
require_once(dirname(__FILE__).'/../../init.php');
include_once(dirname(__FILE__).'/redsys.php');

luego en la linea 106, 120 hace una redireccion "Tools::redirect('index.php?controller=order&step=1');"   si el archivo es un IPN no debe hacer redirecciones.

 

en la practica hay una confucion con la url de notificacion y la url "DS_MERCHANT_URLOK"  y "DS_MERCHANT_URLKO"

 

Ds_Merchant_MerchantURL --> ES LA URL IPN NOTIFICACION DE PAGO INSTANTANEO (oculta al cliente).

 

Ds_Merchant_UrlOK --> es mayormente opcional en las TPV pero es recomendable usarla, es la url donde se debe regresar al cliente despues de hacer el pago.

 

Ds_Merchant_UrlKO --> es la url donde se regresa al cliente si el pago no se hizo correctamente o si surgio algun problema.

 

lo mas importante es la Ds_Merchant_MerchantURL IPN pues antes de que el cliente regrese ya prestashop va tener el resultado de la operación.

 

Lo que sucede en el archivo validation.php del modulo en cuestion es que si esta funcionando como IPN esta redireccionando y haciendo otras macanas que no deberia hacer.

 

 

por eso decía que hay varios problemas a solucionar. La firma RedSys se carga la autoría del modulo e incluso adjuntan términos y condiciones en formato pdf, eso también es peligroso ya que teniendo las vulnerabilidades del modulo, se puede hacer un rastreo al pdf  moules/redsys/*.pdf  y obtener una lista completa de las tiendas que lo tienen instalado y Si se pasa por consola en kali se obtiene la madre de las chingadas, no me voy ampliar mucho en este tema por que no quiero dar ideas a maliciosos.

 

Lo que tiene que hacer es dar aviso al soporte técnico.

 

saludos

Hice el cambio que propones, y ahora funciona perfectamente, gracias!

Edited by mechamo (see edit history)
Link to comment
Share on other sites

Hice el cambio que propones, pero sigue sin generarse el pedido, el cobro se realiza con éxito (y se supone que la plataforma envía a la web la confirmación), pero prestashop no registrar el pedido, lo deja como carrito abandonado.

 

no va funcionar haciendo solo ese cambio :wacko:  es que el modulo esta mal desarrollado, llama a funciones que no son Objetos y en el caso el ordenes y carrito hay una chingada en esto:

En el archivo redssy.php linea 309 a 321 :

		// El num. de pedido -> id_Carrito + el tiempo SS
		$orderId = $params['cart']->id;
		if(isset($_COOKIE["P".$orderId])) {
			$sec_pedido = $_COOKIE["P".$orderId];
		} else {
			$sec_pedido = -1;
		}
		$logActivo = "si";
		escribirLog(" - COOKIE: ".$_COOKIE["P".$orderId]."($orderId) - secPedido: $sec_pedido", $logActivo);
		if ($sec_pedido < 9) {
			setcookie("P".$orderId, ++$sec_pedido, time() + 86400); // 24 horas
		}
		$numpedido = str_pad($orderId.$sec_pedido, 12, "0", STR_PAD_LEFT);

y en el archivo validation.php

	$pedido = intval(substr($pedidoSecuencial, 0, 11));
	/** VALIDACIONES DE LIBRERÍA **/
	if ($firma_local === $firma_remota
		&& checkImporte($total)
		&& checkPedidoNum($pedido)
		&& checkFuc($codigo)
		&& checkMoneda($moneda)
		&& checkRespuesta($respuesta)) {
		if ($accesoDesde === 'POST') {

			/** Creamos los objetos para confirmar el pedido **/
			$context = Context::getContext();
			$cart = new Cart($pedido);
			$redsys = new redsys(); ...........................

lo que hace el tio es adicionar al id carrito de prestashop un valor extra y completa hasta llegar a 12 con "0" del lado izquiedo, pero le agrega la la hora y no que cosa quiere hacer, entonce el id carrrito quedaria algo asi:

"000000002342" (es un ejemplo al azar)  luego en el archivo validation.php corta la cadena a 11 $pedido = intval(substr($pedidoSecuencial, 0, 11));

quedando $pedido = "2" luego pasa a prestashop como id cart  "2" :unsure: :unsure:

 

hacer que funcione ma o menos seria aplicar esto:

 

buscar en la linea 321 del archvio redsys.php esto :

$numpedido = str_pad($orderId.$sec_pedido, 12, "0", STR_PAD_LEFT);

cambiar eso por esto:

$numpedido = str_pad($orderId, 12, "0", STR_PAD_LEFT);

luego buscar en el archivo validation.php linea 81 esto :

$pedido = intval(substr($pedidoSecuencial, 0, 11));

cambiar eso por esto:

$pedido = (int)$miObj->getParameter('Ds_Order');

puede que eso lo haga funcionar pero lo dudo por que hay que modificar muchos archivos.

Otra cosa que hay que hacer en ese modulo es quitar todas las etiquetas de cierres "?>" de todos los archivos php. eso da errores :unsure:

 

saludos

Link to comment
Share on other sites

no va funcionar haciendo solo ese cambio :wacko:  es que el modulo esta mal desarrollado, llama a funciones que no son Objetos y en el caso el ordenes y carrito hay una chingada en esto:

En el archivo redssy.php linea 309 a 321 :

		// El num. de pedido -> id_Carrito + el tiempo SS
		$orderId = $params['cart']->id;
		if(isset($_COOKIE["P".$orderId])) {
			$sec_pedido = $_COOKIE["P".$orderId];
		} else {
			$sec_pedido = -1;
		}
		$logActivo = "si";
		escribirLog(" - COOKIE: ".$_COOKIE["P".$orderId]."($orderId) - secPedido: $sec_pedido", $logActivo);
		if ($sec_pedido < 9) {
			setcookie("P".$orderId, ++$sec_pedido, time() + 86400); // 24 horas
		}
		$numpedido = str_pad($orderId.$sec_pedido, 12, "0", STR_PAD_LEFT);

y en el archivo validation.php

	$pedido = intval(substr($pedidoSecuencial, 0, 11));
	/** VALIDACIONES DE LIBRERÍA **/
	if ($firma_local === $firma_remota
		&& checkImporte($total)
		&& checkPedidoNum($pedido)
		&& checkFuc($codigo)
		&& checkMoneda($moneda)
		&& checkRespuesta($respuesta)) {
		if ($accesoDesde === 'POST') {

			/** Creamos los objetos para confirmar el pedido **/
			$context = Context::getContext();
			$cart = new Cart($pedido);
			$redsys = new redsys(); ...........................

lo que hace el tio es adicionar al id carrito de prestashop un valor extra y completa hasta llegar a 12 con "0" del lado izquiedo, pero le agrega la la hora y no que cosa quiere hacer, entonce el id carrrito quedaria algo asi:

"000000002342" (es un ejemplo al azar)  luego en el archivo validation.php corta la cadena a 11 $pedido = intval(substr($pedidoSecuencial, 0, 11));

quedando $pedido = "2" luego pasa a prestashop como id cart  "2" :unsure: :unsure:

 

hacer que funcione ma o menos seria aplicar esto:

 

buscar en la linea 321 del archvio redsys.php esto :

$numpedido = str_pad($orderId.$sec_pedido, 12, "0", STR_PAD_LEFT);

cambiar eso por esto:

$numpedido = str_pad($orderId, 12, "0", STR_PAD_LEFT);

luego buscar en el archivo validation.php linea 81 esto :

$pedido = intval(substr($pedidoSecuencial, 0, 11));

cambiar eso por esto:

$pedido = (int)$miObj->getParameter('Ds_Order');

puede que eso lo haga funcionar pero lo dudo por que hay que modificar muchos archivos.

Otra cosa que hay que hacer en ese modulo es quitar todas las etiquetas de cierres "?>" de todos los archivos php. eso da errores :unsure:

 

saludos

Hola, pues si funcionó, ayer no lo probé bien, y pensé que no, pero he vuelto a probar hoy y si funciona perfectamente!

Link to comment
Share on other sites

Hola, pues si funcionó, ayer no lo probé bien, y pensé que no, pero he vuelto a probar hoy y si funciona perfectamente!

 

Claro lo que sucede es que cuando no funciona es por que se esta repitiendo la ordene en RedSys, por lo que deduzco que se ha empleado el time() y concatenado al id carrito para evitar repetir la orden. Con lo que le he dicho le va funcionar siempre y cuando no tenga un error en RedSys, si obtiene un error tendra que cerrar la sesion en su tienda cerrar el navegador y volver crear otra compra demo, para cargar un nuevo id cart.

Una forma mas sencilla de evitarse todos los dolores de cabeza es enviar un pin de orden a RedSys, por ejemplo se puede utilizar el tools de prestashop para crear un key, almacenar ese key en una tabla de DB y al tener la respuesta del tpv buscar el id cart relacionado a ese key.

seria algo asi:

Tools::passwdGen(12, NUMERIC);

con eso creamos una orden con 12 caracteres, que aparentemente es el numero de caracteres que espera el TPV,

 

el resto es crear un tabla base datos para guardar el key y id_cart relacionado, luego hay que hacer algunos cambios en el validation.php para buscar el id_cart

 

medio complicado explicarlo pero sencillo de hacer.

 

saludos

Link to comment
Share on other sites

Por mucho que lo intento, en real, hablando con redsys, el pago es todo correcto pero me lleva al historial de pedidos

 

pos que joder hombre tanto cuesta solicitar los manuales de integración, pida los manuales de integracion al soporte tecnico y post aqui que les hago un modulo funcional.

No he tenido respuesta del TPV, por lo visto estan muy soberbios con la distribución de una porqueria que puede comprometer la integridad de las tiendas Prestashop.

Voy darles un cosejo QUITEN EL MODULO, ELIMINEN EL MODULO, CONTACTEN AL SOPORTE TECNICO,

EL MODULO NO ES FUNCIONAL Y NO ES SEGURO, PUEDEN TENER LA MADRE DE LAS CHINGADAS EN SUS TIENDAS.

SALUDOS

Link to comment
Share on other sites

Yo finalmente he comprado un módulo de pago, por 30€ no merece la pena dar más vueltas con el gratuito si no lo arreglan.

De todas formas a mi me dijeron que había problemas con otro módulo de urls amigables, y de permisos de carpetas, quizás por ahí encontréis el error de este módulo a la hora de finalizar la compra.

Link to comment
Share on other sites

Cuando lo instalé me pasaba lo mismo que con el gratuito, no pasaba el pedido a presashop.

Contacté con el soporte y lo revisaron, y me dijeron que había un problema con los permisos del módulo en el servidor y los corrigieron, sin embargo, seguía sin pasar el pedido a prestashop, por lo que revisaron y vieron que había un problema con un módulo de urls amigables que tengo instalado.

 

Éste módulo probablemetne no permitía redirigir a la página de confirmación de compra, por lo que no se generaba el pedido, por lo que hicieron un cambio en el .htacess para corregirlo y ahora funciona sin problemas.

 

He hecho varias pruebas y ha entrado un pedido real sin problemas, todo ha funcionado correctamente, se ha generado el pedido y me ha redirigido a la página de éxito del pedido. Por lo que ahora funciona perfectamente, de momento.

Edited by garigola (see edit history)
Link to comment
Share on other sites

Hola!

 

Mirad lo que he creado... he programado un plugin de Redsys para Prestashop 1.7

 

A ver qué os parece

 

https://modulos-prestashop.com/descarga-modulo-redsys-prestashop-1-7

 

Gracias!

 

que os parece?  dices que hicieron un analisis?

Mi humilde opinion, primero parece un clon del que reparte redsys, y como copia se esta copiando los mismos errores, la arquitectura errónea y las mismas vulnerabilidades.

Como principio le paso el analisis via consola de un solo archivo, los demas poseen problemas mas serios:


FILE: redsys17.php
----------------------------------------------------------------------
FOUND 715 ERRORS AND 38 WARNINGS AFFECTING 601 LINES
----------------------------------------------------------------------
   1 | WARNING | [ ] A file should declare new symbols (classes,
     |         |     functions, constants, etc.) and cause no other
     |         |     side effects, or it should execute logic with
     |         |     side effects, but should not do both. The first
     |         |     symbol is defined on line 11 and the first side
     |         |     effect is on line 5.
   8 | ERROR   | [x] Inline control structures are not allowed
   9 | ERROR   | [x] Spaces must be used to indent lines; tabs are
     |         |     not allowed
  11 | ERROR   | [ ] Each class must be in a namespace of at least
     |         |     one level (a top-level vendor name)
  13 | ERROR   | [x] Spaces must be used to indent lines; tabs are
     |         |     not allowed
  13 | ERROR   | [x] Scope keyword "private" must be followed by a
     |         |     single space
  13 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  14 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  15 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  17 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  18 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  20 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  22 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  23 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  24 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  25 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  26 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  27 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  29 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  30 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  32 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  33 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  34 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  35 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  36 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  37 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  38 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  39 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  40 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  41 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  42 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  43 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  44 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  45 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  46 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  48 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  49 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  49 | ERROR   | [x] Expected 1 space after closing parenthesis;
     |         |     found 9
  50 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  51 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  52 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  53 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  54 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  55 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  56 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  57 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  58 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  59 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  60 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  61 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  62 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  63 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  65 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  65 | ERROR   | [x] Inline control structures are not allowed
  66 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  67 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  67 | ERROR   | [x] Inline control structures are not allowed
  68 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  69 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  69 | ERROR   | [x] Inline control structures are not allowed
  70 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  71 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  71 | ERROR   | [x] Inline control structures are not allowed
  72 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  73 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  73 | ERROR   | [x] Inline control structures are not allowed
  74 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  75 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  75 | ERROR   | [x] Inline control structures are not allowed
  76 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  77 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  77 | ERROR   | [x] Inline control structures are not allowed
  78 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  79 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  79 | ERROR   | [x] Inline control structures are not allowed
  80 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  81 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  81 | ERROR   | [x] Inline control structures are not allowed
  82 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  84 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  84 | ERROR   | [x] Inline control structures are not allowed
  85 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  87 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  89 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  90 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  91 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  92 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  93 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  94 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  96 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  98 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  99 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
  99 | ERROR   | [x] Inline control structures are not allowed
 100 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 101 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 102 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 103 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 104 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 105 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 106 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 107 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 108 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 110 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 110 | WARNING | [ ] Line exceeds 120 characters; contains 122
     |         |     characters
 111 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 113 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 114 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 115 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 116 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 117 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 118 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 119 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 120 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 121 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 122 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 123 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 124 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 125 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 126 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 127 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 129 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 131 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 132 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 133 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 134 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 135 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 136 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 137 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 138 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 139 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 140 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 141 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 142 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 143 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 144 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 145 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 146 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 148 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 150 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 151 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 152 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 154 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 156 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 157 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 158 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 159 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 160 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 161 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 162 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 163 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 164 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 165 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 166 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 167 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 168 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 169 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 171 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 171 | WARNING | [ ] Method name "_postValidation" should not be
     |         |     prefixed with an underscore to indicate
     |         |     visibility
 172 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 173 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 174 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 174 | ERROR   | [x] Expected 1 space after closing parenthesis;
     |         |     found 9
 175 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 176 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 176 | ERROR   | [x] Expected 0 spaces after opening bracket; newline
     |         |     found
 177 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 178 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 179 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 180 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 180 | ERROR   | [x] Opening parenthesis of a multi-line function
     |         |     call must be the last content on the line
 180 | WARNING | [ ] Line exceeds 120 characters; contains 190
     |         |     characters
 181 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 182 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 182 | ERROR   | [x] Multi-line function call not indented correctly;
     |         |     expected 16 spaces but found 20
 182 | ERROR   | [x] Closing parenthesis of a multi-line function
     |         |     call must be on a line by itself
 183 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 184 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 184 | ERROR   | [x] Expected 0 spaces after opening bracket; newline
     |         |     found
 185 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 186 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 187 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 188 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 188 | ERROR   | [x] Opening parenthesis of a multi-line function
     |         |     call must be the last content on the line
 188 | WARNING | [ ] Line exceeds 120 characters; contains 173
     |         |     characters
 189 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 190 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 190 | ERROR   | [x] Multi-line function call not indented correctly;
     |         |     expected 16 spaces but found 20
 190 | ERROR   | [x] Closing parenthesis of a multi-line function
     |         |     call must be on a line by itself
 191 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 192 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 192 | ERROR   | [x] Expected 0 spaces after opening bracket; newline
     |         |     found
 193 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 194 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 195 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 196 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 196 | ERROR   | [x] Opening parenthesis of a multi-line function
     |         |     call must be the last content on the line
 196 | WARNING | [ ] Line exceeds 120 characters; contains 185
     |         |     characters
 197 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 198 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 198 | ERROR   | [x] Multi-line function call not indented correctly;
     |         |     expected 16 spaces but found 20
 198 | ERROR   | [x] Closing parenthesis of a multi-line function
     |         |     call must be on a line by itself
 199 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 200 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 200 | ERROR   | [x] Expected 0 spaces after opening bracket; newline
     |         |     found
 201 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 202 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 203 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 204 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 204 | ERROR   | [x] Opening parenthesis of a multi-line function
     |         |     call must be the last content on the line
 204 | WARNING | [ ] Line exceeds 120 characters; contains 167
     |         |     characters
 205 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 206 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 206 | ERROR   | [x] Multi-line function call not indented correctly;
     |         |     expected 16 spaces but found 20
 206 | ERROR   | [x] Closing parenthesis of a multi-line function
     |         |     call must be on a line by itself
 207 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 208 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 208 | ERROR   | [x] Expected 0 spaces after opening bracket; newline
     |         |     found
 209 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 210 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 211 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 212 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 212 | ERROR   | [x] Opening parenthesis of a multi-line function
     |         |     call must be the last content on the line
 212 | WARNING | [ ] Line exceeds 120 characters; contains 136
     |         |     characters
 213 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 214 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 214 | ERROR   | [x] Multi-line function call not indented correctly;
     |         |     expected 16 spaces but found 20
 214 | ERROR   | [x] Closing parenthesis of a multi-line function
     |         |     call must be on a line by itself
 215 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 216 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 217 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 219 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 219 | WARNING | [ ] Method name "_postProcess" should not be
     |         |     prefixed with an underscore to indicate
     |         |     visibility
 220 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 221 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 222 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 222 | ERROR   | [x] Expected 1 space after closing parenthesis;
     |         |     found 9
 223 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 224 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 225 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 226 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 227 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 228 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 229 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 230 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 231 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 232 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 233 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 236 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 237 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 238 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 239 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 240 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 242 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 243 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 243 | WARNING | [ ] Line exceeds 120 characters; contains 157
     |         |     characters
 244 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 245 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 246 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 247 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 248 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 250 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 251 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 252 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 253 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 254 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 254 | WARNING | [ ] Line exceeds 120 characters; contains 122
     |         |     characters
 255 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 257 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 257 | WARNING | [ ] Method name "_displayRedsys" should not be
     |         |     prefixed with an underscore to indicate
     |         |     visibility
 258 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 259 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 260 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 261 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 261 | WARNING | [ ] Line exceeds 120 characters; contains 310
     |         |     characters
 262 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 262 | WARNING | [ ] Line exceeds 120 characters; contains 121
     |         |     characters
 263 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 263 | WARNING | [ ] Line exceeds 120 characters; contains 149
     |         |     characters
 264 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 266 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 266 | WARNING | [ ] Method name "_displayForm" should not be
     |         |     prefixed with an underscore to indicate
     |         |     visibility
 267 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 269 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 270 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 271 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 272 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 273 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 274 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 275 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 276 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 277 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 278 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 279 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 280 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 281 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 281 | ERROR   | [x] Space before opening parenthesis of function
     |         |     call prohibited
 281 | ERROR   | [x] Space after opening parenthesis of function call
     |         |     prohibited
 281 | ERROR   | [x] Expected 0 spaces before closing bracket; 1
     |         |     found
 282 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 282 | WARNING | [ ] Line exceeds 120 characters; contains 161
     |         |     characters
 283 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 284 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 285 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 286 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 287 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 288 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 289 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 290 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 291 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 292 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 292 | WARNING | [ ] Line exceeds 120 characters; contains 121
     |         |     characters
 293 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 293 | WARNING | [ ] Line exceeds 120 characters; contains 121
     |         |     characters
 294 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 294 | WARNING | [ ] Line exceeds 120 characters; contains 121
     |         |     characters
 295 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 296 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 297 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 298 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 299 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 300 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 301 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 302 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 303 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 304 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 305 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 306 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 306 | WARNING | [ ] Line exceeds 120 characters; contains 129
     |         |     characters
 307 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 308 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 309 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 310 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 311 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 312 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 313 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 313 | WARNING | [ ] Line exceeds 120 characters; contains 134
     |         |     characters
 314 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 315 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 316 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 317 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 318 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 319 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 320 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 321 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 322 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 323 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 324 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 324 | WARNING | [ ] Line exceeds 120 characters; contains 123
     |         |     characters
 325 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 325 | WARNING | [ ] Line exceeds 120 characters; contains 121
     |         |     characters
 326 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 327 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 328 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 329 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 330 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 331 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 332 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 333 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 334 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 335 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 336 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 336 | WARNING | [ ] Line exceeds 120 characters; contains 151
     |         |     characters
 337 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 338 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 339 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 340 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 341 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 342 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 343 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 343 | WARNING | [ ] Line exceeds 120 characters; contains 163
     |         |     characters
 344 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 345 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 346 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 347 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 348 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 349 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 350 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 350 | WARNING | [ ] Line exceeds 120 characters; contains 128
     |         |     characters
 351 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 352 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 353 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 354 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 355 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 356 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 357 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 358 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 359 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 360 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 361 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 362 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 363 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 364 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 365 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 366 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 367 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 368 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 369 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 370 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 371 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 372 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 373 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 374 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 375 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 376 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 377 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 378 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 379 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 380 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 381 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 382 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 383 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 384 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 385 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 386 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 387 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 389 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 390 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 391 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 392 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 393 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 394 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 396 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 397 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 398 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 399 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 400 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 401 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 401 | WARNING | [ ] Line exceeds 120 characters; contains 156
     |         |     characters
 403 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 404 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 405 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 406 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 407 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 408 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 409 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 410 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 411 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 412 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 414 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 416 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 418 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 419 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 420 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 421 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 422 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 423 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 424 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 425 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 426 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 427 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 428 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 429 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 430 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 431 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 432 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 433 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 435 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 435 | WARNING | [ ] Method name "_displayErrorForm" should not be
     |         |     prefixed with an underscore to indicate
     |         |     visibility
 436 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 437 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 437 | ERROR   | [x] Expected 1 space after IF keyword; 0 found
 437 | ERROR   | [x] Expected 0 spaces after opening bracket; 1 found
 437 | ERROR   | [x] Expected 0 spaces before closing bracket; 1
     |         |     found
 438 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 442 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 442 | ERROR   | [x] Space found after opening bracket of FOREACH
     |         |     loop
 442 | ERROR   | [x] Expected 0 spaces after opening bracket; 1 found
 443 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 447 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 448 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 451 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 452 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 454 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 455 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 456 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 456 | ERROR   | [x] Expected 1 space after closing parenthesis;
     |         |     found 9
 457 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 458 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 459 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 459 | ERROR   | [x] Inline control structures are not allowed
 460 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 461 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 461 | ERROR   | [x] Expected 1 space after ELSE keyword; newline
     |         |     found
 461 | ERROR   | [x] Inline control structures are not allowed
 462 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 463 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 463 | ERROR   | [x] Expected 1 space after closing brace; newline
     |         |     found
 464 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 464 | ERROR   | [x] Expected 1 space after ELSE keyword; newline
     |         |     found
 464 | ERROR   | [x] Inline control structures are not allowed
 465 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 467 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 468 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 469 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 470 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 471 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 472 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 474 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 474 | WARNING | [ ] Method name "_displayHelpRedsys" should not be
     |         |     prefixed with an underscore to indicate
     |         |     visibility
 475 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 476 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 477 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 478 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 478 | WARNING | [ ] Line exceeds 120 characters; contains 131
     |         |     characters
 479 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 481 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 482 | WARNING | [ ] Line exceeds 120 characters; contains 207
     |         |     characters
 483 | WARNING | [ ] Line exceeds 120 characters; contains 179
     |         |     characters
 484 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 484 | WARNING | [ ] Line exceeds 120 characters; contains 303
     |         |     characters
 485 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 486 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 487 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 488 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 490 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 491 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 492 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 492 | ERROR   | [x] Inline control structures are not allowed
 492 | ERROR   | [x] Expected 0 spaces after opening bracket; 1 found
 492 | ERROR   | [x] Space after opening parenthesis of function call
     |         |     prohibited
 492 | ERROR   | [x] Expected 0 spaces before closing bracket; 1
     |         |     found
 493 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 495 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 496 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 498 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 498 | ERROR   | [x] Inline control structures are not allowed
 499 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 501 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 501 | ERROR   | [x] Inline control structures are not allowed
 502 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 504 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 505 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 506 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 508 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 509 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 509 | ERROR   | [x] Expected 1 space after IF keyword; 0 found
 510 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 511 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 512 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 513 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 515 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 516 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 516 | WARNING | [ ] Line exceeds 120 characters; contains 126
     |         |     characters
 517 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 518 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 519 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 520 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 522 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 523 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 524 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 525 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 526 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 527 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 528 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 528 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 528 | ERROR   | [x] Whitespace found at end of line
 529 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 530 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 531 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 532 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 533 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 534 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 536 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 537 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 547 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 548 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 549 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 550 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 551 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 552 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 552 | ERROR   | [x] Inline control structures are not allowed
 553 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 553 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 553 | ERROR   | [x] Whitespace found at end of line
 554 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 554 | ERROR   | [x] No space found after comma in function call
 554 | ERROR   | [x] No space found after comma in function call
 556 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 557 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 558 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 558 | ERROR   | [x] Expected 1 space after closing parenthesis;
     |         |     found 9
 559 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 560 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 562 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 562 | ERROR   | [x] Expected 1 space after closing parenthesis;
     |         |     found 13
 563 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 564 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 565 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 565 | ERROR   | [x] Line indented incorrectly; expected at least 20
     |         |     spaces, found 16
 566 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 566 | ERROR   | [x] Terminating statement must be indented to the
     |         |     same level as the CASE body
 567 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 568 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 568 | ERROR   | [x] Line indented incorrectly; expected at least 20
     |         |     spaces, found 16
 569 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 569 | ERROR   | [x] Terminating statement must be indented to the
     |         |     same level as the CASE body
 570 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 571 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 571 | ERROR   | [x] Line indented incorrectly; expected at least 20
     |         |     spaces, found 16
 572 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 572 | ERROR   | [x] Terminating statement must be indented to the
     |         |     same level as the CASE body
 573 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 574 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 574 | ERROR   | [x] Line indented incorrectly; expected at least 20
     |         |     spaces, found 16
 575 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 575 | ERROR   | [x] Terminating statement must be indented to the
     |         |     same level as the CASE body
 576 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 577 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 577 | ERROR   | [x] Line indented incorrectly; expected at least 20
     |         |     spaces, found 16
 578 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 578 | ERROR   | [x] Terminating statement must be indented to the
     |         |     same level as the CASE body
 579 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 580 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 580 | ERROR   | [x] Line indented incorrectly; expected at least 20
     |         |     spaces, found 16
 581 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 581 | ERROR   | [x] Terminating statement must be indented to the
     |         |     same level as the CASE body
 582 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 583 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 583 | ERROR   | [x] Line indented incorrectly; expected at least 20
     |         |     spaces, found 16
 584 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 584 | ERROR   | [x] Terminating statement must be indented to the
     |         |     same level as the CASE body
 585 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 586 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 586 | ERROR   | [x] Line indented incorrectly; expected at least 20
     |         |     spaces, found 16
 587 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 587 | ERROR   | [x] Terminating statement must be indented to the
     |         |     same level as the CASE body
 588 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 589 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 589 | ERROR   | [x] Line indented incorrectly; expected at least 20
     |         |     spaces, found 16
 590 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 590 | ERROR   | [x] Terminating statement must be indented to the
     |         |     same level as the CASE body
 591 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 592 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 592 | ERROR   | [x] Line indented incorrectly; expected at least 20
     |         |     spaces, found 16
 593 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 593 | ERROR   | [x] Terminating statement must be indented to the
     |         |     same level as the CASE body
 594 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 595 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 595 | ERROR   | [x] Line indented incorrectly; expected at least 20
     |         |     spaces, found 16
 596 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 596 | ERROR   | [x] Terminating statement must be indented to the
     |         |     same level as the CASE body
 597 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 598 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 598 | ERROR   | [x] Line indented incorrectly; expected at least 20
     |         |     spaces, found 16
 599 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 599 | ERROR   | [x] Terminating statement must be indented to the
     |         |     same level as the CASE body
 600 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 601 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 601 | ERROR   | [x] Line indented incorrectly; expected at least 20
     |         |     spaces, found 16
 602 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 603 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 603 | ERROR   | [x] Expected 1 space after closing brace; newline
     |         |     found
 604 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 604 | ERROR   | [x] Expected 1 space after ELSE keyword; newline
     |         |     found
 604 | ERROR   | [x] Inline control structures are not allowed
 605 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 607 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 608 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 609 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 609 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 609 | ERROR   | [x] Whitespace found at end of line
 610 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 611 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 611 | ERROR   | [x] No space found after comma in function call
 612 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 612 | ERROR   | [x] No space found after comma in function call
 613 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 613 | ERROR   | [x] No space found after comma in function call
 614 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 614 | ERROR   | [x] No space found after comma in function call
 615 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 615 | ERROR   | [x] No space found after comma in function call
 616 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 616 | ERROR   | [x] No space found after comma in function call
 617 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 617 | ERROR   | [x] No space found after comma in function call
 618 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 619 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 619 | ERROR   | [x] No space found after comma in function call
 619 | WARNING | [ ] Line exceeds 120 characters; contains 246
     |         |     characters
 620 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 620 | ERROR   | [x] No space found after comma in function call
 622 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 622 | WARNING | [ ] Line exceeds 120 characters; contains 168
     |         |     characters
 623 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 623 | ERROR   | [x] No space found after comma in function call
 624 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 624 | ERROR   | [x] No space found after comma in function call
 625 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 626 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 626 | ERROR   | [x] No space found after comma in function call
 627 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 627 | ERROR   | [x] No space found after comma in function call
 628 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 628 | ERROR   | [x] No space found after comma in function call
 629 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 630 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 630 | ERROR   | [x] No space found after comma in function call
 631 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 631 | ERROR   | [x] No space found after comma in function call
 632 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 633 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 634 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 635 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 636 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 637 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 638 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 640 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 641 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 642 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 643 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 644 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 645 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 646 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 647 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 650 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 656 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 657 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 658 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 659 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 660 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 661 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 663 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 667 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 669 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 670 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 671 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 672 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 674 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 674 | ERROR   | [x] Inline control structures are not allowed
 675 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 675 | ERROR   | [x] Inline control structures are not allowed
 676 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 676 | ERROR   | [x] Inline control structures are not allowed
 677 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 678 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 679 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 681 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 682 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 683 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 683 | ERROR   | [x] Inline control structures are not allowed
 684 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 686 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 687 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 688 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 688 | WARNING | [ ] Line exceeds 120 characters; contains 142
     |         |     characters
 689 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 690 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 691 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 692 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 694 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 695 | ERROR   | [x] Spaces must be used for alignment; tabs are not
     |         |     allowed
 696 | ERROR   | [x] Expected 1 newline at end of file; 0 found
----------------------------------------------------------------------
PHPCBF CAN FIX THE 714 MARKED SNIFF VIOLATIONS AUTOMATICALLY
----------------------------------------------------------------------


Y esto es solo el standar, en cuanto a seguridad mi opinion es que no lo use.

Y es solo un archivo y este mismo consume Memory: 12Mb solo para servir funciones simples.

 

saludos

Link to comment
Share on other sites

Vale, corregiré lo que indicas y mejoraré el código.

 

Claro que es el que proporciona redsys...

 

¿con qué has analizado el fichero?

 

Muchos módulos con los que me he cruzado están mucho peor que este... y se venden nen addons.

 

¿cómo se escriben los módulos?

 

Si es verdad!! no se por que sucede, ya que para subir un modulo en el addons hay que pasar por aquí primero:

 

https://validator.prestashop.com/auth/login

 

allí subes el modulo y te da el reporte, ignoro por que le permiten a algunos subir el modulo sin validar, creo que algunos pagan el cursillo y como son alumnos no le exigen el reporte. :( o la gente de prestashop esta en la vagancia no lo se.

 

YA TENGO LOS MANUALES!! :D  VAMOS A VER SI SACAMOS ALGO BUENO, HOY A LA NOCHE LOS VOY A LEER

 

saludos!

 

pd: EN ESA MISMA URLS PUEDES GEENERAR UN STANDAR DE MODULO PARA SU PROYECTO, ya sea modulo de pago o lo que sea le genera todos los archivos basados en el standar de directorios y programación, luego tiene que adicionar obvio lo que desea a mano, pero es bastante ayuda para comenzar, yo particularmente prefiero hacer todo desde cero :(

Edited by tamu secreto (see edit history)
Link to comment
Share on other sites

He actualizado el módulo, ahora ya pasa el estandar PSR-2 de esa clase.

 

Seguiré actualizándolo

 

https://modulos-prestashop.com/descarga-modulo-redsys-prestashop-1-7

 

El módulo funciona y no hay problema en usarlo (muchas tiendas usan el módulo que reparte Redsys y no pasa el estándar).

 

Pero iré mejorándolo.

 

Gracias!

 

No le he bajado, me dice link expirado :(

Lo que hay que hacer es integrar primero la class a prestashop, no es util class RedsysAPI en ninguna de sus versiones, pues se debe declarar los atributos y establecer sus propiedades, publicas, privadas, etc. Luego a las funciones se las debe declarar con sus propiedades correspondientes de ese modo quedara un POO coherente y seguro.

De todos modos la mayoría de esas funciones pueden ser reemplazadas utilizando la class Tools de prestashop.

Bueno aquí son las 17hs (Argentina) y he leido un poco los manuales que me enviaron, voy a ver si luego hago un modulo, me llevara unas tres horas, pero estoy casado :( estoy desde las 03hs mirando este monitor :( .

En si, yo no uso prestashop, ni ningún otra plataforma, entro a este foro como recreo para despejarme (antes de enloquecer jaajaja)  tampoco trabajo de esto, asi que mi ayuda va de gratis y para colaborar.

Si no lo hago hoy, mañana a primera hora 8hs, lo hago.

 

saludos

^_^

Edited by tamu secreto (see edit history)
Link to comment
Share on other sites

                          /\          /\
                         ( \\        // )
                          \ \\      // /
                           \_\\||||//_/
                            \/ _  _ \
                           \/|(O)(O)|
                          \/ |      |
      ___________________\/  \      /
     //                //     |____|
    //                ||     /      \
   //|                \|     \ 0  0 /
  // \       )         V    / \____/
 //   \     /        (     /
""     \   /_________|  |_/
       /  /\   /     |  ||
      /  / /  /      \  ||
      | |  | |        | ||
      | |  | |        | ||
      |_|  |_|        |_||
       \_\  \_\        \_\\TAMU !
-----------------------------------------------------------------------------*/
RECIÉN TERMINE DE LEER EL MANUAL Y ESTUDIAR TODOS LOS PARÁMETROS
YA HICE UNA PRUEBA CON UN FORMULARIO PHP Y OBTUVE BUENA RESPUESTA
PERO TENGO ALGUNAS DUDAS PARA EL MODULO, POR EL MOMENTO

EN PRINCIPIO LO VOY HACER FUNCIONAL STANDAR

Ds_Merchant_TransactionType = 0, O SEA Autorización.

TAMBIÉN SE PUEDE HACER PAGO EN CUOTAS, CREO QUE SERIA BUENO EN LA PROXIMA VERSION
APLICAR ESTA OPCIÓN

¿QUE OPINAN?

VOY HACER EL MODULO CON LAS DUDAS ACUESTA! SI TENGO PROBLEMAS
LES AVISO!

TENGO BASTANTE PARA ESCRIBIR, SI NO LO TERMINO HOY LO SIGO MAÑANA, AQUÍ SON
22HS (ARGENTINA) HE DORMIDO SOLO TRES HORAS 

EN FIN ME COLGUÉ CON ESTO 

:wub:  SALUDOS PD: CRUCEN LOS DEDOS!! :P

 

CAPTURE PRUEBA!!

 

2ecf349.jpg

Edited by tamu secreto (see edit history)
Link to comment
Share on other sites

Yo estoy con la versión 1.7.2.2, usando el módulo redsys modificado por @eltitoxusmi y el pago se hace, pero no se refleja pedido en el back.

He dado persmisos al módulo redsys y nada...

 

Concretamente, a este escribirLog no llega:

 

$totalCart = $cart->getOrderTotal(true, Cart::BOTH);
escribirLog("totalPre: " . $totalCart,$logActivo);
Edited by csoon1992 (see edit history)
Link to comment
Share on other sites

Tu módulo me funciona a la perfección en PS 1.7.2.2 ;)

Mil gracias a todos!

 

Perfecto! Si dejas tu email en nuestra newsletter enviaremos mail cuando haya una actualización del módulo.

 

Yo lo he probado un poco más y me está yendo bien.

 

Sin embargo, decir que lo estoy reescribiendo para que sea más estable y sencillo y, a su vez, incluir más funcionalidad.

 

Un saludo a todos!

 

http://modulos-prestashop.com

  • Like 1
Link to comment
Share on other sites

Perfecto! Si dejas tu email en nuestra newsletter enviaremos mail cuando haya una actualización del módulo.

 

Yo lo he probado un poco más y me está yendo bien.

 

Sin embargo, decir que lo estoy reescribiendo para que sea más estable y sencillo y, a su vez, incluir más funcionalidad.

 

Un saludo a todos!

 

http://modulos-prestashop.com

Ya dejé mi email.

Gracias.

Link to comment
Share on other sites

Buenas Noches,

 

Ampliando información sólo para España

 

Llevo tiempo, semanas, meses siguiendo este hilo y se agradece que personas en su tiempo libre realicen trabajos de este tipo.

 

Lo que tendríamos que hacer es todos los que disponemos de la Red de Sermepa (Redsys) y como no tienen competencia en España y por ello disponen de la mayoría de las Entidades es el enviarles como Burofax (son 7 Euros mediante web Correos) hacia la dirección que disponen bajo su web oficial lo siguiente:

 

- Que nosotros ya hemos pagado los 79 € (varia según entidad y tipo de cliente) pero este dinero es para Redsys en su totalidad en base a:

 

En sus condiciones lo ponen y es responsabilidad de ellos el que dispongan los módulos actualizados según avanza la tecnología.

 

Que dejen de engañar al cliente con frases tipo "En breve saldrá" "En unas semanas saldrá" ya que esas respuestas ya las llevamos escuchando hace mucho.

 

Que hablamos de un Addons que se define en "Dinero", es decir es una pasarela de pago y por lo tanto existen riesgos de terceros.

 

Que dejen de Facturar a través de su 902 (Voz IP), es decir cada minuto que te mantienen en su 902 a ellos la Empresa que disponen para el 902 les pagan un 50% a ellos y el otro 50% para la Empresa que tienen contratado el 902.

 

Lo anteriormente expuesto cada uno lo realiza como carta a su modo.

 

Seguidamente con dicho Burofax y copia donde aparece remitente, destinatario y Número de Seguimiento Burofax se acerca uno al Organismo de Consumidores de su Localidad y expone una reclamación.

 

Yo ya lo hice hace semanas y es la única manera de que entiendan las cosas que en sus propias normas lo indican y son responsables de tener los módulos actualizados.

 

Y cuantos más seamos antes se pondrán las pilas.

 

En mi caso yo desde hace ya semanas tuve que conseguir el módulo de pago y tuve problemas y lo tuve que comprar de nuevo pero esta vez dentro de Prestashop y desde entonces sin problemas.

 

Y también adjunté Factura al burofax de lo pagado por el segundo Addons y me ha sido devuelto, por cierto también adjunté la factura de llamada hacia el 902 de ellos ya que pueden tener un 902 pero no con fines de recaudación y os aseguro que hay muchos afectados.

 

Simplemente he querido aportar esta información ya que me parece que se quieran aprovechar de todos y obviamente en esta vida se gana el dinero de forma humilde y no de maneras como esta.

 

Observaciones: Existen varios problemas con el que disponen V 3.0.0 con la versión 1.7 y posteriores, te puede funcionar 1 vez pero a la 3 vez no te funciona y te van a responder que es problema del comercio, es decir de tu banco. También depende del Certificado de Seguridad ya que no vale cualquiera y también de la IP Dedicada.

 

De alguien que ha querido empezar uno de sus negocios desde 0 con la Versión Prestashop 1.7 pasando por todas las actualizaciones hasta al actual 1.7.2.2 y llevo comprando 4 Addons, 1 Tema y todos indican que es compatible con la Versión 1.7 y no lo son... otra cosa muy diferente que ante la novedad de la Versión 1.7 muchos han querido aprovecharse de esto pero finalmente a base de soporte, de reclamaciones y otros recursos he puesto el acento sobre la i.

 

Saludos

Edited by Blue Sash (see edit history)
Link to comment
Share on other sites

Hola, 

 

He instalado el zip de redsys que dejo en drive @eltitoxusmi y ahora me sale dentro de las opciones de pago en el pedido pero cuando le doy a pagar me devuelve el error de que no se ha elegido ni forma de pago ni se ha aceptado las condiciones. 

 

Me podrías echar una mano??

 

Muchas gracias. 

Edited by Perfumerias Nova (see edit history)
Link to comment
Share on other sites

Bien me hice un tiempito y termine el modulo, miren es para la version PS 1.6.x,

si hago tiempo hoy realizo los cambios para que sea compatible para PS 1.7.x

 

descargar en

https://www.prestashop.com/forums/topic/631314-modulefree-modulo-redsys-tpv-virtual-official-validation-documentation/?p=2620407

 

cualquier inquietud o problema, post en ese hilo.

 

ENJOY!

:P

Link to comment
Share on other sites

  • 4 weeks later...

Yo he instalado uno gratuito, y las pocas pruebas que he realizado las ha hecho bien con los datos de prueba. No lo he probado a conciencia pero de momento a funcionado bien.

https://modulos-prestashop.com/descarga-modulo-redsys-prestashop-1-7

Me ha empezado a dar problemas, lo he desinstalado.

 

Lo he sacado de este hilo:

 

Edited by tali656 (see edit history)
Link to comment
Share on other sites

  • 2 months later...
  • 4 weeks later...

Buenas a todos estoy con la versión 1.7.2.4 y los módulos de redsys anteriores me petan en esta versión, me sale un error que pone que no existen medios de pago, aun teniendo el de pago por transferencias, para resolver el problema he bajado el módulo de redsys desde su página oficial, he eliminado lo referente a versiones anteriores a la 1.7 puesto que no me interesa y corregido los errores de variables y pagina en blanco, lo he probado en modo test y me ha funcionado correctamente,  pero no lo he podido probar en modo real.

 Me gustaría saber si funciona en este modo, si hay algún problema no duden en comentarlo.

Adjunto módulo rectificado. 

redsys_1_7_2_4_corregido_probado_modo_test.zip

 

Edited by fmentado (see edit history)
Link to comment
Share on other sites

On 1/11/2017 at 9:44 PM, tali656 said:

Yo he instalado uno gratuito, y las pocas pruebas que he realizado las ha hecho bien con los datos de prueba. No lo he probado a conciencia pero de momento a funcionado bien.

https://modulos-prestashop.com/descarga-modulo-redsys-prestashop-1-7

Me ha empezado a dar problemas, lo he desinstalado.

 

Lo he sacado de este hilo:

 

Hola!

 

Qué problemas te ha dado nuestro módulo?

 

Nos gustaría saberlo para arreglarlo.


Es mucha gente el que usa el módulo de redsys en modulos-prestashop.com y no les está dando problemas ¿cuáles eran los tuyos?

 

Gracias!

  • Like 1
Link to comment
Share on other sites

9 minutes ago, fmentado said:

El código del módulo de redsys original  es un poco sucio y se puede refactorizar.

Ya lo sabemos.

 

Nuestra prioridad haciendo el que hacemos es simplemente entregar a la comunidad algo que funcione y luego refactorizarlo entero porque esta muy mal pensado y encima no pasa los estándares de código de Prestashop.

Link to comment
Share on other sites

Con módulo que he subido, en modo test despues de realizar la operación satisfactoria vacía el carrito , regresa a order mostrando resumen de la operación y envía 2 emails al cliente detalles y codigo de operación y factura, si cancelas regresa a order. Espero que sirva,  Sólo falta probarlo en Real y esperar el feed back de la peña

Edited by f_mentado (see edit history)
Link to comment
Share on other sites

35 minutes ago, MrViSiOn said:

Ya lo sabemos.

 

Nuestra prioridad haciendo el que hacemos es simplemente entregar a la comunidad algo que funcione y luego refactorizarlo entero porque esta muy mal pensado y encima no pasa los estándares de código de Prestashop.

Hola, ya hemos estado mirando... no se trata de un error el que no salga en métodos de pago...

 

No sale en métodos de pago porque no es un método de pago registrado por prestashop.

 

Pero el módulo funciona.

 

Un saludo!

Link to comment
Share on other sites

Debido a que tenemos diversos posts con el tema de Redsys en el foro y no conviene dejar varios temas colgando, cierro el tema actual y dejo redirecciondo  el tema actual al tema oficial que se creo en su momento en el año 2013.

Aquellos que estáis colaborando con el modulo, ir comentando vuestras novedades y vuestros aportes en el tema oficial que se creo en su momento en el año 2013:

@f_mentado @MrViSiOn @tamu secreto  etc...  Comentar vuestros aportes en el tema oficial.

https://www.prestashop.com/forums/topic/266480-modulo-redsys-tpv-virtual-gratis-en-su-web/ 

Aquellos que tengáis dudas, y problemas, pues comentar también en el tema oficial, y seguro que algún compañero os ayuda.
Saludos, 

Edited by nadie (see edit history)
Link to comment
Share on other sites

  • nadie locked this topic
Guest
This topic is now closed to further replies.
×
×
  • Create New...