Jump to content

TPV Sermepa - Ds_ErrorCode:SIS0051


jagomezgil

Recommended Posts

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

  • 1 month later...

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

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 by vidales (see edit history)
Link to comment
Share on other sites

  • 4 weeks later...

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

  • 1 month later...

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

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 by FranciscoVillen (see edit history)
Link to comment
Share on other sites

  • 1 month later...

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

  • 1 month later...

¿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');

  • Like 1
Link to comment
Share on other sites

  • 1 year later...
  • 3 weeks later...

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);
  • Like 1
Link to comment
Share on other sites

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

  • Like 2
Link to comment
Share on other sites

  • 2 weeks later...

 

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

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.

  • Like 1
Link to comment
Share on other sites

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

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 by maximo88 (see edit history)
Link to comment
Share on other sites

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.

  • Like 1
Link to comment
Share on other sites

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 by Raul Laso (see edit history)
Link to comment
Share on other sites

  • 4 weeks later...

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

  • 1 month later...

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

  • Like 1
Link to comment
Share on other sites

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

  • 2 months later...

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...