Solucionar problemas

Pedidos no confirmados después de un pago con Redsys

Revisado el 4 min de lectura pasarelas de pago ssl

No marques el pedido como pagado por el regreso del comprador a la tienda. La confirmación debe proceder de la notificación servidor a servidor de Redsys, validada por la aplicación.

Localizar primero la notificación

  1. Busca la operación en el Portal de Administración de Redsys por número de pedido, comercio y terminal.
  2. Comprueba la URL de notificación configurada y su resultado exacto. Anota la hora y cualquier error.
  3. Correlaciona esa hora con el registro de acceso de la web y el log del módulo de pago. Una prueba desde el propio hosting no demuestra que Redsys pudiera alcanzar la URL.

Configuración segura de la notificación

Usa una versión mantenida de la integración de Redsys para PrestaShop, WooCommerce o la aplicación correspondiente. Configura la URL de notificación con HTTPS y un certificado válido como medida de seguridad de Hostsuar; no rebajes el retorno a HTTP para ocultar un fallo. Si la notificación no llega, revisa desde una red externa la URL, el certificado, la cadena, DNS, firewall y registros del mismo instante.

La aplicación no debe marcar un pedido como pagado por la simple visita del cliente a la URL de retorno. Antes de confirmar el pago, el callback del servidor debe:

  • Verificar la firma criptográfica de Redsys con la clave configurada y rechazar cualquier firma inválida.
  • Comprobar que número de pedido, comercio, terminal, moneda, tipo de operación e importe exacto coinciden con la operación pendiente almacenada localmente.
  • Interpretar el código Ds_Response según la tabla y el tipo de operación de Redsys antes de cambiar el estado del pedido.
  • Impedir repeticiones: registra el identificador de la operación y procesa cada notificación de forma idempotente, sin cobrar ni confirmar dos veces el mismo pedido.

Realiza una compra de prueba tras actualizar o cambiar el módulo y confirma en los registros que tanto la notificación HTTPS como todas estas validaciones se completan correctamente.

Si Redsys muestra el cobro pero la tienda no lo confirma

No pidas al comprador que pague otra vez sin contrastar la operación. Comprueba primero su resultado en Redsys y el estado local para evitar un segundo cobro. Un HTTP 200 del callback solo acredita su respuesta web; el registro del módulo debe confirmar también la validación y el cambio de estado.

Si el portal permite reenviar la notificación, utiliza esa función únicamente después de corregir la causa y confirmar que la integración procesa repeticiones sin duplicar efectos. No construyas una notificación manual ni marques el pedido basándote en parámetros de la URL del navegador.

Esta URL conserva la referencia histórica a certificados SNI, pero un fallo actual no debe atribuirse a SNI sin un error TLS que lo demuestre. Consulta la documentación de integración de Redsys y conserva por separado las claves y el entorno de pruebas y producción; nunca incluyas la clave de firma en un ticket o captura.

También te puede ayudar

¿Algo no cuadra o ha cambiado? Cuéntanoslo y lo revisamos.