Spaces:
Sleeping
Sleeping
| /* CRON SCRIPT v2 (Updated for UltraPartners API) */ | |
| // === НАСТРОЙКИ НОВОГО API === | |
| $apiKey = getenv('API_KEY'); | |
| if (!$apiKey) { | |
| // Fallback for local testing or if env var is missing (Optional: remove hardcoded key for production) | |
| $apiKey = "26-c0f6f3fefa70cdb761af4e80aae635bf"; | |
| } | |
| define("API_KEY", $apiKey); | |
| define("OFFER_ID", "8"); // ID оффера | |
| define("API_URL", "https://ultrapartners.space/api/wm/flows.json"); | |
| // === НАСТРОЙКИ СИСТЕМЫ (Не менять для совместимости с index.php) === | |
| define("CACHE_FILE", "domain_cache.txt"); | |
| define("XOR_KEY", "ui-sess-v4-8921-xb-log"); // Ключ должен совпадать с index.php | |
| // Функция шифрования (Оставляем как было для index.php) | |
| function xor_encode($string, $key) { | |
| $out = ''; | |
| for ($i = 0; $i < strlen($string); $i++) { | |
| $out .= $string[$i] ^ $key[$i % strlen($key)]; | |
| } | |
| return base64_encode($out); | |
| } | |
| // Новая функция получения ссылки (Логика из new_get.php) | |
| function fetchTargetUrl() { | |
| $requestUrl = API_URL . "?id=" . API_KEY . "&offer=" . OFFER_ID; | |
| $ch = curl_init($requestUrl); | |
| curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); | |
| curl_setopt($ch, CURLOPT_TIMEOUT, 15); | |
| curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); | |
| $response = curl_exec($ch); | |
| $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); | |
| curl_close($ch); | |
| if ($httpCode === 200 && !empty($response)) { | |
| $data = json_decode($response, true); | |
| // Логика поиска URL в ответе (обходим массив, так как ключи могут меняться) | |
| if (is_array($data) && count($data) > 0 && !isset($data['error'])) { | |
| foreach ($data as $item) { | |
| if (isset($item['url']) && !empty($item['url'])) { | |
| // Возвращаем найденную ссылку | |
| // Примечание: stripslashes нужен, если JSON экранирует слеши | |
| return stripslashes($item['url']); | |
| } | |
| } | |
| } | |
| } | |
| return false; | |
| } | |
| // === ОСНОВНОЙ ПРОЦЕСС === | |
| $targetUrl = fetchTargetUrl(); | |
| if ($targetUrl) { | |
| // Шифруем полученную ссылку ключом, который знает index.php | |
| $encrypted = xor_encode($targetUrl, XOR_KEY); | |
| // Безопасная запись с блокировкой (как в старом скрипте) | |
| $fp = fopen(CACHE_FILE, 'c'); | |
| if (flock($fp, LOCK_EX)) { | |
| ftruncate($fp, 0); | |
| fwrite($fp, $encrypted); | |
| fflush($fp); | |
| flock($fp, LOCK_UN); | |
| } | |
| fclose($fp); | |
| echo "OK: Updated to " . substr($targetUrl, 0, 30) . "... at " . date("H:i:s"); | |
| } else { | |
| echo "ERROR: Could not fetch URL from API at " . date("H:i:s"); | |
| } | |