Jump to content

Redirección después de pagar


javier jm

Recommended Posts

Hola.

Tengo un problema con las redirecciones después del pago. El caso es que la mayoría de las veces, no siempre, y esto es lo que más me vuelve loco, al finalizar la compra se redirige al usuario a la página del historial de compras en vez de a la página de confirmación del pedido (order-confirmation.tpl). He hecho un debug sencillo en /controllers/front/OrderConfirmationController.php y es el que redirige a $redirectLink = 'index.php?controller=history' porque la variable id_order no existe o está vacía. No sé por donde seguir. ¿A alguien le ha pasado algo parecido?

https://github.com/PrestaShop/PrestaShop/blob/develop/controllers/front/OrderConfirmationController.php

Prestashop v1.7.6.9

Gracias por anticipado.

Link to comment
Share on other sites

Entonces está claro que el problema está con el módulo de Redsys que no te está mostrando la página de confirmación de pedido. El código que pusiste en tu primer post es la URL a donde se redirige cuando hay algún problema con el módulo del pago. Cada módulo de pago tiene que implementar su propia vista de confirmación de pedido. No sé qué módulo de Redsys estarás utilizando, pero el problema está ahí. Lo mejor para solucionarlo sería hablar con el desarrollador. 

Link to comment
Share on other sites

¿OrderConfirmationController.php es la página donde se redirige cuando hay un problema? Estamos usando "Pago con tarjeta Redsys v3.8.2 - de idnovate" y se supone que todo está correctamente configurado. Los pedidos entran correctamente y se supone que el destino de un pedido pagado por tarjeta debería ir al Histórico de productos. ¿No? Los pedidos pagados con Transferencia si van a order confirmation. No sé si ese es el comportamiento correcto.

Mi problema real es con el GTM (quizás he planteado muy mal la pregunta...) que no se llegan a trackear algunas (y sólo algunas) ventas, ya sea por TPV o Paypal.

El módulo de GTM es Google Tag Manager Enhanced Ecommerce (UA) - PRO.

Gracias por tu ayuda.

Link to comment
Share on other sites

1 hour ago, javier jm said:

Mi problema real es con el GTM (quizás he planteado muy mal la pregunta...) que no se llegan a trackear algunas (y sólo algunas) ventas, ya sea por TPV o Paypal.

La forma más sencilla de encontrar el problema es ver qué tienen en común esos pedidos que no se trackean. Por tus mensajes anteriores había entendido que solo pasaba en los que el usuario es redirigido al historial de pedidos, pero si ahora dices que también pasa con PayPal parece otra cosa. 

Link to comment
Share on other sites

On 6/1/2021 at 8:27 AM, javier jm said:

Con distintas formas de pago. Con Redsys siempre redirige al historial de compras. El problema es que el GTM trackea unas si y otras no. 

Si, pasa con todos. No hemos conseguido encontrar una pauta. He escrito al desarrollador del módulo GTM. Gracias por tu ayuda.

Una última pregunta. ¿El destino de un pedido pagado por tarjeta debería ir al Histórico de productos?

Gracias de nuevo

 

Link to comment
Share on other sites

2 minutes ago, javier jm said:

Una última pregunta. ¿El destino de un pedido pagado por tarjeta debería ir al Histórico de productos?

Lo normal es que después de pagar se muestre una ventana de confirmación de pedido (con éxito o con error). Y de ahí ya el usuario se puede ir al historial de pedidos o a donde quiera. Pero yo no he trabajado nunca con un módulo que no muestre esa confirmación y nada más pagar me lleve directamente al historial de pedidos. Es un poco extraño. 

  • Like 1
Link to comment
Share on other sites

Pienso que lo normal es que se redirija a "/controllers/front/OrderConfirmationController.php" (confirmación de pedido) y este es el que redirige al histórico porque la variable id_order no existe o está vacía. Me faltaría averiguar, y no lo veo por ningún sitio las URLOK y URLKO de Prestashop, por si hubiera que ponerlas en Redsys. No se me ocurre nada más. De hecho, fue la empresa de Marketing la que instaló el módulo de pago de Redsys para arreglar este problema.

Gracias.

Link to comment
Share on other sites

Cuando puse en mi post anterior:

On 6/1/2021 at 11:31 AM, w3bsolutions said:

El código que pusiste en tu primer post es la URL a donde se redirige cuando hay algún problema con el módulo del pago. Cada módulo de pago tiene que implementar su propia vista de confirmación de pedido.

con "algún problema con el módulo de pago" me refería a esto dentro de /controllers/front/OrderConfirmationController.php : 

