6. Безопасность и авторизация
Источник: https://docs.paykeeper.ru/dokumentatsiya-json-api/token-bezopasnosti/
6.1 Получение токена безопасности /info/settings/token/
Тип: GET
Формат: /info/settings/token/
Пример ответа:
{
"token": "fd50e47596cff6c63c7ea0a633c0d2a8"
}Токен передаётся в каждом POST-запросе как параметр token. Обновляется раз в 24 часа.
Пример на PHP
<?php
$user="user";
$password="pass";
$base64=base64_encode("$user:$password");
$headers=Array();
array_push($headers,'Content-Type: application/x-www-form-urlencoded');
array_push($headers,'Authorization: Basic '.$base64);
$server_paykeeper="your.server.paykeeper.ru";
$uri="/info/settings/token/";
$curl=curl_init();
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl,CURLOPT_URL,$server_paykeeper.$uri);
curl_setopt($curl,CURLOPT_CUSTOMREQUEST,'GET');
curl_setopt($curl,CURLOPT_HTTPHEADER,$headers);
curl_setopt($curl,CURLOPT_HEADER,false);
$out=curl_exec($curl);
$php_array=json_decode($out,true);
if (isset($php_array['token'])) $token=$php_array['token']; else die();
$email="example@paykeeper.ru";
$uri="/change/organization/addreportemail/";
$curl=curl_init();
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl,CURLOPT_URL,$server_paykeeper.$uri);
curl_setopt($curl,CURLOPT_CUSTOMREQUEST,'POST');
curl_setopt($curl,CURLOPT_HTTPHEADER,$headers);
curl_setopt($curl,CURLOPT_HEADER,false);
curl_setopt($curl,CURLOPT_POSTFIELDS,"token=$token&email=$email");
$out=curl_exec($curl);
print_r(json_decode($out));
?>Успех:
{"result": "success"}Ошибка:
{
"result": "fail",
"msg": "This email address already exists."
}6.2 Basic HTTP-авторизация
Каждый запрос должен содержать заголовок Authorization: Basic <base64>.
Учётные данные — логин/пароль ЛК PayKeeper. Рекомендуется заводить отдельного пользователя под API.
Пример на PHP
<?php
$server_paykeeper="demo.paykeeper.ru";
$uri="/info/systems/list/";
$user="json";
$password="json";
$base64=base64_encode("$user:$password");
$curl=curl_init();
$headers=Array();
array_push($headers,'Authorization: Basic '.$base64);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl,CURLOPT_URL,$server_paykeeper.$uri);
curl_setopt($curl,CURLOPT_CUSTOMREQUEST,'GET');
curl_setopt($curl,CURLOPT_HTTPHEADER,$headers);
curl_setopt($curl,CURLOPT_HEADER,false);
$out=curl_exec($curl);
print_r(json_decode($out));
?>Пример ответа:
[
{"id": "6", "system_description": "RS", "site_description": "Russian Standard"},
{"id": "127", "system_description": "TestPayments", "site_description": "Test Payment"}
]6.3 JWT-токен для сервисов /info/settings/service-token/
Тип: GET
Формат: /info/settings/service-token/
Параметры:
| Параметр | Назначение |
|---|---|
service | ID сервиса, для доступа к которому нужен JWT |
Пример ответа:
{
"result": "success",
"token": "eyJ0eXAiOiJKV1QiLCJ...lUhd0oCiYYkvgZRQi1Il6_sOIU"
}