Si tienes Magento con el módulo oficial de RedSys puede que te esté ocurriendo este error. Los pagos están entrando, se reciben, pero el pedido se queda pendiente y al cliente le devuelve a una página con error.
La causa de esto es que el módulo está mal, tiene definidas 3 páginas de “callback” (retorno):
DS_MERCHANT_MERCHANTURL, DS_MERCHANT_URLOK y DS_MERCHANT_URLKO
Estas páginas son las de la tienda, las de pedido correcto y las de pedido erróneo. Pero el plugin tiene definida la misa url (dirección) para todas estas páginas.
Os enseñamos a corregirlo.
Solución.
Tenemos que modificar el fichero /app/Code/Redsys/Redsys/Controller/RedSysController.php y añadir las direcciones. Una manera de hacerlo es:
- Encontrad donde pone $urlTiendaOK=$this->_baseURL.”redsys/index/notify”; y añadid justo después las siguientes dos líneas (dos variables):
$urlTiendaOK=$this->_baseURL.”checkout/onepage/success”;
$urlTiendaKO=$this->_baseURL.”checkout/onepage/failure”; - Id a donde pone:
$miObj->setParameter(“DS_MERCHANT_URLOK”,$urlTienda);
$miObj->setParameter(“DS_MERCHANT_URLKO”,$urlTienda);
y cambiadlo por
$miObj->setParameter(“DS_MERCHANT_URLOK”,$urlTiendaOK);
$miObj->setParameter(“DS_MERCHANT_URLKO”,$urlTiendaKO);
De esta manera tiene las nuevas direcciones a las que ir cuando el pago sea exitoso o no.
Probad ahora un pago, veréis como llega bien a Magento, el pedido pasa a su estado pagado y el cliente recibe el mensaje de “pago correcto”.
Os recomendamos los siguientes productos relacionados con la informática: