Онлайн-кассы и ОФД

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

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

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

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

Чтобы получить параметры приложения, на главной странице СБИС нажмите « Настройки» .

  1. Откройте раздел «Система и безопасность/Приложения» и найдите свое приложение.
  2. Откройте карточку приложения, чтобы получить параметры аутентификации:
    • app_client_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»