false, 'message' => 'Falta el teléfono']); exit; } // 1. Limpiamos el número y le agregamos el 549 de Argentina si no lo tiene $telefono = preg_replace('/[^0-9]/', '', $data['telefono']); if (substr($telefono, 0, 3) !== '549') { $telefono = '549' . ltrim($telefono, '0'); } $nombre = $data['nombre']; // 2. Generamos el código $codigoGenerado = (string) rand(1000, 9999); $mensaje = "Hola $nombre, tu código de verificación para Complejo Cap1tan es: *$codigoGenerado*"; // 3. Ejecutamos Python en SEGUNDO PLANO (Asíncrono para Windows) $ruta_script = "C:\\xampp\\htdocs\\TP-Taller\\ProyectoTaller\\python\\Enviar_WSP.py"; // Armamos el comando base $comando_python = escapeshellcmd("python \"$ruta_script\" \"$telefono\" \"$mensaje\""); // "start /B" inicia el proceso sin abrir una nueva ventana de CMD. // "1> NUL 2>&1" tira a la basura los mensajes de consola de Python para que PHP no se quede esperando a leerlos. // popen() y pclose() abren el proceso y lo cierran al instante en PHP, dejando a Python trabajando solo. pclose(popen("start /B " . $comando_python . " 1> NUL 2>&1", "r")); // 4. Devolvemos la respuesta INMEDIATAMENTE al JavaScript echo json_encode([ 'success' => true, 'codigo' => $codigoGenerado, 'debug_python' => 'Ejecutando en segundo plano... (No se captura salida)' ]); ?>