Hola @erniecom,
El error es un timeout. Esto puede significar dos cosas, una es que el servidor no responde en menos de 5 segundos (creo que es), pero el endpoint responde rápido, así que aparentemente no es esto.
Lo segundo es un plugin de seguridad o el mismo servidor que detectan algo en el bot de notificaciones de Redsys que no les gusta e impiden que se responda.
¿Utilizas plugins de seguridad en la instalación? Hay algunos plugins que también añaden seguridad como medidas secundarias. Lo he visto en plugins de SEO y de redirección.
Lo segundo es un plugin de seguridad o el mismo servidor que detectan algo en el bot de notificaciones de Redsys que no les gusta e impiden que se responda.
El plugin de seguridad es Wordfence. No cambio, es la misma versión que antes. El servidor es propio, no hay detección de bot, todo lo hace Wordfence. Entonces, ¿cómo puede ser que esto fue provocado por la actualización de este plugin? A lo mejor no tiene que ver con el plugin.
Analicé los logs de WooCommerce. Donde Redsys dice “timeout” los registros de log confirman haber recibido confirmación:
11-17-2023 @ 11:09:11 - Received valid notification from Servired/RedSys
11-17-2023 @ 11:09:11 -
<borrado>
11-17-2023 @ 11:09:11 -
11-17-2023 @ 11:09:11 - Checking order $order_id: 32582
11-17-2023 @ 11:09:11 -
11-17-2023 @ 11:09:11 -
11-17-2023 @ 11:09:11 - Order Exist: 32582
11-17-2023 @ 11:09:11 -
11-17-2023 @ 11:09:11 -
11-17-2023 @ 11:09:11 - Order Status: pending
11-17-2023 @ 11:09:11 -
11-17-2023 @ 11:09:11 -
11-17-2023 @ 11:09:11 - $spaid: pending
11-17-2023 @ 11:09:11 - $status: pending
11-17-2023 @ 11:09:11 -
11-17-2023 @ 11:09:11 - Ds_Amount: 4256, Ds_Order: 946000032582, Ds_MerchantCode: <borrado>, Ds_Currency: 978, Ds_Response: 0000, Ds_AuthorisationCode: 960251, $order2: 32582
11-17-2023 @ 11:09:11 - Order is Paid: FALSE
11-17-2023 @ 11:09:12 - Payment complete.
11-17-2023 @ 11:09:46 - $is_redsys_order: YES
No sé como explicar lo que pasó. ¿El plugin responde con a la notificación con una confirmación? ¿Esta no llegó de vuelta a Redsys? ¿De qué se trata aquí?
¿Pero entonces se marca como pagado @erniecom? Porque en los logs sale payment complete, y este log sale justo antes de ejecutar la función payment_complete().
Pero no puedo entender que haya ejecución de código y Redsys no reciba respuesta, y me da igual qué respuesta, sea un 200, 403, 500, 503, etc, pero que no la haya. No se como se puede ejecutar código sin respuesta HTTP.