diff --git a/services/PhoneSync.php b/services/PhoneSync.php index ca45b6e..e4b2831 100644 --- a/services/PhoneSync.php +++ b/services/PhoneSync.php @@ -3,6 +3,9 @@ declare(strict_types=1); class PhoneSync { + /** Endpoint registrado en company_endpoints que devuelve los números habilitados */ + private const ENDPOINT_KEY = 'numeros_dn'; + public static function syncAll(): array { $companies = CompanyRepository::findAll(); @@ -19,14 +22,19 @@ class PhoneSync { $companyId = (int)$company['id']; $name = $company['name'] ?? "company {$companyId}"; - $baseUrl = rtrim($company['api_base_url'] ?? '', '/'); $apiKey = $company['api_key'] ?? ''; - if ($baseUrl === '') { - return ['company' => $name, 'status' => 'skip', 'reason' => 'sin api_base_url']; - } + // La URL sale de company_endpoints, igual que el resto de llamadas al ERP. + // api_base_url no sirve acá: guarda el Graph API de WhatsApp, no el ERP. + $stmt = db()->prepare( + "SELECT url FROM company_endpoints WHERE company_id = ? AND endpoint_key = ? AND is_active = 1 LIMIT 1" + ); + $stmt->execute([$companyId, self::ENDPOINT_KEY]); + $url = (string)($stmt->fetchColumn() ?: ''); - $url = $baseUrl . '/php/controller/controller_api_externa.php?peticion=whatsapp_numeros'; + if ($url === '') { + return ['company' => $name, 'status' => 'skip', 'reason' => 'sin endpoint ' . self::ENDPOINT_KEY]; + } $ch = curl_init($url); curl_setopt_array($ch, [