Jump to content

Modulo Redsys no redirecciona bien si el pago no se reliza OK


pedrolas

Recommended Posts

Hola,
Llevo varios dias buscando infoimación sobre un problema que tengo a la hora de usar el modulo gratuito de Redsys 2.4.3 en prestashop 1.6.
 
En principio todo funciona correctamente, cuando hago una prueba de compra todo me funciona bien, el pago se realiza y el tpv me redirige a una página de resumen del pedido.
 
El problema viene con las operaciones denegadas. El modulo en vez de redirigirme a una pagina de error en el pago o algo parecido, me redirecciona a la página de inicio de mi tienda, me vacia el carrito y me genera el pedido. Eso si, el pedido me parece en estado "error en el pago". tambien se envia un email al cliente en el que figura su pedido realizado y el estado de error en el pago.
 
Supongo que lo que debería ocurrir es que el tpv virtual dirigiera al cliente a una pagina de error en el pago y dar la opción de intentar el pago de nuevo, sin vaciar el carrito ni generar el pedido.
 
Leyendo el manual de integración del mudulo de Redsys que me mandaron, he visto que el archivo /modules/redsys/redsys.tpl,  en las lineas 378 y 379 se pueden modificar manualmente la urlok y urlko

 

'UrlOk' => $protocolo.$_SERVER['HTTP_HOST'].__PS_BASE_URI__.'index.php?controller=order-confirmation&id_cart='.$id_cart.'&id_module='.$this->id.'&id_order='.$this->currentOrder.'&key='.$customer->secure_key,
'UrlKO' => $urltienda,

Como veis la urlko parece que redirige sólo a la página proncipal de mi tienda.($urltienda)

Supongo que es ahi donde está el problema pero no se muy bien que tengo que poner ahi.

 

teniendo en cuenta la primera línea en la que se epecifica la pagina del URLOK parece que no debe de ser sencillo pero si alguien me hecha una mano pues las gracias van por adelantado.

 

Un saludo

 

Pedrolas

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

He probado ese modulo y como dices funciona correctamente mostrando un mensaje de error y el boton de intentarlo de nuevo. Al final creo que voy a optar por esta solución aunque habia algo de la verión 2.4.3 que me gustaba y era que al realizar la compra de manera correcta, en la pagina de "compraok" sale además un resumen con los datos del pedido.(productos, importe total, nº de pedido...) que es una información interesante al terminar una compra.

 

Gracias por tu respuesta, instalaré la 2.0

Link to comment
Share on other sites

  • 6 months later...

Buenas, 

nosotros teníamos los mismos problemas, el error no esta en el tpl del pago, sino en el pago_error.tpl:

 

Mas concretamente en la linea: 

<a href="{$base_dir_ssl}order.php?step=3" title="{l s='Pagos'}" style="text-transform: uppercase; border: 1px solid green; background-color: green; font-size: 13px; font-weight: bold; color: white; padding: 5px; float: right; margin-top: 20px;" title="Pagos" {$this_path}order.php?step=3">{l s='Try again' mod='redsys'}</a>

el error viene por la reescritura, ya no esta "order.php?step=3" y hay que dirigirlo a "index.php?controller=order&step=3"

 

deberia quedarte algo asi: 

<a href="{$base_dir_ssl}index.php?controller=order&step=3" title="{l s='Pagos'}" style="text-transform: uppercase; border: 1px solid green; background-color: green; font-size: 13px; font-weight: bold; color: white; padding: 5px; float: right; margin-top: 20px;" title="Pagos" {$this_path}order.php?step=3">{l s='Try again' mod='redsys'}</a>

Esto nos soluciona en varias versiones del modulo de redsys. 

 

Espero te sirva. 

 

Saludos

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

Hola, estoy que salgo loco y por lo que veo la solucion es instalar la version 2.0 alguien me ahora el favor de mandarme lo por correo??? [email protected].

 

Es muy urgente ya que el cliente esta esperando desde la semana pasa que estoy a ver si lo soluciono.

 

gracias por adelantado.

 

Buenas tardes Mas iluminacion,

