ESPON Posted October 23, 2019 Share Posted October 23, 2019 Buenos días! (Prestashop 1.7.6.1 y Redsys oficial 3.0.2 en instalación limpia, SSL) he detectado que cuando Redsys utiliza la url de no-ok para la vuelta de una operación denegada, se produce un error 500: AH01071: Got error 'PHP message: PHP Fatal error: Uncaught --> Smarty: 0():Missing '$template' parameter <-- \n thrown in /var/www/vhosts/dronedron.com/httpdocs/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatebase.php on line 177\n' Parece que $template es nulo en la llamada. Para reproducir he usado https://apitester.com/ con el "post data" que corresponde a la llamada, según el log de Redsys. La DS_MERCHANT_URLKO=https://xxx.com/index.php?fc=module&module=redsysoficial&controller=validation Entiendo que en esa llamada el módulo no indica el template y smarty rompe. Qué opináis? Gracias! Link to comment Share on other sites More sharing options...
Prestafan33 Posted March 27, 2020 Share Posted March 27, 2020 Me he fijado y me ocurre lo mismo. Lo que ocurre es que, como se tratan de notificaciones denegadas, normalmente no te das cuenta, porque como no se autoriza la operación, el efecto al final es el mismo. Pero si miras en el log de notificaciones de Redsys, ahí puedes ver los errores 500 en todas las notificaciones denegadas. Es un problema que me gustaría solucionar. @ESPON, ¿encontraste al final alguna solución?. Link to comment Share on other sites More sharing options...
ESPON Posted June 3, 2020 Author Share Posted June 3, 2020 Perdona no había visto tu mensaje. No lo he resuelto, "Presta es así" siempre tuvo un manejo de excepciones un poco tal... como no es importante, simplemente es algo que llena los logs en los servidores solamente. Link to comment Share on other sites More sharing options...
Jaime0000 Posted December 30, 2020 Share Posted December 30, 2020 Por si sirve de ayuda, aunque un poco tarde. ya que esto sigue pasando en las últimas versiones y es bastante molesto. En mi caso, lo he arreglado con un pequeño cambio. En modules/redsysoficial/controllers/front/validation.php, detrás de esta línea: escribirLog($idLog." -- "."El pedido con ID de carrito " . $pedido . " es inválido.",$logActivo); Añadir a continuación la línea siguiente: exit(); Es exactamente lo mismo que se hace en el caso de pago aceptado, unas pocas líneas más arriba. Ahora ya devuelve un 200 y redsys no lo considera una notificación fallida. Esta llamada es de servidor a servidor, y no necesita devolver contenido. Link to comment Share on other sites More sharing options...
Nalayh Posted October 16, 2022 Share Posted October 16, 2022 (edited) Por si acaso le ocurre a alguien más, la solución del post de Jaime0000 ya no es válida en la versión de Redsys v4.2.1. Para esta versión hay que incluir modificar el archivo "modules/redsysoficial/views/templates/front/paymenterror.tpl" y añadir debajo de la etiqueta <head> lo siguiente: {extends "$layout"} Mas info en https://github.com/PrestaShop/PrestaShop/issues/27477 Edited October 16, 2022 by Nalayh (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now