gs517's picture
Update get.php
168078f unverified
<?php
/* 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");
}
?>