Оплата по QR-коду Системы быстрых платежей — это перевод напрямую со счёта покупателя на счёт магазина через приложение его банка, без ввода реквизитов карты. В 1С-Битрикс СБП подключается как обычная платёжная система, но у неё своя логика: динамический QR на конкретный заказ и асинхронное подтверждение оплаты. Разберём, как это устроено и что настроить, чтобы статус заказа менялся сам.
Как устроена оплата по QR-коду СБП
СБП работает поверх инфраструктуры НСПК: покупатель сканирует QR камерой или приложением банка, видит сумму и получателя, подтверждает — и деньги моментально уходят с его счёта на счёт магазина. Карты в цепочке нет, поэтому и эквайринговая комиссия ниже, чем при оплате картой.
Для интернет-магазина ключевое отличие — тип QR. Различают два вида:
- Статический QR — один код на весь магазин, без суммы; покупатель вбивает её сам. Для оформленного заказа в Битрикс он не годится.
- Динамический QR — генерируется под конкретный заказ, уже содержит сумму, назначение и идентификатор. Именно его создаёт платёжная система в момент оформления.
При оплате на сайте банк-эквайер (или его провайдер СБП) по запросу выдаёт динамический QR с уникальным qrcId, а Битрикс показывает картинку или ссылку покупателю. Оплата подтверждается асинхронно — сайт узнаёт о ней не мгновенно, а из отдельного уведомления.
Платёжная система и обработчик в Битрикс
СБП в Битрикс живёт в модуле sale как платёжная система с собственным обработчиком. Добавляется она в Магазин → Настройки → Платёжные системы кнопкой «Добавить». Часто СБП идёт не отдельной системой, а опцией внутри эквайринга — у ЮKassa, Тинькофф, Сбербанка в настройках обработчика есть флаг «Приём через СБП».
Технически обработчик — это папка с файлами в /bitrix/modules/sale/handlers/paysystem/ (типовые) или /local/php_interface/include/sale_payment/ (пользовательские). Внутри:
.description.php— набор полей настройки (мерчант, ключи, TSP-идентификатор);handler.php— класс, наследник\Bitrix\Sale\PaySystem\ServiceHandler, с методамиinitiatePay()(запрос QR) иprocessRequest()(обработка колбэка);- шаблон, который рисует QR-код и кнопку/ссылку на оплату.
Настройка и привязка к типу плательщика
В карточке платёжной системы задаются реквизиты, которые выдаёт банк: идентификатор ТСП (торгово-сервисного предприятия), номер счёта для зачисления, ключи API и адрес шлюза. Обязательно проверьте режим — тестовый или боевой — и переключите на боевой только после успешного пробного платежа.
СБП, как и любая платёжная система, привязывается к типу плательщика. Настройка идёт через связку служб оплаты и доставки: в Магазин → Настройки → Способы оплаты и доставки определяется, кому из плательщиков (физлицо, юрлицо) и при какой доставке показывать СБП. Логично включать её для физлиц — юрлица платят по счёту.
| Параметр | Где взять |
|---|---|
| Идентификатор ТСП / merchant | Личный кабинет эквайера |
| Счёт зачисления | Договор с банком |
| URL колбэка (webhook) | Указываете в ЛК банка вручную |
| Секретный ключ / токен | ЛК эквайера, храните вне репозитория |
Адрес для уведомлений о статусе платежа — это отдельная страница-приёмник на вашем сайте; её URL нужно прописать в личном кабинете банка, иначе оплата не «долетит» до заказа.
Колбэки и смена статуса заказа
Главная особенность СБП — асинхронное подтверждение. Покупатель оплатил в приложении банка, но вкладка магазина об этом сразу не знает. Правильный источник истины — колбэк (webhook) от эквайера на серверный адрес. Метод processRequest() обработчика принимает уведомление, проверяет подпись и, если статус «оплачено», помечает платёж как проведённый.
В коде это вызов Payment::setPaid('Y') с последующим сохранением заказа. Дальше срабатывает штатная логика Битрикс: заказ переходит в статус «оплачен», запускаются обработчики событий, уходит письмо покупателю.
- Битрикс создаёт заказ и платёж, запрашивает динамический QR.
- Покупатель сканирует QR и подтверждает перевод в банке.
- Эквайер шлёт webhook на адрес-приёмник вашего сайта.
- Обработчик проверяет подпись, суммы и
qrcId, ставит платёж оплаченным.
Чек по 54-ФЗ
Оплата через СБП — это безналичный расчёт с физлицом, поэтому по 54-ФЗ на неё нужен кассовый чек. В Битрикс за это отвечает подсистема онлайн-касс: Магазин → Кассы → Кассы и профили ОФД. Чек пробивается автоматически по факту оплаты.
Есть два сценария фискализации:
- Касса на стороне банка. Многие эквайеры (ЮKassa, Тинькофф) пробивают чек сами — тогда в Битрикс кассу для этой платёжной системы не подключают, чтобы не задвоить.
- Своя онлайн-касса. Магазин пробивает чек через подключённую ККТ или облачную кассу — тогда чек формирует Битрикс по событию оплаты.
Важно, чтобы состав чека — ставки НДС, признак предмета и способа расчёта — заполнялся из товаров заказа корректно. Ошибки чаще всего в незаданном НДС у товара или в дублировании: и банк, и Битрикс отправляют чек на один платёж.
Диагностика: QR не создаётся или заказ не оплачивается
Типовые проблемы СБП по QR распадаются на два класса — QR не сгенерировался и оплата прошла, но статус не сменился. Проверяйте по порядку:
- QR не появляется. Неверные ключи ТСП, включён тестовый режим при боевых реквизитах, или сервер не достучался до шлюза эквайера. Смотрите ответ API в логе обработчика.
- Оплата есть, заказ не оплачен. Почти всегда не долетает колбэк: URL приёмника не прописан в ЛК банка, закрыт файрволом, отдаёт 500 или падает на проверке подписи.
- Сумма не сходится. Обработчик сверяет сумму из колбэка с суммой платежа; расхождение из-за скидок или округления валюты блокирует зачёт.
- Просроченный QR. Динамический QR живёт ограниченное время; после протухания покупатель должен переоформить оплату.
Ход платежей и колбэков удобно смотреть в Магазин → Покупатели → История платежей и в журнале обработчика. Тестовую оплату всегда прогоняйте на реальном телефоне с приложением банка — эмулятор СБП не заменит.
Итог
Оплата по QR-коду СБП в 1С-Битрикс — это платёжная система с обработчиком, который запрашивает у эквайера динамический QR на заказ и ждёт серверного колбэка о статусе. Три вещи определяют, будет ли всё работать: корректные реквизиты ТСП в карточке платёжной системы, прописанный и защищённый подписью URL для уведомлений, и правильная фискализация без задвоения чека. Статус заказа должен менять только проверенный колбэк, а не возврат покупателя на страницу «спасибо».
Если нужно подключить СБП к нестандартному эквайеру, написать или доработать обработчик ServiceHandler, настроить колбэки и чеки по 54-ФЗ, мы берём эту интеграцию на себя — от карточки платёжной системы до боевого платежа с корректным чеком.
Частые вопросы
Чем оплата по QR СБП отличается от оплаты картой?
При СБП деньги идут напрямую со счёта покупателя на счёт магазина через приложение его банка, без ввода реквизитов карты. Комиссия эквайера при этом обычно ниже, чем по картам.
Нужен статический или динамический QR для интернет-магазина?
Динамический. Он генерируется под конкретный заказ и уже содержит сумму и идентификатор, тогда как статический QR один на весь магазин и требует ручного ввода суммы покупателем.
СБП подключается отдельной платёжной системой?
Часто нет: приём через СБП идёт опцией внутри эквайринга ЮKassa, Тинькофф или Сбербанка. Отдельная платёжная система нужна, если работаете с банком напрямую по своему обработчику.
Почему заказ не переходит в статус «оплачен» после оплаты?
Скорее всего не доходит серверный колбэк от эквайера: URL-приёмник не прописан в кабинете банка, закрыт файрволом или падает на проверке подписи. Именно колбэк ставит платёж оплаченным, а не success-страница.
Можно ли считать заказ оплаченным по возврату на страницу «спасибо»?
Нет. Возврат покупателя на success-страницу не гарантирует поступление денег. Оплату должен подтверждать только серверный webhook с проверенной подписью, иначе появятся «оплаченные» заказы без денег.
Нужен ли чек по 54-ФЗ при оплате через СБП?
Да, это безналичный расчёт с физлицом и чек обязателен. Его пробивает либо эквайер на своей стороне, либо ваша онлайн-касса в Битрикс — важно не задвоить чек, включив оба варианта сразу.
Где в Битрикс смотреть проблемы с оплатой по QR?
В разделе Магазин → Покупатели → История платежей и в логе обработчика платёжной системы. Там видно, создался ли QR, пришёл ли колбэк и сошлись ли суммы.
Почему QR-код перестаёт работать через некоторое время?
Динамический QR имеет ограниченный срок жизни. После протухания покупатель должен заново оформить оплату, чтобы система сгенерировала новый код на тот же заказ.
Поможем с настройкой и поддержкой 1С-Битрикс: Управление сайтом
Поможем с настройкой, доработкой и поддержкой 1С-Битрикс: Управление сайтом.