Solución de Latencia y Timeouts en Webhooks de Redsys y Bizum en WooCommerce
Diagnóstico y resolución de bloqueos en los callbacks asíncronos de Redsys/Bizum (HTTP 504 y pedidos en espera) en WooCommerce bajo alto volumen.
Las pasarelas de pago más extendidas en el comercio electrónico español (Redsys y su integración con Bizum) operan mediante notificaciones asíncronas de servidor a servidor (HTTP POST IPN). Cuando un cliente completa el pago en la pasarela bancaria, los servidores de Redsys envían una petición inmediata al webhook de su tienda:
POST /?wc-api=WC_Gateway_Redsys HTTP/1.1
Host: tienda-online.es
User-Agent: Redsys-Notification-Agent
Content-Type: application/x-www-form-urlencoded
Bajo picos de ventas o catálogos extensos, esta llamada a menudo desencadena un Timeout HTTP 504 o HTTP 502 Bad Gateway. Como consecuencia directa, el pedido queda congelado en estado “Pendiente de pago” a pesar de que el cliente ya ha visto el cargo en su tarjeta o en su aplicación bancaria Bizum.
Anatomía de la Falla en el Webhook de Redsys
El flujo por defecto de WooCommerce ejecuta el procesamiento completo del pedido de forma síncrona dentro del mismo hilo del callback:
- Deserialización y verificación de la firma criptográfica SHA-256 (
Ds_Signature). - Actualización del estado del pedido a “Procesando”.
- Reducción inmediata de existencias en base de datos (
UPDATE wp_postmeta). - Generación síncrona de facturas en PDF (plugins de facturación).
- Envío síncrono de correos electrónicos transaccionales a través de SMTP.
Si el servidor SMTP tarda más de 5 segundos en responder o la base de datos experimenta bloqueos de filas en wp_posts, el servidor de Redsys aborta la conexión por timeout (límite estricto de 10 segundos). Al no recibir un código de estado HTTP 200 OK, Redsys marca la notificación como fallida y reintenta la llamada, duplicando la carga del servidor.
Protocolo Quirúrgico de Corrección
1. Desacoplamiento Asíncrono de Acciones Posteriores al Pago
Para devolver de inmediato el HTTP 200 a Redsys en menos de 150 ms, debemos delegar la generación de facturas y el envío de correos al Action Scheduler de WooCommerce:
// functions.php o plugin de rendimiento a medida
add_filter('woocommerce_defer_transactional_emails', '__return_true');
// Evitar bloqueos pesados durante el callback de Redsys
add_action('woocommerce_api_wc_gateway_redsys', function() {
// Aumentar buffer temporal y desactivar debug pesado en producción
if (!defined('WP_REDIS_DISABLE_METRICS')) {
define('WP_REDIS_DISABLE_METRICS', true);
}
}, 5);
2. Bypass de Reglas WAF y Captchas de Cloudflare
Uno de los errores más frecuentes tras activar la protección de Cloudflare en tiendas españolas es que el WAF bloquea las IPs oficiales de Redsys creyendo que se trata de ataques de fuerza bruta.
Es imprescindible crear una regla de omisión (WAF Skip Rule) en Cloudflare:
(http.request.uri.path contains "wc-api" and http.request.uri.query contains "WC_Gateway_Redsys")
Acción: Skip (WAF Managed Rules, Rate Limiting, Browser Integrity Check)
3. Asignación de Pool Dedicado en PHP-FPM
Para evitar que los webhooks bancarios compitan con los usuarios que navegan por el catálogo, configure un pool secundario en PHP-FPM con prioridad garantizada:
; /etc/php/8.3/fpm/pool.d/payment-webhooks.conf
[payment-webhooks]
user = www-data
group = www-data
listen = /run/php/php8.3-fpm-webhooks.sock
pm = ondemand
pm.max_children = 15
pm.process_idle_timeout = 10s
pm.max_requests = 1000
request_terminate_timeout = 30s
Con esta arquitectura desacoplada, la tasa de pedidos congelados en “Pendiente de pago” se reduce a cero absoluto, incluso durante campañas de alta demanda como el Black Friday.
🔗 Diagnósticos Técnicos Interconectados & Malla de Arquitectura:
Los cuellos de botella en servidores y pasarelas de pago nunca ocurren de forma aislada. La latencia del servidor, las consultas SQL y el rendimiento en el checkout están totalmente interconectados:
- Corrección de Retardo INP en Módulos de Correos Express y GLS: Optimizar la respuesta táctil en el checkout durante la selección de transportista.
- Cumplimiento AEPD / RGPD: Eliminación de Fuentes Externas: Evitar sanciones de la Agencia Española de Protección de Datos y ganar velocidad.
- Migración Quirúrgica de cPanel a VPS sin Caídas de Servicio: Trasladar bases de datos y correos corporativos con cero pérdida de pedidos.
¿Necesita implementación directa en su servidor?
Ejecutar reconfiguraciones quirúrgicas de servidores, indexación de bases de datos o aplazamiento de JavaScript en entornos de producción en vivo conlleva riesgos de caída. Si prefiere una solución sin riesgos implementada por un ingeniero experimentado, aplico este parche directamente en su infraestructura bajo nuestro modelo Result-First, Fair-Pay.
¿Necesitas soporte técnico rápido ante un error activo?
Envía tus logs de terminal, trazas de error o URL de servidor en cualquier momento — 7 días a la semana. Diagnóstico asíncrono por mensaje directamente con Damar, Auditor Senior de Sistemas. Sin llamadas telefónicas imprevistas.