Jump to content

[RESUELTO] No funciona el pago con tarjeta en entorno de prueba


Kirchhoff82

Recommended Posts

Buenas.

Estoy teniendo problemas con el pago con tarjeta en la web. El TPV virtual está contratado con la CECA (La Confederación Española de cajas de ahorros) así que el módulo que estoy usando es el suyo propio.

El caso es que el error que me da dice que "he usado un número de operación igual en las últimas 24h" y no se puede repetir. El SAT de la CECA me ha indicado que borre la caché de la web para solucionarlo, pero no está dando resultado. He hecho esto:

  • Menú Smarty: Caché --> No
  • Menú Smarty: Forzar compilación.
  • Menú CCC: Todos los parámetros en "No"
  • Borrado de la caché
  • Limpiado del carrito y añadido un producto nuevo para hacer la siguiente prueba.

No hay manera.

También he probado siguiendo las indicaciones del SAT de la CECA a desinstalar el módulo y volver a instalarlo y configurarlo, pero tampoco. Ellos dicen que ya no pueden hacer más, que es tema de PrestaShop.

¿Alguien tiene alguna idea?

Un saludo,

Guillermo.

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

Normalmente los módulos de pago envían a la pasarela de pago un número para identificar cada pedido. Que puede ser el número del pedido que le asigna Prestashop o el número del carrito. Eso ya depende de cada módulo, de cómo esté programado y algunos incluso te dejan elegir cuál usar. Creo que ése es el número que te indica que está repetido. Revisa que no tengas pedidos ni carritos con números repetidos, y mira a ver si en alguna parte del módulo te deja elegir qué parámetro usar para identificar los pedidos, y si puedes cambiarlo.

Otras dos cosas:

1.Si tienes la tienda en modo mantenimiento la confirmación de pago de las pasarelas NO funciona, y el error puede venir de ahí, deberás "abrir" la tienda para poder realizar las pruebas.

2. La pasarela de CECA creo que permite configurar por alguna parte, dentro del TPV virtual, la ruta de confirmación de los pedidos. Asegúrate de que ésta sea correcta y esté apuntando donde debe.

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

29 minutes ago, Prestafan33 said:

Normalmente los módulos de pago envían a la pasarela de pago un número para identificar cada pedido. Que puede ser el número del pedido que le asigna Prestashop o el número del carrito. Eso ya depende de cada módulo, de cómo esté programado y algunos incluso te dejan elegir cuál usar. Creo que ése es el número que te indica que está repetido. Revisa que no tengas pedidos ni carritos con números repetidos, y mira a ver si en alguna parte del módulo te deja elegir qué parámetro usar para identificar los pedidos, y si puedes cambiarlo.

Otras dos cosas:

1.Si tienes la tienda en modo mantenimiento la confirmación de pago de las pasarelas NO funciona, y el error puede venir de ahí, deberás "abrir" la tienda para poder realizar las pruebas.

2. La pasarela de CECA creo que permite configurar por alguna parte, dentro del TPV virtual, la ruta de confirmación de los pedidos. Asegúrate de que ésta sea correcta y esté apuntando donde debe.

Gracias Prestafan33. Miraré lo que dices de los pedidos. ¿Quizás tengo que borrar los pedidos en la propia web?

Sobre la configuración del módulo, no indica anda sobre el "número de pedido". Sí que recuerdo que en las primeras pruebas, cuando me daba otros errores, al meter los números de la tarjeta sí que aparecía un campo con el "número de pedido" y creo que podía editarlo. El problema es que ahora no llega a esa página. Directamente dice que como he repetido el número, la operación no se puede llevar a cabo.

Por último, como aclaración, lo que está en entorno de prueba es el TPV, no la web. La web está abierta pero el TPV solo admite tarjetas "de prueba". Que no me gusta nada tener una web lanzada sin la forma de pago habilitada, pero bueno si PrestaShop funciona así pues  ya está. No creo que nadie vaya a hacerme una compra ahora de 300€ en una web de la que no conocen el link :)

Miro esas cosas y os comento. Gracias de nuevo.

---------------

Me edito a mi mismo. Pestafan33, tenías razón. Había un carrito con ID33, que es precisamente el número (33) que me decía el TPV que ya estaba hecho y no podía repetirse.

Cuando me decían "limpia el carrito" entendía que era el carrito de la compra que estaba haciendo, no uno que ya estuviera "comprado".

He intentado borrarlo, pero la web no me deja borrar carros (ver imagen) así que lo que he hecho ha sido "comprar" otra cosa y pagar "en metálico". Con eso he generado un carrito nuevo (el 34) y en el siguiente con tarjeta ya lo ha procesado sin problemas, porque era el 35.

Muchas gracias de nuevo. Con esto, quitando problemas de diseño (la plantilla es demasiado simple), ya tengo la tienda lista para lanzarla en cuanto tenga todos los productos metidos. Os haré saber el link para que os hinchéis a comprar carne (es una carnicería).

Un saludo,

Guillermo.

 

captura 1.JPG

Link to comment
Share on other sites

He echado un vistazo a una versión antigua del módulo que tengo por aquí, y en principio parece que lo que usa para identificar las operaciones es el número del carrito ($cart->id):

        // Create transaction
        $cecabank_client->setFormHiddens(array(
            'Num_operacion' => $cart->id,
            'Descripcion' => printf(
                '%09d - %s %s',
                $cart->id,
                $customer->firstname,
                Tools::ucfirst(Tools::strtolower($customer->lastname))
            ),
            'Importe' => $amount,
            'URL_OK' => $url['return'],
            'URL_NOK' => $url['cancel'],
            'datos_acs_20' => urlencode( json_encode( $acs ) )
        ));

Revisa eso, que no tengas carritos con números repetidos. Incluso si estás en pruebas, elimina los carritos abandonados, para evitar errores.

Otra cosa: Puede ser un problema de cookies. Borra todas las cookies de la página en tu navegador, o inténtalo desde otro navegador o desde una ventana privada, es posible que así te deje.

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

1 minute ago, Prestafan33 said:

He echado un vistazo a una versión antigua del módulo que tengo por aquí, y en principio parece que lo que usa para identificar las operaciones es el número del carrito ($cart->id):


        // Create transaction
        $cecabank_client->setFormHiddens(array(
            'Num_operacion' => $cart->id,
            'Descripcion' => printf(
                '%09d - %s %s',
                $cart->id,
                $customer->firstname,
                Tools::ucfirst(Tools::strtolower($customer->lastname))
            ),
            'Importe' => $amount,
            'URL_OK' => $url['return'],
            'URL_NOK' => $url['cancel'],
            'datos_acs_20' => urlencode( json_encode( $acs ) )
        ));

Revisa eso, que no tengas carritos con números repetidos. Incluso si estás en pruebas, elimina los carritos abandonados, para evitar errores.

Justo te acababa de escribir eso, que era el número de ID del carro :D 

El único punto aún a investigar es por qué no me deja borrarlos.

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

Los carritos abandonados lo indica, aparte de tener una casilla para seleccionarlos. Los confirmados muestran el importe en verde en una de las columnas:

image.png.601eb7885a611c972702572e5022e5a0.png

Para que un carrito se considere abandonado tiene que haber pasado un periodo de tiempo (no sé ahora mismo cuánto exactamente) desde que se creó.

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...