elecal64 Posted June 27, 2023 Share Posted June 27, 2023 Buenos días, Recientemente acabo de activar el módulo redsys por redirección, funciona todo perfecto, se realiza el pago correctamente (1 sola vez) pero me llegan dos emails iguales de notificación de nuevo pedido ¿porque los duplica??? sin embargo si el pedido se paga por otro medio como paypal o transferencia bancaria la notificación de nuevo pedido sólo llega una vez. ¿que podría estar pasando? he hablado con redsys pero ellos me dicen que no es problema de redsys, que ellos no envian ningún email de notificación de pedido, que sera error de mi plugin de notificaciones pero....¿y porque con otras formas de pago no me pasa? Saben a que podria deberse?? el plugin que tengo para notificaciones de nuevo pedido es el Alertas por correo electrónicos v2.4.1 - de PrestaShop Si alguien le ha pasado y sabe la soución... No es que me moleste recibir 2 emails iguales pero es por evitar confusiones... Link to comment Share on other sites More sharing options...
ExpertoPrestaShop Posted June 27, 2023 Share Posted June 27, 2023 Esto es solo una suposición pero si tuviera que apostar te diría que el problema si proviene del modulo de Redsys. Link to comment Share on other sites More sharing options...
elecal64 Posted June 27, 2023 Author Share Posted June 27, 2023 3 minutes ago, ExpertoPrestaShop said: Esto es solo una suposición pero si tuviera que apostar te diría que el problema si proviene del modulo de Redsys. Pues eso es lo que les he dicho que solo me pasa cuando pago por redsys, en otras formas de pago no me pasa!! Y redsys me responde esto: NO, redsys no manda ningún correo electrónico, sólo manda uno como confirmación de que la operación se ha realizado con éxito pero no de confirmación de pedidos. Deberán revisar de manera interna desde dónde y por qué están recibiendo los correos de esa manera. Pero nuestro plugin no genera correos electrónicos con las operaciones. Así que no lo sé!! Link to comment Share on other sites More sharing options...
ExpertoPrestaShop Posted June 27, 2023 Share Posted June 27, 2023 Busca dentro del código fuente del modulo cualquier lugar donde aparezca esto Mail::send y así sabras que correo se envía dentro del modulo. Link to comment Share on other sites More sharing options...
elecal64 Posted June 27, 2023 Author Share Posted June 27, 2023 7 minutes ago, ExpertoPrestaShop said: Busca dentro del código fuente del modulo cualquier lugar donde aparezca esto Mail::send y así sabras que correo se envía dentro del modulo. Y donde esta el código fuente? hay muchos archivos y carpetas dentro del modulo redyspur Link to comment Share on other sites More sharing options...
ExpertoPrestaShop Posted June 27, 2023 Share Posted June 27, 2023 Todo lo que esta dentro de la carpeta del módulo es el código fuente. Es relativamente fácil buscarlo con un editor de texto. Pero si no sabes lo que estas mirando es complicado que puedas hacer algo al respecto sin conocimientos básicos de programación. Tendrías que contratar un desarrollador. Link to comment Share on other sites More sharing options...
elecal64 Posted June 27, 2023 Author Share Posted June 27, 2023 7 minutes ago, ExpertoPrestaShop said: Todo lo que esta dentro de la carpeta del módulo es el código fuente. Es relativamente fácil buscarlo con un editor de texto. Pero si no sabes lo que estas mirando es complicado que puedas hacer algo al respecto sin conocimientos básicos de programación. Tendrías que contratar un desarrollador. Ah ok, pues mirare en todos los archivos y con el buscador a ver si encuentro algo, pensaba que sabrías en que archivo exactamente estaría eso. Le echo un vistazo y te digo Link to comment Share on other sites More sharing options...
gainza Posted September 14, 2023 Share Posted September 14, 2023 Estoy en las mismas, he abierto conversaciones con Redsys a ver si me dicen algo. Con la versión 1,7 de PS y este mismo módulo no había problema. Link to comment Share on other sites More sharing options...
Hue2 Posted September 14, 2023 Share Posted September 14, 2023 Si entiendo bien manda dos correos al validar el pedido, también podrías tener dos estados que manden el correo, es algo rebuscado y en mi caso buscaría en el código lo que te han dicho, que hace cuando manda el Mail Link to comment Share on other sites More sharing options...
gainza Posted September 14, 2023 Share Posted September 14, 2023 Si, creo que manda uno cuando la tienda recibe el pedido y otro cuando se acepta el pago, solo en el caso de Redsys.... de alguna forma tiene que ser una incompatibilidad con el módulo "Mail alerts" y el de "Redsys"... pero no veo ninguna configuracion en ninguno de ellos que permita modificar esto. Esperaré respuesta de Redsys antes de toca nada. Link to comment Share on other sites More sharing options...
Hue2 Posted September 14, 2023 Share Posted September 14, 2023 @gainza Perfecto ya nos dices a ver y vemos que se puede hacer. Un saludo Link to comment Share on other sites More sharing options...
jcarlos_1985 Posted October 9, 2023 Share Posted October 9, 2023 Buenas a todos! El problema está en el módulo de Redsys, ya que ocurre solamente en los pedidos que se pagan con este módulo... que ellos no hagan ningún envío no quiere decir que no sean el motivo del problema. Ese email se envía por el módulo "ps_emailalerts" cuando se valida un pedido, o lo que es lo mismo, cuando se llama al hook 'actionValidateOrder', que es cuando se hace el envío. Buscando en el módulo de Redsys, se aprecia que se hacen 2 llamadas a ese hook, por lo tanto ahí está el problema y alguna de esas 2 llamadas sobra. Si lo queréis solucionar hasta que actualicen el módulo, bastaría con comentar esa llamada en el fichero controllers/front/validation.php en la línea 275, donde se hace Hook::exec('actionValidateOrder'); ya que el envío del correo ya se hace en la línea 262 cuando se llama a la función validateOrder(). Un saludo! Link to comment Share on other sites More sharing options...
gainza Posted October 9, 2023 Share Posted October 9, 2023 Buenas Pasé la incidencia a Redsys hace cosas de un mes y siguen, según ellos tratando de solucionar el error, voy a probar lo que comentas. Muchas gracias Link to comment Share on other sites More sharing options...
gainza Posted October 9, 2023 Share Posted October 9, 2023 Bueno, he estado revisando el módulo, tengo instalado una versión que ellos me mandaron indicando que arreglaba el problema, .. no lo hace. En esta version donde hace el Hook que comentas, lo hace en forma de array y en dos archivos diferentes: en el validation.php y en redsyspur.php Se complica la cosa. Link to comment Share on other sites More sharing options...
jcarlos_1985 Posted October 9, 2023 Share Posted October 9, 2023 En el fichero redsyspur.php también lo hace el módulo que tengo, pero lo hace dentro de una función validateCart() que no sé muy bien para qué la emplean, aunque ahí también hará el envío 2 veces porque el Hook lo hace después de llamar a validateOrder()... Link to comment Share on other sites More sharing options...
Baltimore Posted October 13, 2023 Share Posted October 13, 2023 On 10/9/2023 at 1:09 PM, gainza said: Bueno, he estado revisando el módulo, tengo instalado una versión que ellos me mandaron indicando que arreglaba el problema, .. no lo hace. En esta version donde hace el Hook que comentas, lo hace en forma de array y en dos archivos diferentes: en el validation.php y en redsyspur.php Se complica la cosa. Efectivamente con el módulo de Redsys sucede que se envía 2 emails de la plantilla new_order. Al menos en Prestashop 8. Si os notifican que se va actualizar ponerlo en este hilo. Gracias! Link to comment Share on other sites More sharing options...
ednukros Posted November 23, 2023 Share Posted November 23, 2023 (edited) Estoy teniendo el mismo problema de recibir 2 email cuando se confirma un pedido pagado con Redsys. Alguien ha podido solucionarlo al fin? Yo tengo el siguiente código en validation.php y redsyspur.php Con comentar uno de los dos quedaría solucionado? Edited November 23, 2023 by ednukros (see edit history) Link to comment Share on other sites More sharing options...
jcarlos_1985 Posted November 23, 2023 Share Posted November 23, 2023 Buenas @ednukros Tendrías que comentar el que está en validation.php. El que está en redsyspur.php está en la función validateCart() que no he llegado a entender para qué la usan... Saludos! 1 Link to comment Share on other sites More sharing options...
Manuel_GT Posted January 3 Share Posted January 3 Me uno al hilo ya que yo también tengo el problema. Mis versiones son: Módulo Redsys 1.4.6 Prestashop 8.1.2 Mi problema no es simplemente de un email repetido ya que yo empleo ese hook "ActionValidateOrder" para hacer varias operaciones importantes de mi lógica de negocio que se están haciendo por duplicado causando un auténtico desastre. Analizando un poco creo que el lugar más seguro para comentar el hook es en redsyspur::validateCart ya que el método es muy corto y las operaciones que hace son bastante claras. Una vez ha guardado los datos en sus tablas mediante: Redsys_Order::saveOrderDetails simplemente llama al hook y luego devuelve la url de OK. En mi caso esa url está mal ya que uso urls amigables y multiidioma con lo que esa última parte del método solo es un problema. Voy a hacer pruebas comentando eso a ver que pasa. Link to comment Share on other sites More sharing options...
Nickz Posted January 3 Share Posted January 3 1 hour ago, Manuel_GT said: simplemente llama al hook y luego devuelve la url de OK. En mi caso esa url está mal ya que uso urls amigables y multiidioma con lo que esa última parte del método solo es un problema. Con un redirect no puedes "arreglar" este problema? Link to comment Share on other sites More sharing options...
Manuel_GT Posted January 3 Share Posted January 3 (edited) Es que devuelve la url como string, no un redirect El resultado lo asigna a una variable. Estoy cambiando el return que tienen ellos por un return Context::getContext()->link->getpageLink('order-confirmation',$ssl, $params); a ver que tal va... De todas formas hay otro sitio en el que está esta url y es seguramente el que más usa porque es el que mete en el base64 con la info de la transacción y ese está en otro método ( createParameter) Edited January 9 by Manuel_GT (see edit history) Link to comment Share on other sites More sharing options...
Manuel_GT Posted January 3 Share Posted January 3 Bueno pues resulta que la operación de prueba en ningún momento ha llamado al método validateCart así que entiendo que el proceso llama dos veces a validation.php ya que después de comentar en el otro sitio me han llegado dos emails 😞 Link to comment Share on other sites More sharing options...
Manuel_GT Posted January 3 Share Posted January 3 Hola de nuevo. Después de algunas pruebas he podido comprobar que el problema parece ser que como la clase Redsyspur extiende PaymentModule hereda el método validateOrder que en su implementación tiene una llamada al hook actionValidateOrder (en linea 553) En validation.php (linea 313) se llama a $redsys->validateOrder siendo esta variable un objeto Redsyspur ejecutando, por tanto, el hook anterior (1º vez). Unas lineas más abajo (linea 328 creo) validation.php llama al hook de nuevo de forma directa (2º vez). Con lo que es claro que se ejecuta dos veces. He comentado la llamada directa de validation.php y he probado a realizar una operación terminando correctamente y con solo una ejecución. Por otro lado, alimentar con getpagelink la url de vuelta también ha funcionado perfectamente generando la url amigable. 1 Link to comment Share on other sites More sharing options...
Yelish Posted January 8 Share Posted January 8 Pon el tema como resuelto por favor, ayudarás a otros y evitarás que la gente consulte tu incidencia. Link to comment Share on other sites More sharing options...
Manuel_GT Posted January 8 Share Posted January 8 Hola @Yelish Lo haría, pero el hilo no me pertenece y no puedo hacer ese cambio que yo sepa. Por otro lado, yo he resuelto mi situación particular pero no se si el resto está de acuerdo con mi solución o hay una mejor. 1 Link to comment Share on other sites More sharing options...
Yelish Posted January 8 Share Posted January 8 Disculpa la confusión, descargaré el módulo y veré si puedo ofrecer la ayuda necesaria. Un saludo. Link to comment Share on other sites More sharing options...
Yelish Posted January 9 Share Posted January 9 No puedo ofrecer ayuda. Ten un gran día, Link to comment Share on other sites More sharing options...
gainza Posted January 9 Share Posted January 9 On 10/9/2023 at 12:11 PM, jcarlos_1985 said: Buenas a todos! El problema está en el módulo de Redsys, ya que ocurre solamente en los pedidos que se pagan con este módulo... que ellos no hagan ningún envío no quiere decir que no sean el motivo del problema. Ese email se envía por el módulo "ps_emailalerts" cuando se valida un pedido, o lo que es lo mismo, cuando se llama al hook 'actionValidateOrder', que es cuando se hace el envío. Buscando en el módulo de Redsys, se aprecia que se hacen 2 llamadas a ese hook, por lo tanto ahí está el problema y alguna de esas 2 llamadas sobra. Si lo queréis solucionar hasta que actualicen el módulo, bastaría con comentar esa llamada en el fichero controllers/front/validation.php en la línea 275, donde se hace Hook::exec('actionValidateOrder'); ya que el envío del correo ya se hace en la línea 262 cuando se llama a la función validateOrder(). Un saludo! Buenas Finalmente a mi ha servido esta solución.... en mi caso he comentado este código del archivo controllers/front/validation.php Hook::exec('actionValidateOrder', array( 'cart' => $cart, 'order' => Order::getByCartId($cart->id), 'customer' => $customer, 'currency' => new Currency((int) $cart->id_currency, null, (int) $cart->id_shop), 'orderStatus' => new OrderState((int) Configuration::get ( "REDSYS_ESTADO_PEDIDO" ), (int) $cart->id_lang), )); En mi versión del módulo está en la línea 313 1 Link to comment Share on other sites More sharing options...
Manuel_GT Posted March 11 Share Posted March 11 Por si a alguien le interesa. Acabo de recibir de Redsys el módulo de pago versión 1.5.1 que resuelve el problema de las urls amigables así como la doble ejecución del hook "actionValidateOrder" Un saludo. Link to comment Share on other sites More sharing options...
Yelish Posted March 11 Share Posted March 11 Genial. Entiendes quien soy. 1 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