Аутентификация веб-сервиса в СБИС через API

Аутентификация веб-сервиса в СБИС через API

При настройке интеграции по API используйте параметры приложения для аутентификации веб-сервиса. Они станут доступны после того, как вы добавите приложение в СБИС и предоставите ему доступ к нужным участкам системы.

Получить параметры приложения

  1. В личном кабинете СБИС перейдите в раздел «Настройки/Подключения к СБИС».

  2. Нажмите «+ Подключение». Укажите название приложения и его описание, по желанию добавьте картинку или логотип.
  3. Добавьте адрес «online.sbis.ru». Если этого не сделать, то запросы авторизации будут разрешены с любого адреса.
  4. Разрешите внешнему приложению сервисный доступ в СБИС с уровнем «Разрешен полностью».
  5. Выберите тип авторизации «по сервисному ключу».
  6. Нажмите «Сохранить».

В карточке приложения будут указаны параметры аутентификации:

  • app_client_id — цифровой идентификатор (ID приложения). Требуется СБИС для определения приложения;
  • app_secret — защищенный ключ. Используется вместе с идентификатором, чтобы сайт распознал приложение;
  • secret_key — ключ для авторизации внешних сервисов и приложений, которые работают в фоновом режиме.

Используйте эти данные в запросе для аутентификации приложения.

Получить токен доступа

Метод запроса: POST

Адрес запроса: https://api.sbis.ru/oauth/service/

Пример в формате *.php
Пример запроса в формате *.py

В качестве примера используется функция «cURL».

<?php
$auth = array(
    'app_client_id'=>'760676789310629',
    'app_secret'=>'WHREDMVWJDHYFZO0CM83MHF',
    'secret_key'=>'9PT47e2j3JGwsswHAzHaU5ssyzoqHsIYFHLjtZYQhlqV8U7eIkF5VIYluyrGwugVv7g1dWRcbSnoCzk10gq961GdzfpUD7INYZiS0wR8K1lrbVwkMjvqi'
);
$auth = json_encode($auth);
$ch = curl_init();
curl_setopt_array($ch, array(
    CURLOPT_SSL_VERIFYPEER => false,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_URL => 'https://online.sbis.ru/oauth/service/',
    CURLOPT_POST => true,
    CURLOPT_HEADER => 0,
    CURLOPT_POSTFIELDS => $auth,
    CURLOPT_HTTPHEADER =>  array(
        'Content-type: charset=utf-8'
        )
));
$response = curl_exec($ch);
curl_close($ch);
?>

В качестве примера используется библиотека «Requests».

import requests
json={"app_client_id":"7760676789310629","app_secret":"RWHREDMVWJDHYFZO0CM83MHF","secret_key":"B9PT47e2j3JGwsswHAzHaU5ssyzoqHsIYFHLjtZYQhlqV8U7eIkF5VIYluyrGwugVv7g1dWRcbSnoCzk10gq961GdzfpUD7INYZiS0wR8K1lrbVwkMjvqi"}
url = 'https://online.sbis.ru/oauth/service/'    
response = requests.post(url, json=json)
print(response.text)

Метод API выполняет аутентификацию пользователя по идентификатору и секретному ключу. В результате сервер СБИС возвращает идентификатор сессии и токен. Эти параметры будут использованы для регистрации чека.

Параметры запроса

Параметр

Описание

Пример

app_client_idЦифровой идентификатор приложения8682886532580173
app_secretЗащищенный ключ приложенияIDBTNJIDJ11WFCBN94IDANX2
secret_keyСекретный ключ приложенияjS8cOxLhzi6eNDxzWhkv3jGcavipE

Пример запроса

POST  https://online.sbis.ru/oauth/service/
Content-Type: application/json
{
" app_client_id ":"8682886532580173",
"app_secret": "IDBTNJIDJ11WFCBN94IDANX2",
"secret_key": "jS8cOxLhzi6eNDxzWhkv3jGcavipEc6gN2vea3KHkwqccVGUxBqY7Dkf09IM2PL5Bw70EYQrjNvzaNDWlIFky4JF5STVRsyU2hBZ8hp9VbTE1tQdm5YI04"
}

Пример ответа

В ответе json-формата возвращаются поля «sid» и «token».

{
"sid":"005f49e3-006ad5c4-eedb-ded3b4238c3cad3b",
"token":"IXRnMUREP2g1fi93XjYqYVRVbUdZPCxuUFpwLEVDKlspSH5MZTNweDVnJDw2d0kmUzo6RztDN2RXaiVVbFgyQTIwMjAtMDYtMDQgMDk6Mzg6MTYuODA2MzM4"
}

Для каждой последующей команды API в описании заголовка «X-SBISAccessToken» необходимо передавать ключ «token» и в поле «Cookie» указывать идентификатор «sid».
Например, «Cookie: sid=0056cbe3-00574213-00ba-09f3753ce2334692»

Нашли неточность? Выделите текст с ошибкой и нажмите ctrl + enter.