Magento 2: RedSys. Pedidos se quedan pendientes y tras el pago,lleva a una página a una página con error.
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”.