Как работает оплата через статический QR-код с автоматическим определением суммы (кассовая ссылка СБП)?

Программист 1С:Розница Управленческий учет Торговля и дистрибуция
← На главную

В современной розничной торговле мы часто сталкиваемся с ситуацией, когда на кассе размещена обычная пластиковая табличка с QR-кодом. На первый взгляд кажется, что это статический код, в который «зашиты» только реквизиты магазина. Однако при сканировании банковское приложение чудесным образом сразу подтягивает нужную сумму заказа. Разберем детально, как работает эта технология, называемая кассовой ссылкой СБП, и как она реализуется технически.

Принцип работы «платежной ссылки»

Ранее существовало жесткое разделение: статический QR-код содержал только информацию о получателе, а динамический (выводимый на экран) — еще и сумму конкретной покупки. Технология кассовой ссылки объединяет эти подходы. Рассмотрим этот гибридный механизм подробнее:

  1. За каждой кассой в магазине закреплен уникальный идентификатор (ID), который зашифрован в статическом QR-коде на табличке.
  2. Этот ID ведет на определенный адрес (URL) на сервере банка или НСПК.
  3. В «режиме ожидания» ссылка по этому адресу либо неактивна, либо ведет на нейтральную страницу.
  4. В момент закрытия чека кассовое ПО магазина отправляет запрос в банк: «Для ссылки с данным ID назначь сумму 1500 рублей».
  5. Банк мгновенно обновляет данные по этой ссылке. Теперь, когда покупатель сканирует код, его приложение обращается к серверу и получает актуальную сумму транзакции.

Проанализируем ситуацию: по сути, мы имеем дело с динамическим наполнением статического носителя. Физический код не меняется, но данные, на которые он ссылается в облаке банка, обновляются при каждой продаже.

Техническая реализация и интеграция

Для разработчика 1С работа с такими ссылками сводится к взаимодействию с API банка через библиотеку интернет-поддержки (БСП). Выясним причину, почему это удобнее стандартного динамического QR-кода. Основное преимущество — отсутствие необходимости в дорогостоящем оборудовании (дисплеях покупателя) при сохранении высокой скорости обслуживания.

Посмотрим на пример логики, которая происходит «под капотом» при интеграции с банком. Когда кассир нажимает кнопку «Оплата по СБП», учетная система должна выполнить процедуру активации ссылки:


// Примерная схема взаимодействия с API платежного агрегатора
Функция АктивироватьКассовуюСсылку(СуммаЧека, ИдентификаторКассы)
    
    Запрос = Новый HTTPЗапрос(АдресСервисаБанка);
    Запрос.Заголовки.Вставить("Authorization", "Bearer " + ТокенДоступа);
    
    // Формируем структуру данных для активации
    ДанныеПараметров = Новый Структура;
    ДанныеПараметров.Вставить("qrid", ИдентификаторКассы); // ID из статической наклейки
    ДанныеПараметров.Вставить("amount", СуммаЧека * 100); // Сумма в копейках
    ДанныеПараметров.Вставить("orderId", Строка(Новый УникальныйИдентификатор()));
    
    ЗаписьJSON = Новый ЗаписьJSON;
    ЗаписьJSON.УстановитьСтроку();
    ЗаписатьJSON(ЗаписьJSON, ДанныеПараметров);
    СтрокаJSON = ЗаписьJSON.Закрыть();
    
    Запрос.УстановитьТелоИзСтроки(СтрокаJSON);
    
    // Отправляем команду на сервер банка
    Ответ = Соединение.ОтправитьДляОбработки(Запрос);
    
    Если Ответ.КодСостояния = 200 Тогда
        Возврат Истина; // Ссылка теперь содержит сумму и готова к оплате
    КонецЕсли;
    
КонецФункции

Важно помнить, что после успешной транзакции или по истечении тайм-аута ссылка должна быть «деактивирована» (очищена), чтобы следующий покупатель случайно не оплатил чужой чек. В большинстве современных API это происходит автоматически на стороне банковского сервера.

NFC-технологии и «Универсальный QR»

Проанализируем дополнительные возможности современных табличек. Многие из них оснащены встроенным NFC-чипом. В этом случае покупателю даже не нужно открывать камеру — достаточно приложить смартфон к табличке. Смартфон считывает ту же самую платежную ссылку через бесконтактный интерфейс, что еще больше сокращает время операции.

Разберем также понятие Универсального QR. Это развитие идеи кассовой ссылки, где один и тот же код поддерживает разные платежные сценарии:

Безопасность и риски

Рассмотрим подробнее вопрос безопасности. Главный риск статической таблички — ее физическая подмена злоумышленниками. Для предотвращения мошенничества применяются следующие механизмы:

  1. Геолокация: Банк может проверять местоположение смартфона клиента в момент сканирования. Если координаты значительно отличаются от адреса торговой точки, транзакция блокируется.
  2. Статус на кассе: В момент, когда покупатель сканирует код, кассовое ПО получает уведомление «Код считан». Кассир видит, что взаимодействие началось именно с его кассовой ссылкой.
  3. Визуальный контроль: Рекомендуется использовать защищенные тейбл-тенты или наклейки с голографическими элементами, которые трудно подделать незаметно.

Преимущества для бизнеса

Подводя итог, выделим ключевые выгоды использования кассовых ссылок в 1С:

Экономия: Не нужно покупать и обслуживать дисплеи для каждой кассовой зоны.

Скорость: Покупателю не нужно вручную вводить сумму (как в классическом статическом QR), что исключает ошибки и ускоряет очередь.

Гибкость: В 1С:Розница или 1С:УНФ настройка выполняется один раз через привязку ID кассы к рабочему месту, после чего система работает в автоматическом режиме.

Таким образом, внешне простая табличка на кассе является лишь «точкой входа» в сложную и эффективную систему облачного взаимодействия между кассовым ПО и банковским сервером.

← На главную