6. Токен безопасности
Для обеспечения безопасности и предотвращения CSRF-атак, любые POST запросы выполняются с передачей специального дополнительного параметра – токена. Чтобы получить токен безопасности нужно выполнить запрос следующего вида:
6.1. Получение токена безопасности /info/settings/token/
Тип | Формат запроса 6.1 | |
GET | /info/settings/token/ | |
Формат запроса |
Результатом данного запроса будет объект
1 2 3 4 5 |
[ { "token" : "fd50e47596cff6c63c7ea0a633c0d2a8" } ] |
Полученный token необходимо использовать как дополнительный параметр для каждого POST запроса. Смена токена происходит раз в 24 часа.
Ниже приведен пример на PHP получения токена и выполнения запроса на добавление в список email рассылки пользователя. ( Запрос протокола 5.3.). Обратите внимание, что при отправке запросов используется Basic HTTP-авторизация.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
<?php $user="json"; # Логин в личном кабинете PayKeeper $password="json"; # Соответствующий логину пароль $base64=base64_encode("$user:$password"); # Формируем base64 хэш $headers=Array(); array_push($headers,'Content-Type: application/x-www-form-urlencoded'); array_push($headers,'Authorization: Basic '.$base64); # Подготавливаем заголовок для авторизации $server_paykeeper="demo.rsb-processing.ru"; # укажите адрес вашего сервера PayKeeper # адрес demo.rsb-processing.ru - пример! # Готовим первый запрос на получение токена $uri="/info/settings/token/"; # Запрос на получение токена $curl=curl_init(); # curl должен быть установлен 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); # Инициируем запрос к API $php_array=json_decode($out,true); # Сохраняем результат в массив if (isset($php_array['token'])) $token=$php_array['token']; else die(); # Сохраняем полученный токен в $token # Готовим к выполнению запрос на добавление email в список рассылки $email="example@paykeeper.ru"; # Почта для добавления $uri="/change/organization/addreportemail/"; # Запрос 5.3 JSON API $curl=curl_init(); # curl должен быть установлен 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); # Инициируем запрос к API print_r(json_decode($out)); # Выводим результат запроса ?> |
Если запрос выполнен успешно, результатом будет объект следующего вида:
1 2 3 4 5 |
[ { "result": "success" } ] |
Если запрос выполнен успешно, результатом будет объект следующего вида:
1 2 3 4 5 6 |
[ { "result": "fail", "msg": "Данный почтовый адрес уже существует." } ] |
Результат добавления e-mail в список рассылки можно увидеть с личном кабинете: