jagomezgil Posted January 30, 2014 Share Posted January 30, 2014 Hola amigos, Tengo varias compras fallidas en la web con el código de error en el Pago por TPV de Sermepa Ds_ErrorCode:SIS0051 Según el manual de errores se dice que es "Numero de Pedido duplicado" cuando no creo que sea cierto. Buscando por la red he encontrado un bug de 2011, que al parecer cuando una vez en la pasarela de pago volvias atrás a modificar el carrito, Sermepa daba despues el pedido como duplicado ya que prestashop vuelve a enviar el mismo número de pedido. No se si el fallo es de Sermepa o de Prestashop y si a vosotros os pasa. Yo trabajo con Banc Sabadell, pero el modulo de Pago es el TPV Gratuito que ronda por el foro. ¿Alguna ayuda o sugerencia para quitar este fallo? Trabajo con la version 1.5.6.0 de Prestashop. Gracias Link to comment Share on other sites More sharing options...
vidales Posted March 3, 2014 Share Posted March 3, 2014 A nosotros nos pasa lo mismo y no encontramos la solución. Al pulsar atrás desde la pasarela , se vuelve al carrito de la compra, pero el ds_Order está almacenado en la caché. Al volver a entrar a la pasarela, como estamos repitiendo el ds_Order, Sermepa da un error por pedido repetido. Link to comment Share on other sites More sharing options...
vidales Posted March 4, 2014 Share Posted March 4, 2014 (edited) A nosotros nos pasa lo mismo y no encontramos la solución. Al pulsar atrás desde la pasarela , se vuelve al carrito de la compra, pero el ds_Order está almacenado en la caché. Al volver a entrar a la pasarela, como estamos repitiendo el ds_Order, Sermepa da un error por pedido repetido. Hemos comprado el modulo de pago servired / sermepa y se nos soluciona http://addons.prestashop.com/es/pagos-prestashop-modulos/6492-pago-con-tarjeta-tpv-virtual-redsys-servired-sermepa.html Edited March 4, 2014 by vidales (see edit history) Link to comment Share on other sites More sharing options...
Sergio Ruiz Posted March 4, 2014 Share Posted March 4, 2014 Hemos comprado el modulo de pago servired / sermepa y se soluciona ¿Cual es el módulo que has comprado? (Es decir, ¿De donde lo has comprado? ) Yo hasta el momento estaba usando este: http://www.redsys.es/wps/portal/redsys/publica/areadeserviciosweb/descargaDeDocumentacionYEjecutables Saludos, Link to comment Share on other sites More sharing options...
Kikus Posted April 2, 2014 Share Posted April 2, 2014 Buenas tardes, Esta mañana me ha pasado exactamente lo mismo. He repetido el proceso para comprobar el fallo y, efectivamente, si el cliente vuelve atrás desde la pasarela de pago para modificar su carrito, el sistema le da error SIS0051. El módulo de pago es comprado en la tienda de Prestashop Addons. Agradeceré mucho cualquier idea sobre como solucionarlo. De hecho, los errores de la plataforma Redsys me estan haciendo plantearme la posibilidad de buscar otro sistema y uno de los candidatos es Pagantis. ¿Alguien lo utiliza? Sus condiciones son mejores que Paypal y no requiere cuota mensual. Para tiendas pequeñas me parece una alternativa a tener en cuenta. Saludos, Link to comment Share on other sites More sharing options...
FranciscoVillen Posted May 5, 2014 Share Posted May 5, 2014 Me pasa lo mismo. Estoy mirando el codigo y el número de pedido que envia el modulo redsys cambia cada vez. El problema es que al volver atras desde la pasarela de pago, la página no se recarga, quedando el mismo número de pedido. Una solución sería obligar a que la página cargue de nuevo siempre, para que asi el modulo generé un número distinto de pedido. Estoy mirando como puede hacerse, si doy con una solución, la comparto con vosotros. Link to comment Share on other sites More sharing options...
FranciscoVillen Posted May 6, 2014 Share Posted May 6, 2014 (edited) Lo he conseguido solucionar. La solución es bastante compleja, seguramente hay soluciones mucho más sencillas. Pasa por meterle codigo jquery a la pagina del checkout de forma que: 1 Al hacer efecto hover sobre el boton de confirmar pedido, se sume uno al numero de pedido (asi evitamos que el numero de pedido sea repetido). 2. A la vez que se suma 1 al numero de pedido, hay que recalcular la firma (ya que usa el numero de pedido y si no la cambiamos, el tpv nos dira que los datos son incorrectos). Para lo cual hay que hacer mediante javascript el mismo calculo de firma que se hace en el archivo redsys.php. Esta tarde en cuanto tenga un hueco comparto con vosotros la solución. EDITO: esta solución no es segura y es que estas calculando la firma con javascript en el lado del cliente. Si alguien se le ocurre una solución optima, se agradece su aporte. Edited May 6, 2014 by FranciscoVillen (see edit history) Link to comment Share on other sites More sharing options...
OBSolutions Posted July 4, 2014 Share Posted July 4, 2014 Hola todos, Actualmente existen meta-datos en HTML para indicar a los navegadores que NO deben cachear una página concreta. Todos nuestros módulos TPV tiene todas las directrices posibles para indicar a los navegadores que no deben cachear la página que carga el TPV, no obstante, algunos navegadores hacen caso omiso de esas directrices y cachean igualmente el contenido de una página por lo que tampoco soluciona el problema al 100% pero sí en un número más elevado de ocasiones. http://addons.prestashop.com/es/65_obs-solutions Saludos. Link to comment Share on other sites More sharing options...
Jose Antonio Artero Posted September 2, 2014 Share Posted September 2, 2014 Teneis solucionado el tema del error? Link to comment Share on other sites More sharing options...
Jose Antonio Artero Posted September 4, 2014 Share Posted September 4, 2014 Nada? Link to comment Share on other sites More sharing options...
vidales Posted September 4, 2014 Share Posted September 4, 2014 ¿Cual es el módulo que has comprado? (Es decir, ¿De donde lo has comprado? ) Yo hasta el momento estaba usando este: http://www.redsys.es/wps/portal/redsys/publica/areadeserviciosweb/descargaDeDocumentacionYEjecutables Saludos, en su día compramos este: http://addons.prestashop.com/es/pagos-prestashop-modulos/6492-pago-con-tarjeta-tpv-virtual-redsys-servired-sermepa.html Si no queréis comprarlo, podéis añadir un timestamp al order id, así cada entrada a la pasarela de redsys se considerará como nueva, ya que el order id de redsys será diferente cada vez, pero el pedido de presta será el mismo. // coge los 8 ultimos digitos del ID del carrito y le aniade el tiempo en milisegundos $numpedido = str_pad($params['cart']->id, 8, "0", STR_PAD_LEFT) . date('is'); 1 Link to comment Share on other sites More sharing options...
Jose Antonio Artero Posted September 5, 2014 Share Posted September 5, 2014 Perdona, en que fichero lo ponemos y donde. Para no liarla. Muchas gracias Link to comment Share on other sites More sharing options...
vidales Posted September 6, 2014 Share Posted September 6, 2014 En el php que tengas la función hookPayment, ahí configuras la información de pago y uno de los campos es el número de pedido Link to comment Share on other sites More sharing options...
Jose Antonio Artero Posted September 6, 2014 Share Posted September 6, 2014 Ok, luego lo miro. Muchas gracias Link to comment Share on other sites More sharing options...
Jose Antonio Artero Posted September 7, 2014 Share Posted September 7, 2014 Buenos dias, El modulo tiene el formato que indicas por defecto. Pero el error da igual. Link to comment Share on other sites More sharing options...
Jose Antonio Artero Posted September 9, 2014 Share Posted September 9, 2014 Es muy complicado indicar al navegador que no guarde la pagina? Link to comment Share on other sites More sharing options...
nailandlash Posted November 2, 2015 Share Posted November 2, 2015 Buenas tardes! Si esta solucionada la problema? Utilizamos el modulo del banco Sabadell, y me sale este error tambien. Prestashop 1.6.0.9 Gracias Link to comment Share on other sites More sharing options...
jabocangas Posted November 18, 2015 Share Posted November 18, 2015 SOLUCIONpara la versión 2.8.3 (10/11/2015) de redsyscambiar la linea 310 del fichero modules/redsys/redsys.php $numpedido = str_pad($params['cart']->id, 12, '0', STR_PAD_LEFT); por $numpedido = str_pad($params['cart']->id, 8, "0", STR_PAD_LEFT) . date('is'); cambiar la linea 65 del fichero modules/redsys/validation.php $pedido = $miObj->getParameter('Ds_Order'); por $pedido = str_pad(substr($miObj->getParameter('Ds_Order'),0,8), 12, "0", STR_PAD_LEFT); 1 Link to comment Share on other sites More sharing options...
angelac Posted November 21, 2015 Share Posted November 21, 2015 Funciona !! Gracias jabocangas Link to comment Share on other sites More sharing options...
maximo88 Posted November 21, 2015 Share Posted November 21, 2015 MÓDULO REDSYS REPARADO 2.8.3 PARA 1.6 1) Vacía el carrito, confirma pedido. 2) Envía cliente e-mail y cliente empresa. 3) Permite compras desde un céntimo de euro, no ocurre el error de @Josanla 4) Incluye plantilla de error de pago. 5) Probado en 1.6.0.9, por tanto funciona en todos 1.6.*.* 6) En 1.5 no sé si funciona, probadlo antes de preguntar. Y leer link a las explicaciones. Ruego confirmación de si os funciona en 1.5.6. 6) Repara el error de pedido duplicado 7) Redirige a pantalla de confirmación de Redsys 8) Borrad la caché, muchos podéis necesitarlo. 9) La tienda debe estar activa, los módulos de redsys en mantenimiento casi nunca funcionan. Link al módulo https://www.prestashop.com/forums/topic/266480-modulo-redsys-tpv-virtual-gratis-en-su-web/?p=2194476 Link a las explicaciones de como había que arreglarlo (Las correcciones son las mismas para versiones 1.5) https://www.prestashop.com/forums/topic/266480-modulo-redsys-tpv-virtual-gratis-en-su-web/?p=2194459 2 Link to comment Share on other sites More sharing options...
aroaml Posted November 29, 2015 Share Posted November 29, 2015 SOLUCION para la versión 2.8.3 (10/11/2015) de redsys cambiar la linea 310 del fichero modules/redsys/redsys.php $numpedido = str_pad($params['cart']->id, 12, '0', STR_PAD_LEFT); por $numpedido = str_pad($params['cart']->id, 8, "0", STR_PAD_LEFT) . date('is'); cambiar la linea 65 del fichero modules/redsys/validation.php $pedido = $miObj->getParameter('Ds_Order'); por $pedido = str_pad(substr($miObj->getParameter('Ds_Order'),0,8), 12, "0", STR_PAD_LEFT); Hola jabocangas, Yo he realizado la solución que has propuesto y me ha desaparecido el error: Ds_ErrorCode:SIS0051; (=número de pedido repetido). Estoy contenta porque este error me llevaba de cabeza y no había manera de solucionarlo pero tengo miedo que al haber tocado el código del módulo, pueda repercutir en la seguridad del mismo o tener problemas futuros. Puedeser? Muchísimas gracias por tu ayuda Link to comment Share on other sites More sharing options...
jabocangas Posted November 30, 2015 Share Posted November 30, 2015 Hola jabocangas, Yo he realizado la solución que has propuesto y me ha desaparecido el error: Ds_ErrorCode:SIS0051; (=número de pedido repetido). Estoy contenta porque este error me llevaba de cabeza y no había manera de solucionarlo pero tengo miedo que al haber tocado el código del módulo, pueda repercutir en la seguridad del mismo o tener problemas futuros. Puedeser? Muchísimas gracias por tu ayuda El problema puede volver a aparecer si actualizas el modulo y no arreglaron ese error. Esperemos que los de redsys lo reparen en futuras versiones. Los cambios no afectan a la seguridad ni funcionamiento del modulo, lo único que se cambia es el número de referencia de pedido que se le envia a redsys, en vez de ser ZZZZZZZZZZZZ es ZZZZZZZZXXXX (donde XXXX es un codigo que representa la hora(minutos,segundos) y ZZZZZ el numero de pedido). En validation.php se hace el cambio inverso. De esta forma cada vez que se envia una solicitud de pago la referencia del pedido es diferente. 1 Link to comment Share on other sites More sharing options...
pikaxuxu Posted December 1, 2015 Share Posted December 1, 2015 El problema puede volver a aparecer si actualizas el modulo y no arreglaron ese error. Esperemos que los de redsys lo reparen en futuras versiones. Los cambios no afectan a la seguridad ni funcionamiento del modulo, lo único que se cambia es el número de referencia de pedido que se le envia a redsys, en vez de ser ZZZZZZZZZZZZ es ZZZZZZZZXXXX (donde XXXX es un codigo que representa la hora(minutos,segundos) y ZZZZZ el numero de pedido). En validation.php se hace el cambio inverso. De esta forma cada vez que se envia una solicitud de pago la referencia del pedido es diferente. Primero de todo agradecerte tu ayuda con este tema, ayer cambiamos las dos líneas que comentas en el hilo y vimos como hubo gente que no finalizó un pedido incialmente y, al volver, pudo completarlo satisfactoriamente. Estamos enormemente agradecidos Quería comentar otra cosa. Advierto que no sé si voy a decir una burrada o no, jajaja. El caso es que con toda la felicidad de ayer hoy hemos vuelto al trabajo y... y ha aparecido de nuevo el error de pedido duplicado ¿Puede ser que esta solución no acate si un cliente está en ya en la pasarela y le da al botón "atrás" de su navegador? Lo comento porque en el TPV ayer observamos que la gente con dos intentos pudo realizarlo sin problema, mientras que el de hoy sólo tiene un intento y directamente nos ha dado sis 051, y no entendemos qué puede ser. Comentar que estamos en Prestashop 1.5.6 y con el módulo de Redsys 2.8.3. Muchísimas gracias de antemano, a ver si entre todos podemos arreglar el desaguisado que han creado estos cracks de Redsys Link to comment Share on other sites More sharing options...
maximo88 Posted December 1, 2015 Share Posted December 1, 2015 (edited) Vamos a ver: ¿Quién en su sano juicio da atrás en una pasarela de pago? Es una transacción segura, evidentemente dará error de pedido duplicado en cualquier TPV, porque es una acción extraña. Y si no, son muy sofisticados. Si tú das atrás, y luego delante(con el botón del explorador) no falla, pero si das atrás e inmediatamente vuelves a pulsar la pasarela de pago, sin refrescar la página de pago, manda el mismo código otra vez y Redsys al ver que quieren pagar lo mismo dos veces, prefiere dar error. Se le da al botón de cancelar en la pasarela Redsys y se vuelve atrás, a través de la plantilla de error, que permite reintentar el pago. Como ocurriría si por ejemplo nos equivocásemos al meter los números de la tarjeta. No sé, esta es mi lógica. Es como si metes el PIN en un comercio de la tarjeta, te dicen que no la saques, y vas tú y la sacas antes de que se complete la transacción. Nuestro TPV con Prestashop es una PASARELA, vamos de nuestra web de prestashop, a la web del banco. Páginas como Fnac o el Corte Inglés, no usan pasarela, lo tienen integrado en su propio código, por ello te piden que metas el número de tarjeta en el mismo formulario del nombre, y claro ahí nadie va a dar atrás. Es que yo no entiendo para que en una pasarela de pagos le das atrás, cuando tienes que pagar, e inmediatamente le vuelves a dar a que quieres pagar. Ya si eso mejor tirar del cable del ordenador o apagar los plomos PD: felicito a @jabocangas por su magnífica explicación. Edited December 1, 2015 by maximo88 (see edit history) Link to comment Share on other sites More sharing options...
jabocangas Posted December 2, 2015 Share Posted December 2, 2015 Como dice maximo88, es un caso de mala utilización del navegador. Y de todas formas, si el usuario cuando le aparece el error de pedido duplicado le da a aceptar se vuelve a la pagina de error del prestashop y ya podría hacer el pago correctamente.Se podría arreglar generando el código por javascript al pulsar en el botón de pago, pero es rizar el rizo. 1 Link to comment Share on other sites More sharing options...
Lire Posted December 9, 2015 Share Posted December 9, 2015 (edited) MÓDULO REDSYS REPARADO 2.8.3 PARA 1.6 1) Vacía el carrito, confirma pedido. 2) Envía cliente e-mail y cliente empresa. 3) Permite compras desde un céntimo de euro, no ocurre el error de @Josanla 4) Incluye plantilla de error de pago. 5) Probado en 1.6.0.9, por tanto funciona en todos 1.6.*.* 6) En 1.5 no sé si funciona, probadlo antes de preguntar. Y leer link a las explicaciones. Ruego confirmación de si os funciona en 1.5.6. 6) Repara el error de pedido duplicado 7) Redirige a pantalla de confirmación de Redsys 8) Borrad la caché, muchos podéis necesitarlo. 9) La tienda debe estar activa, los módulos de redsys en mantenimiento casi nunca funcionan. Link al módulo https://www.prestashop.com/forums/topic/266480-modulo-redsys-tpv-virtual-gratis-en-su-web/?p=2194476 Link a las explicaciones de como había que arreglarlo (Las correcciones son las mismas para versiones 1.5) https://www.prestashop.com/forums/topic/266480-modulo-redsys-tpv-virtual-gratis-en-su-web/?p=2194459 GRACIAS Maximo, me solvento ese fallo, aunque a mí me falla todavía la cantidad de productos añadidos, es decir, cuando entra un cliente con un producto y de este producto solo tiene una unidad, le das a comprar y el precio es correcto en la página de redsys. Pero si lo que hace el cliente es aumentar la cantidad del producto y luego le da a comprar, en la página de redsys el precio es de una unidad. Para que vaya bien ahora mismo lo que se debe de hacer es actualizar la página cada vez que tocas las cantidades de los artículos, de esta manera sí que en la página de redsys te sale el precio correcto. IMPORTANTE decir que la parte del pago la tengo puesta en una sola página mediante un modulo de one page checkout. Alguna idea? Edited December 9, 2015 by Raul Laso (see edit history) Link to comment Share on other sites More sharing options...
Lire Posted December 11, 2015 Share Posted December 11, 2015 nadie con alguna solución? Link to comment Share on other sites More sharing options...
maximo88 Posted January 3, 2016 Share Posted January 3, 2016 IMPORTANTE decir que la parte del pago la tengo puesta en una sola página mediante un modulo de one page checkout Está claro que es eso, que no está bien hecho. No es problema del módulo, es de la plantilla del one page checkout, que no manda bien el dato. Seguro al 99% vamos. ¿A que si lo pones en 5 pasos con la plantilla oficial funciona? Tardo en contestar mucho, ando agotado Link to comment Share on other sites More sharing options...
Welele Posted February 4, 2016 Share Posted February 4, 2016 Ya van para varias semanas que tenemos el error de pedido duplicado además del típico error de importe 0 (sin asignar). Desde el servicio técnico nos han enviado dos nuevas versiones del módulo pero el error sigue produciéndose. Claramente con la nueva actualización de encriptación la han cagado pero bien bien. Alguien tiene los mismos problemas? Saludos y gracias de antemano 1 Link to comment Share on other sites More sharing options...
maximo88 Posted February 6, 2016 Share Posted February 6, 2016 El típico error de importe 0 (sin asignar). Yo no soy capaz de solucionarlo. ¿Alguien ha podido solucionar esto? El de pedido duplicado si lo hemos conseguido en la 2.8.3 con la modificación que yo he adjuntado. Es horrible esta situación. Link to comment Share on other sites More sharing options...
dwilden Posted April 12, 2016 Share Posted April 12, 2016 Hola, Tengo la ultima version del modulo de redsys 2.8.5 y el problema persiste. He intentado cambiar el codigo por que le recomendais pero es algo diferente, alguien puede ayudarme a cambiar el codigo para la version 2.8.5 ? Gracias, 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