СБИС API2 правильное использование

Материал из razgovorov.ru
Перейти к: навигация, поиск

Как правильно авторизоваться

Авторизовываться отдельно не надо. Правильно написать отдельную функцию для исполнения любых запросов СБИС - которая при необходимости будет вызывать авторизацию. В функцию тем или иным способом должны быть переданы сессия, url (тестовый fix-online.sbis.ru или рабочий online.sbis.ru), название метода и его параметры

Алгоритм работы:

  • Если сессия не указана
    • пробуем авторизоваться - не удалось возвращаем ошибку.
  • Выполняем запрос
    • если возвращается 401 ошибка (пользователь не авторизован)
      • пробуем авторизоваться - не удалось возвращаем ошибку
      • повторяем запрос
  • Возвращаем результат

Если запросы к СБИС выполняются асинхронно (рекомендуется), то функция авторизации должна быть с блокировкой предотвращающей одновременную авторизацию из нескольких запросов.

Как быстро обрабатывать события

Метод получения новых событий необходимо вызывать в цикле, пока не вернет пустой результат.

Полученный список оптимальнее всего раздать обработчикам событий и обрабатывать каждое событие из списка асинхронно.

По окончании обработки события/событий получаем новую порцию событий и повторяем процедуру.

Не забывайте обрабатывать служебные события аналогичным алгоритмом. Получили список служебных событий, асинхронно обработали каждое из них. Повторяем пока события не кончились.

Как быстро отправлять документы

Эффективность отправки в различных решения СБИС

Отправка документов состоит из следующих этапов:

  • Получение данных из информационной системы
  • Формирование электронных документов
  • Подписание документов
  • Отправка документов
  • Обновление статуса документа

доля времени приходящаяся на каждый из этих этапов зависит от многих различных параметров (размер документов, ширины канала связи, мощности ПК, загруженности ИС) и может существенно колебаться.

Занимаясь ускорением отправки документов нужно анализировать и ускорять каждый из этих этапов.

Пути ускорения 3:

  1. оптимизировать код
  2. распараллеливание исполнения кода
  3. увеличение мощности железа.

Оптимизация кода

  • ликвидируйте лишние вызовы - Анализируйте однотипные вызовы и кэшируйте. К самым легко кешируемым данным относятся - данные о нашей организации и контрагенте.
  • пытайтесь обойтись без файловых операций

Распараллеливание исполнения кода

  • Даже если у Вас синхронная ИС, СБИС предоставляет интеграционные решения позволяющие выполнять этапы отправки асинхронно. Максимальная скорость будет достигнута если Ваша ИС будет работать без перерыва.

Увеличение мощности железа

  • Последняя мера, сначала надо убедиться, что текущее железо загружено.