if (!$this->id_order || !$this->id_module || !$this->secure_key || empty($this->secure_key)) {
	Tools::redirect($redirectLink . (Tools::isSubmit('slowvalidation') ? '&slowvalidation' : ''));
}
$this->reference = $order->reference;
if (!Validate::isLoadedObject($order) || $order->id_customer != $this->context->customer->id || $this->secure_key != $order->secure_key) {
	Tools::redirect($redirectLink);
}
$module = Module::getInstanceById((int) ($this->id_module));
if ($order->module != $module->name) {
	Tools::redirect($redirectLink);
}

Ves que sólo se redirige al historial si el pedido no tiene un ID, o el módulo de pago no tiene nombre, o el id del cliente no coincide con el que está iniciado sesión... en fin, cosas que normalmente NO deberían pasar. 

Cada módulo de pago debe engancharse en los hooks a continuación:

	/**
     * Execute the hook displayPaymentReturn.
     */
    public function displayPaymentReturn($order)
    {
        if (!Validate::isUnsignedId($this->id_module)) {
            return false;
        }

        return Hook::exec('displayPaymentReturn', ['order' => $order], $this->id_module);
    }

    /**
     * Execute the hook displayOrderConfirmation.
     */
    public function displayOrderConfirmation($order)
    {
        return Hook::exec('displayOrderConfirmation', ['order' => $order]);
    }

Y ahí es donde deben mostrar su vista de confirmación de pedido, ya sea OK o KO. No hay URLs OK y KO "de Prestashop" genéricas. Cada módulo tiene las suyas. 

Espero haberlo aclarado. Yo mismo he implementado varios módulos de pago y no es tan complicado la verdad. 

Edited by w3bsolutions (see edit history)
  • Like 2
Link to comment
Share on other sites

Yo también he implementado módulos de pago y nunca me había pasado esto. De hecho el pago funciona, pero lo que no llega es lo que dije en el primer mensaje:

la variable id_order no existe o está vacía.

Eso es lo que no entiendo porqué pasa algunas veces si y otras no.

Muchas gracias por tu ayuda.

Link to comment
Share on other sites

Podrías analizar en el módulo de redsys antes de redirigir al OrderConfirmationController qué pasa con esa variable, de dónde saca el valor, igual hay alguna pista ahí de por qué está vacía a veces. Aunque creo que esto sería trabajo del desarrollador del módulo, y más si es de pago. 

Edited by w3bsolutions (see edit history)
  • Like 1
Link to comment
Share on other sites

On 6/2/2021 at 8:56 AM, javier jm said:

¿OrderConfirmationController.php es la página donde se redirige cuando hay un problema? Estamos usando "Pago con tarjeta Redsys v3.8.2 - de idnovate" y se supone que todo está correctamente configurado. Los pedidos entran correctamente y se supone que el destino de un pedido pagado por tarjeta debería ir al Histórico de productos. ¿No? Los pedidos pagados con Transferencia si van a order confirmation. No sé si ese es el comportamiento correcto.

Mi problema real es con el GTM (quizás he planteado muy mal la pregunta...) que no se llegan a trackear algunas (y sólo algunas) ventas, ya sea por TPV o Paypal.

El módulo de GTM es Google Tag Manager Enhanced Ecommerce (UA) - PRO.

Gracias por tu ayuda.

¡Hola! Escríbenos a través de este enlace https://addons.prestashop.com/contact-form.php?id_product=6492 y veremos si te podemos ayudar :)

Link to comment
Share on other sites

  • 5 months later...

Buenos días,

Tengo el mismo problema, tanto el modulo de Redsys para pago con tarjeta como el modulo de Bizum a veces redirecciona a la página de confirmación de pedido y otras veces redirecciona a la página de historial de pedidos. Por lo que tango adwords como GTM no me trackean todas las conversiones.

He revisado junto con el equipo de soporte de Google la configuración de tag manager y las etiquetas y está bien configurado.

Habéis solucionado el problema?

Les he enviado un email al soporte de redsys, a ver que me dicen.

Gracias!

Link to comment
Share on other sites

  • 1 year later...

Hola, tengo un problema semejante. La pasarela de pago me solicita que coloque URL de pago aceptado y declinado para la pasarela de pagos, busque y encontre el vald pero no me paparece en ningun lado la URL que supuestamente prestasho genera ¿Alguien me puede apoyar? 

Link to comment
Share on other sites

On 4/13/2023 at 6:37 AM, Abraham300 said:

Hola, tengo un problema semejante. La pasarela de pago me solicita que coloque URL de pago aceptado y declinado para la pasarela de pagos, busque y encontre el vald pero no me paparece en ningun lado la URL que supuestamente prestasho genera ¿Alguien me puede apoyar? 

¿Que pasarela de pago?

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