diff --git a/backend/app/Controllers/WhatsAppController.php b/backend/app/Controllers/WhatsAppController.php index 2690229..ca78f51 100644 --- a/backend/app/Controllers/WhatsAppController.php +++ b/backend/app/Controllers/WhatsAppController.php @@ -174,10 +174,29 @@ class WhatsAppController extends BaseController ]); // 3. Placeholder for Phase 5 Gemini AI auto-reply - $this->triggerAutoReply($session, $msgData); - - $response->json(['status' => 'success', 'message' => 'Incoming message logged']); - return; + if (function_exists('fastcgi_finish_request')) { + $response->status(200); + $response->setHeader('Content-Type', 'application/json; charset=utf-8'); + $allowedOrigin = getenv('ALLOWED_ORIGIN') ?: '*'; + $response->setHeader('Access-Control-Allow-Origin', $allowedOrigin); + $response->setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS'); + $response->setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization, X-Requested-With'); + $response->sendHeaders(); + http_response_code(200); + echo json_encode([ + 'status' => 'success', + 'message' => 'Incoming message logged and auto-reply queued' + ], JSON_UNESCAPED_UNICODE); + fastcgi_finish_request(); + + $this->triggerAutoReply($session, $msgData); + exit; + } else { + // Fallback for environment without PHP-FPM + $this->triggerAutoReply($session, $msgData); + $response->json(['status' => 'success', 'message' => 'Incoming message logged']); + return; + } } // Handle connection state sync