Добавление файлов скрипта

This commit is contained in:
Дмитрий Михно 2024-08-14 02:32:27 +04:00
parent 0ba3fe9730
commit edabf6060d
2 changed files with 117 additions and 0 deletions

57
auth.php Normal file
View File

@ -0,0 +1,57 @@
<?php
session_start();
// Конфигурация приложения
$client_id = 'вставьте свой ключ приложения';
$redirect_uri = 'https://ваш путь к скрипту/auth.php'; // URL, куда ЮMoney перенаправит после авторизации
$scope = 'account-info operation-history operation-details';
// Шаг 1: Перенаправить пользователя на страницу авторизации
if (!isset($_GET['code'])) {
$auth_url = "https://yoomoney.ru/oauth/authorize?client_id={$client_id}&response_type=code&redirect_uri={$redirect_uri}&scope={$scope}";
header('Location: ' . $auth_url);
exit();
}
// Шаг 2: Обработать редирект и получить токен
if (isset($_GET['code'])) {
$code = $_GET['code'];
$token_url = "https://yoomoney.ru/oauth/token";
// Параметры запроса
$data = array(
'code' => $code,
'client_id' => $client_id,
'redirect_uri' => $redirect_uri,
'grant_type' => 'authorization_code'
);
// Выполнение POST запроса для получения токена
$options = array(
'http' => array(
'header' => "Content-Type: application/x-www-form-urlencoded\r\n",
'method' => 'POST',
'content' => http_build_query($data),
),
);
$context = stream_context_create($options);
$result = file_get_contents($token_url, false, $context);
if ($result === FALSE) {
die('Ошибка при получении токена');
}
$response = json_decode($result, true);
if (isset($response['error'])) {
die('Ошибка: ' . $response['error_description']);
}
$access_token = $response['access_token'];
echo "Ваш access token: " . $access_token;
}
?>

60
index.php Normal file
View File

@ -0,0 +1,60 @@
<?php
// Устанавливаем токен доступа
$token = 'вставьте сюда полученный токен';
// URL для запроса баланса
$accountInfoUrl = 'https://yoomoney.ru/api/account-info';
// URL для запроса списка операций
$operationHistoryUrl = 'https://yoomoney.ru/api/operation-history';
// Функция для выполнения запроса к API
function apiRequest($url, $token, $params = array()) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Authorization: Bearer ' . $token
));
if (!empty($params)) {
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
}
$response = curl_exec($ch);
if ($response === false) {
$error = curl_error($ch);
curl_close($ch);
die('Ошибка cURL: ' . $error);
}
curl_close($ch);
$data = json_decode($response, true);
if (json_last_error() !== JSON_ERROR_NONE) {
die('Ошибка декодирования JSON: ' . json_last_error_msg());
}
if (isset($data['error'])) {
die('Ошибка API: ' . $data['error']);
}
return $data;
}
// Получаем информацию о счете
$accountInfo = apiRequest($accountInfoUrl, $token);
// Выводим баланс
$balance = $accountInfo['balance'];
echo '<h2><b>Баланс вашего кошелька: ' . $balance . ' руб.</h2></b>';
// Получаем историю операций (последние 5 операций)
$params = array(
'records' => 5,
);
$operationHistory = apiRequest($operationHistoryUrl, $token, $params);
// Выводим последние 5 операций
echo 'Последние 5 операций:<br>';
foreach ($operationHistory['operations'] as $operation) {
echo 'Дата: ' . $operation['datetime'] . '<br>';
echo 'Сумма: ' . $operation['amount'] . ' руб.<br>';
echo 'Тип: ' . $operation['title'] . '<br>';
echo 'Описание: ' . $operation['message'] . '<br>';
echo '<br>';
}
?>