Интеграция 1С-Битрикс с платежной системой Сбербанк Онлайн

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Интеграция 1С-Битрикс с платежной системой Сбербанк Онлайн
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1175
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Интеграция 1С-Битрикс с платёжной системой Сбербанк Онлайн

Типичная ситуация: интернет-магазин на Битрикс работает, заказы идут, но покупатели звонят и просят «выставить счёт через Сбер» — потому что не видят нужной кнопки на странице оплаты. Подключение Сбербанк Онлайн к Битрикс закрывает этот запрос и попутно вскрывает несколько технических нюансов, которые на этапе «просто установим модуль» не очевидны.

Как работает платёжный шлюз Сбербанка

Сбербанк Онлайн работает через REST API эквайринга (securepayments.sberbank.ru/payment/rest/ для боевой среды, 3dsec.sberbank.ru/payment/rest/ для тестовой). Схема взаимодействия:

  1. Магазин вызывает register.do — регистрирует заказ в системе Сбербанка, получает orderId и formUrl
  2. Покупателя редиректят на formUrl — страницу оплаты Сбербанка
  3. После оплаты Сбербанк перенаправляет покупателя на returnUrl и отправляет нотификацию на failUrl или выполняет callback
  4. Магазин вызывает getOrderStatus.do для финальной проверки статуса

Критически важно не полагаться только на returnUrl для подтверждения оплаты — покупатель может закрыть вкладку после оплаты, не дождавшись редиректа. Всегда нужен callback или периодический опрос getOrderStatus.do.

Техническая интеграция с 1С-Битрикс

В экосистеме Битрикс Сбербанк Онлайн реализуется как обработчик платёжной системы модуля sale. Есть несколько путей.

Готовый модуль из Маркетплейса. Официальный модуль от Сбербанка (sberbank.ecom) доступен на marketplace.1c-bitrix.ru. После установки в разделе Магазин → Настройки → Платёжные системы появляется новый тип с полями userName, password (или token для новой схемы аутентификации). Модуль регистрирует обработчик \Sale\Handlers\PaySystem\SberbankHandler и webhook-URL вида /bitrix/tools/sale_ps_result.php.

Кастомный обработчик нужен, когда: используется нестандартная схема заказов, нужна интеграция с 1С для автоматической смены статусов, или готовый модуль конфликтует с другими компонентами. Размещается в /local/php_interface/include/sale_payment/sberbank_custom/, структура стандартная для Sale PaySystem.

Ключевые параметры при регистрации заказа

Вызов register.do требует обязательных параметров:

  • orderNumber — уникальный номер в системе магазина (обычно BXORDER_{ID})
  • amount — сумма в копейках (распространённая ошибка — передавать в рублях)
  • returnUrl — URL возврата после оплаты
  • currency — код валюты (643 для рублей по ISO 4217)

Для работы фискализации (54-ФЗ) в запрос добавляется объект orderBundle с товарными позициями, ставками НДС и признаками предмета расчёта. Без orderBundle касса Сбербанка не сформирует чек — это частая причина претензий от налоговой к магазинам, которые «вроде бы подключили онлайн-кассу».

Обработка уведомлений и статусы

Сбербанк отправляет POST-уведомление на checkUrl при изменении статуса транзакции. В Битрикс обработчик callback должен:

  1. Принять POST, распарсить mdOrder и orderNumber
  2. Вызвать getOrderStatus.do для получения актуального статуса (не доверять данным из callback без верификации)
  3. При статусе 2 (оплачен) вызвать $payment->setPaid('Y') и сохранить транзакцию
  4. Вернуть ответ {"errorCode": 0} — иначе Сбербанк будет повторять попытки

Таблица статусов getOrderStatus.do:

Код Значение Действие
0 Заказ зарегистрирован Ожидать
1 Предавторизована сумма Для двухстадийных платежей
2 Оплачен Подтвердить в Битрикс
3 Авторизация отменена Отменить заказ
4 Возврат выполнен Обновить статус
6 Авторизация отклонена Уведомить покупателя

Двухстадийная оплата

Для товаров с отложенной отгрузкой (предзаказ, склад) используется двухстадийная схема: registerPreAuth.do блокирует сумму на карте, deposit.do — списывает по факту отгрузки. Сбербанк предоставляет оба метода, но двухстадийка требует отдельного подключения в договоре эквайринга. В Битрикс это реализуется через разделение обработчика на два этапа и дополнительную кнопку «Подтвердить оплату» в административной части заказа.

Реальный кейс: проблема дублирования платежей

Интернет-магазин электроники на Битрикс 21. После перехода с тестовой среды на боевую около 3% транзакций дублировались — покупатель платил один раз, в заказе фиксировались два платежа. Причина: обработчик returnUrl и callback приходили почти одновременно, оба успевали вызвать setPaid('Y'). Решение — добавить проверку $payment->isPaid() перед подтверждением и использовать блокировку через \Bitrix\Main\Application::getConnection()->lock() на время обработки транзакции.

Тестирование

Тестовая среда Сбербанка (3dsec.sberbank.ru) работает с тестовыми картами из документации. Обязательно проверьте:

  • Успешную оплату с подтверждением через callback
  • Отмену на странице оплаты (покупатель нажал «Назад»)
  • Таймаут сессии (по умолчанию 1200 секунд — Сбербанк отменяет незавершённые заказы)
  • Корректность формирования чека при включённой кассе

Сроки интеграции зависят от конфигурации: установка готового модуля без кассы — от 1 до 2 дней. Полная интеграция с 54-ФЗ, двухстадийной оплатой и подстройкой под нестандартную структуру заказов — от 3 до 7 рабочих дней.