Ошибка при проверке данных, полученных через мини-приложение в php?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Ошибка при проверке данных, полученных через мини-приложение в php?

Сообщение Anonymous »

Код: Выделить всё

function hmac_sha256($key, $data) {
return hash_hmac('sha256', $data, $key, true);
}

function validate_telegram_data($received_data) {

global $bot_token;
parse_str($received_data, $data);
ksort($data);
$received_hash = $data['hash'];

unset($data['hash']);
$data_check_string = '';
foreach ($data as $key => $value) {
$data_check_string .= $key . '=' . $value . "\n";
}

// print_r($data_check_string);
$secret_key = hmac_sha256($bot_token, "WebAppData");
$computed_hash = bin2hex(hmac_sha256($secret_key, $data_check_string));

// print_r([$received_hash, $computed_hash]);

if (hash_equals($computed_hash, $received_hash)) {
if (isset($data['auth_date']) && (time() - intval($data['auth_date'])) < 86400) {
return true;
}
}
return false;
}
почему это не работает??

Код: Выделить всё

validate_telegram_data('query_id=AAGohX8eAwAAAKiFfx7ierlk&user=%7B%22id%22%3A6954124712%2C%22first_name%22%3A%22Socilizer%20Support%22%2C%22last_name%22%3A%22%22%2C%22username%22%3A%22socilizer_support%22%2C%22language_code%22%3A%22en%22%2C%22allows_write_to_pm%22%3Atrue%7D&auth_date=1725191023&hash=1540cf7e36ebbadfe7faea9f20ccc68431cb24e1d106f860d27a560309f1ca3b');  // false why??
Я использую тот же бот-токн, и все в порядке, но дает защиту
Array
(
[0] => 1540cf7e36ebbadfe7faea9f20ccc68431cb24e1d106f860d27a560309f1ca3b // полученный_хэш
[1] => 493b5e631f8aae6061e9079b961506c07f61a3fb4b31810ad26b 01b9b1cfaadb // вычисленный_хэш
)
проверка..

Подробнее здесь: https://stackoverflow.com/questions/789 ... app-in-php
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»