Интеграция 1С-Битрикс с платёжной системой Сбербанк Онлайн
Мы часто сталкиваемся с такой ситуацией: интернет-магазин на Битрикс работает, заказы идут, но покупатели звонят и просят «выставить счёт через Сбер» — потому что не видят нужной кнопки на странице оплаты. Подключение Сбербанк Онлайн к Битрикс закрывает этот запрос и попутно вскрывает несколько технических нюансов, которые на этапе «просто установим модуль» не очевидны. В нашей практике каждый третий клиент приходит с этой болью — отсутствием платёжного метода, который используют 60% покупателей. Мы уже провели более 50 интеграций платёжных систем, поэтому разберём все подводные камни.
Почему готовый модуль не всегда решает проблему?
Официальный модуль sberbank.ecom закрывает 80% типовых сценариев, но когда нужна нестандартная логика — например, интеграция с 1С для автоматической смены статусов или двухстадийная оплата для предзаказов — готовое решение становится узким местом. Сравним: готовый модуль устанавливается за 30 минут, кастомный требует 3–5 дней, но даёт полный контроль над обработкой платежей. Соотношение скорости и гибкости — примерно 10:1.
Как работает платёжный шлюз Сбербанка
Сбербанк Онлайн работает через REST API эквайринга (securepayments.sberbank.ru/payment/rest/ для боевой среды, 3dsec.sberbank.ru/payment/rest/ для тестовой). Схема взаимодействия:
- Магазин вызывает
register.do— регистрирует заказ в системе Сбербанка, получаетorderIdиformUrl - Покупателя редиректят на
formUrl— страницу оплаты Сбербанка - После оплаты Сбербанк перенаправляет покупателя на
returnUrlи отправляет нотификацию наfailUrlили выполняет callback - Магазин вызывает
getOrderStatus.doдля финальной проверки статуса
Критически важно не полагаться только на returnUrl для подтверждения оплаты — покупатель может закрыть вкладку после оплаты, не дождавшись редиректа. Всегда нужен callback или периодический опрос getOrderStatus.do. Источник: документация Сбербанк Эквайринг
Когда нужна кастомная интеграция?
В экосистеме Битрикс Сбербанк Онлайн реализуется как обработчик платёжной системы модуля 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}) |
string |
amount |
Сумма в копейках (распространённая ошибка — передавать в рублях) | integer |
returnUrl |
URL возврата после оплаты | string |
currency |
Код валюты (643 для рублей по ISO 4217) | integer |
Для работы фискализации (54-ФЗ) в запрос добавляется объект orderBundle с товарными позициями, ставками НДС и признаками предмета расчёта. Без orderBundle касса Сбербанка не сформирует чек — это частая причина претензий от налоговой к магазинам, которые «вроде бы подключили онлайн-кассу». Подробнее о требованиях — в Wikipedia.
Обработка уведомлений и статусы
Сбербанк отправляет POST-уведомление на checkUrl при изменении статуса транзакции. В Битрикс обработчик callback должен:
- Принять POST, распарсить
mdOrderиorderNumber - Вызвать
getOrderStatus.doдля получения актуального статуса (не доверять данным из callback без верификации) - При статусе
2(оплачен) вызвать$payment->setPaid('Y')и сохранить транзакцию - Вернуть ответ
{"errorCode": 0}— иначе Сбербанк будет повторять попытки
Таблица статусов getOrderStatus.do:
| Код | Значение | Действие |
|---|---|---|
| 0 | Заказ зарегистрирован | Ожидать |
| 1 | Предавторизована сумма | Для двухстадийных платежей |
| 2 | Оплачен | Подтвердить в Битрикс |
| 3 | Авторизация отменена | Отменить заказ |
| 4 | Возврат выполнен | Обновить статус |
| 6 | Авторизация отклонена | Уведомить покупателя |
Двухстадийная оплата
Что такое двухстадийная оплата и когда она нужна?
Для товаров с отложенной отгрузкой (предзаказ, склад) используется двухстадийная схема: registerPreAuth.do блокирует сумму на карте, deposit.do — списывает по факту отгрузки. Сбербанк предоставляет оба метода, но двухстадийка требует отдельного подключения в договоре эквайринга. В Битрикс это реализуется через разделение обработчика на два этапа и дополнительную кнопку «Подтвердить оплату» в административной части заказа. Подробнее о реализации — в документации Битрикс.
Как избежать дублирования платежей?
Из нашей практики: интернет-магазин электроники на современной версии Битрикс. После перехода с тестовой среды на боевую около 3% транзакций дублировались — покупатель платил один раз, в заказе фиксировались два платежа. Причина: обработчик returnUrl и callback приходили почти одновременно, оба успевали вызвать setPaid('Y'). Решение — добавить проверку $payment->isPaid() перед подтверждением и использовать блокировку через \Bitrix\Main\Application::getConnection()->lock() на время обработки транзакции.
Тестирование
Тестовая среда Сбербанка (3dsec.sberbank.ru) работает с тестовыми картами из документации. Обязательно проверьте:
- Успешную оплату с подтверждением через callback
- Отмену на странице оплаты (покупатель нажал «Назад»)
- Таймаут сессии (по умолчанию 1200 секунд — Сбербанк отменяет незавершённые заказы)
- Корректность формирования чека при включённой кассе
Что входит в работу?
- Аудит текущей конфигурации Битрикс и платёжных методов
- Настройка готового модуля или разработка кастомного обработчика
- Интеграция с фискализацией (54-ФЗ) и кассой
- Тестирование всех сценариев: успех, отказ, таймаут, дублирование
- Документация по настройкам и контакты техподдержки Сбербанка
Сроки и стоимость
Сроки интеграции зависят от конфигурации: установка готового модуля без кассы — от 1 до 2 дней. Полная интеграция с 54-ФЗ, двухстадийной оплатой и подстройкой под нестандартную структуру заказов — от 3 до 7 рабочих дней. Стоимость рассчитывается индивидуально. Мы работаем с Битрикс более 5 лет, реализовали 50+ интеграций платёжных систем — это позволяет гарантировать качество.
Свяжитесь с нами, чтобы обсудить детали вашей интеграции. Мы подготовим решение под ваш бизнес и учтём все особенности.







