<?php

// Если сообщения от api.telegram.org не могут дойти до вашего WEB сервера, вы можете использовать прокси для уведомлений.
// На указанном в настройках url разместите файл proxy.php - он будет пересылать сообщения на ваш сервер.


// === НАСТРОЙКИ ===
// Куда проксировать запрос
$targetBaseUrl = "https://vi-telecom.ru/lk/actionin/telegram/action.php";

// === ПОЛУЧАЕМ ДАННЫЕ ВХОДЯЩЕГО ЗАПРОСА ===
$method = $_SERVER['REQUEST_METHOD'];


// Убираем путь до прокси
$proxyPath = explode("/proxy.php",$_SERVER['REQUEST_URI']);
$targetUrl = $targetBaseUrl . $proxyPath[1];



// Заголовки
$headers = [];
foreach (getallheaders() as $key => $value) {
	
    if (strtolower($key) === 'host') continue;
    $headers[] = "$key: $value";
}

// Тело запроса
$body = file_get_contents("php://input");


try {
	$fp = fopen("TelegramLogs.txt", "a"); 
	
	if ($fp){
		fputs($fp, "\n\nDate = " . date("d.m.y H:i:s")."\n");
		fputs($fp, print_r($_REQUEST,true) ."\n");
		fputs($fp, "Data = " . $body . "\n");
	}
} catch (Exception $e) {
}

echo $targetUrl;exit();


// === CURL ===
$ch = curl_init($targetUrl);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

// Если есть body — передаём
if (!empty($body)) {
    curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
}


curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);


// === ВЫПОЛНЯЕМ ===
$response = curl_exec($ch);

if ($response === false) {
    http_response_code(502);
    echo "Proxy error: " . curl_error($ch);
    exit;
}

// === РАЗБИВАЕМ ОТВЕТ ===
$headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

$responseHeaders = substr($response, 0, $headerSize);
$responseBody = substr($response, $headerSize);

// === ОТПРАВЛЯЕМ КЛИЕНТУ ===
http_response_code($statusCode);

// Проксируем заголовки ответа
$headerLines = explode("\r\n", $responseHeaders);
foreach ($headerLines as $headerLine) {
    if (stripos($headerLine, 'Transfer-Encoding') === 0) continue;
    if (stripos($headerLine, 'Content-Length') === 0) continue;
    if (!empty($headerLine)) {
        header($headerLine, false);
    }
}

// Тело
echo $responseBody;


curl_close($ch);

?>