puedes mandarnos un privado para ver si podemos ayudarte.

 

Si no trata de exponer más claramente el fallo que tienes y ver si esta relacionado con el hilo en el que estamos.

 

Saludos!

Link to comment
Share on other sites

  • 4 weeks later...

Hola

 

En la nueva versión 2.8.3 con soporte para SHA también le sigue ocurriendo el mismo problema, la urlko redirige a ($urltienda) y no se como enviar a la página de error.

El fichero pago_error.tpl que comentaba el usuario clicsoluciones ya no existe en esta versión. Tampoco está el fichero pago_error.php.

 

He intentado poner el antiguo a mano pero debe haber algún conflicto ya que ahora no me crea un nuevo numero de orden y me aparece el error de "Pedido Duplicado".

 

Alguien sabe como se debería poner correctamente? La versión de prestashop que tengo es la 1.5.4.1. Gracias. 

Link to comment
Share on other sites

Finalmente el problema al error del "Pedido duplicado" es debido a que en la versión 2.8.3 han eliminado la función de fecha que generaba nuevo número de pedido.

Por tanto la solución es volver a añadir el date(is) en la línea donde genera el número de pedido en el fichero redsys.php.

 

En definitiva si que funciona la redirección copiando los ficheros de pago_error y modificando directamente el parámetro DS_MERCHANT_URLKO.

 

Saludos

  • Like 1
Link to comment
Share on other sites

TEMA DUPLICADO. TEMA ORIGINAL

 

https://www.prestashop.com/forums/topic/266480-modulo-redsys-tpv-virtual-gratis-en-su-web/page-20?do=findComment&comment=2194459

 

Gracias a rpujals por su contribución.

 

Europaul comprueba que tienes esto y si lo tienes igual es un error de diseño de tu plantilla. Que nada tiene que ver con el módulo.

 

pago_error.php

<?php
include(dirname(__FILE__).'/../../config/config.inc.php');
include(dirname(__FILE__).'/../../header.php');

$smarty->assign(array('this_path' => __PS_BASE_URI__));
$smarty->display(_PS_MODULE_DIR_.'servired/pago_error.tpl');

include(dirname(__FILE__).'/../../footer.php');

?>

pago_error.tpl

{capture name=path}{l s='Payment ERROR' mod='servired'}{/capture}
{* {include file="$tpl_dir./breadcrumb.tpl"} *}
<div class="cms"  style="min-height: 100px; margin-top: 22px;">
<img src="{$this_path}modules/servired/error.gif" alt="Error in payment" longdesc="Error in payment" /></td></tr><tr>
<h2 style="font-style: normal;">{l s='Your credit card payment could not be accomplished' mod='servired'}</h2><br />
<p>
{l s='We are sorry, but your payment has not been successfully accomplished. You can try again or choose another payment method. Remember that you can only use Visa and Mastercard credit cards, and Maestro debit cards as well (Spain only).' mod='servired'}
</p>
<br/>
<p>
{l s='There are several reasons for this to happen:' mod='servired'}
	<ul>
		<li>{l s='You mistook any of the digits of your credit card. Make sure you introduce them well.' mod='servired'}</li>
		<li>{l s='Make sure your credit card has not expired and is valid. Maestro debit cards, for example, are only valid in Spain' mod='servired'}</li>
		<li>{l s='There has been a problem with our payment gateway provider.' mod='servired'}</li>
	<ul>
</p>
<br/>
<p>
{l s='In any case, you can contact us by mail or by phone and we will try to fix your problem together.' mod='servired'}
</P>
<br />

<a href="{$base_dir_ssl}index.php?controller=order&step=3&multi-shipping=" title="{l s='Pagos'}" style="text-transform: uppercase; border: 1px solid green; background-color: green; font-size: 13px; font-weight: bold; color: white; padding: 5px; float: right; margin-top: 20px;" title="Pagos" {$this_path}order.php?step=3">{l s='Intentar de nuevo' mod='servired'}</a>

</div>
Edited by maximo88 (see edit history)
  • Like 1
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...