Добавление файлов скрипта
This commit is contained in:
parent
0ba3fe9730
commit
edabf6060d
57
auth.php
Normal file
57
auth.php
Normal 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
60
index.php
Normal 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>';
|
||||||
|
}
|
||||||
|
?>
|
Loading…
Reference in New Issue
Block a user