function validate_telegram_data($data, $secret) {
$check_hash = $data['hash'];
unset($data['hash']);
ksort($data);
// Формируем строку для проверки
$data_check_string = '';
foreach ($data as $key => $value) {
$data_check_string .= $key . '=' . $value . '&';
}
$data_check_string = rtrim($data_check_string, '&'); // Удаляем последний '&'
// Вычисляем секретный ключ
$secret_key = hash_hmac('sha256', $secret, "WebAppData");
// Вычисляем хэш
$hash = hash_hmac('sha256', $data_check_string, $secret_key);
$log_file = 'logs.txt';
error_log('Data Check String: ' . $data_check_string . PHP_EOL, 3, $log_file);
error_log('Secret Key: ' . $secret_key . PHP_EOL, 3, $log_file);
error_log('Computed Hash: ' . $hash . PHP_EOL, 3, $log_file);
error_log('Received Hash: ' . $check_hash . PHP_EOL, 3, $log_file);
// Сравнение вычисленного хэша с полученным
return hash_equals($hash, $check_hash);
}
попробуй так