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

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Интеграция 1С-Битрикс с платёжной системой Сбербанк Онлайн
Средний
~1-2 недели
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1330
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    924
  • 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
    672
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    815
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    714
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1051

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

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

Почему готовый модуль не всегда решает проблему?

Официальный модуль sberbank.ecom закрывает 80% типовых сценариев, но когда нужна нестандартная логика — например, интеграция с 1С для автоматической смены статусов или двухстадийная оплата для предзаказов — готовое решение становится узким местом. Сравним: готовый модуль устанавливается за 30 минут, кастомный требует 3–5 дней, но даёт полный контроль над обработкой платежей. Соотношение скорости и гибкости — примерно 10: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. Источник: документация Сбербанк Эквайринг

Когда нужна кастомная интеграция?

В экосистеме Битрикс Сбербанк Онлайн реализуется как обработчик платёжной системы модуля 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 должен:

  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 — списывает по факту отгрузки. Сбербанк предоставляет оба метода, но двухстадийка требует отдельного подключения в договоре эквайринга. В Битрикс это реализуется через разделение обработчика на два этапа и дополнительную кнопку «Подтвердить оплату» в административной части заказа. Подробнее о реализации — в документации Битрикс.

Как избежать дублирования платежей?

Из нашей практики: интернет-магазин электроники на современной версии Битрикс. После перехода с тестовой среды на боевую около 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+ интеграций платёжных систем — это позволяет гарантировать качество.

Свяжитесь с нами, чтобы обсудить детали вашей интеграции. Мы подготовим решение под ваш бизнес и учтём все особенности.