Описание
Помимо обыкновенной QR-оплаты по динамическому QR-коду, АО "Сбербанк" предлагает своим клиентам возможность оплачивать покупки с помощью кассовой платежной ссылки (см. настройки ниже).
Общий алгоритм процесса оплаты при помощи кассовой платежной ссылки описан здесь.
Настройки Универсального интегратора
Описание таблиц
- qrsberbank_variable_stores – таблица конфигураций для магазинов
- qrsberbank_variable_merchants – таблица для мерчантов в формате JSON
- qrsberbank_variable_terminals – таблица конфигураций для терминалов (касс) формате JSON
- qrsberbank_variable_transactions – журнал транзакций
Структура таблиц
- В таблице qrsberbank_variable_stores находится связка между идентификатором магазина из запроса и его конфигурацией. Если магазина нет в таблице, то, по умолчанию, merchant = 0:
Название | Значение | Описание |
|---|---|---|
| StoreID | Идентификатор магазина в торговой системе | |
| merchant | Идентификатор конфигурации из qrsberbank_variable_merchants |
- В таблице qrsberbank_variable_merchants находятся настройки мерчантов в формате JSON:
Название | Значение | Описание |
|---|---|---|
| id | Идентификатор конфигурации | |
| value | url – адрес отправки запросов login – логин password – пароль MerchantId – логин дочернего партнера (если используется) | Конфигурация в формате JSON |
- В таблице qrsberbank_variable_terminals находятся настройки терминалов в формате JSON:
Название | Значение | Описание |
|---|---|---|
| TerminalID | Идентификатор терминала из запроса. Если запрос идет от УКМ 4, то соответствует cash_id – идентификатор кассы в торговой системе. | |
| qr_id | TerminalId – выдает банк при привязке наклейки на кассе. Это параметр tId в ответе. TerminalId привязывается к наклейке и процедура следующая: в ответ на запрос привязки наклейки, банк отправляет номер терминала в поле tId. Этот номер нужно использовать в дальнейшем при регистрации заказов на этой кассе (уже в рамках параметра terminalId) payload – ссылка на QR. Если есть, то высвечивается на кассе qrcId – QR id. Если отсутствует, то вычисляется из payload | Конфигурация в формате JSON |
Дополнительная информация
После заполнения данных в БД демона необходим перезапуск:
sudo systemctl stop qrpayd.service sudo systemctl start qrpayd.service |
|---|
RabbitMQ перезапускать не надо.
________________________________________________
Название очереди RabbitMQ – qrsberbank_variable.
________________________________________________
Удобный просмотр поля id в qrsberbank_variable_transactions:
ALTER TABLE `qrsberbank_dynamic_transactions`
ADD COLUMN `RequetsID` char(38)
GENERATED ALWAYS AS (LOWER(CONCAT(
'{', HEX(LEFT(`id`, 4)), '-', HEX(MID(`id`, 5, 2)), '-', HEX(MID(`id`, 7, 2)), '-', HEX(MID(`id`, 9, 2)), '-', HEX(RIGHT(`id`, 6)), '}'
))) VIRTUAL AFTER `id`;
Настройка оплаты на сервере УКМ 4
1. В настройках магазина нужно указать путь для параметра RabbitMQ сервер как amqp://ukm:xxxxxx@192.168.25.xxx:
2. Необходимо создать сервер авторизации QR оплата:
Добавление сервера авторизации QR оплата происходит стандартным образом на странице Параметры магазина и настройка операций – Интеграция – Серверы авторизации (вкладка слева), закладка Оплаты:
В настройках требуется указать следующие обязательные для заполнения параметры:
Название – наименование сервера авторизации подставляется системой автоматически при его добавлении, однако его можно изменить вручную.
Таймаут ожидания ответа, сек – время ожидания ответа от сервера указывается вручную, в секундах. Минимальное значение (оно же – значение по умолчанию) составляет 310 секунд. Так как касса является конечным звеном в цепочке узлов, участвующих в процессе проведения транзакции оплаты, значение данного таймаута ожидания должно быть строго больше, чем значение таймаута ожидания ответа от процессинга Сбербанка.
Таймаут соединения, сек – общая продолжительность соединения с сервером Универсального интегратора (указывается вручную, в секундах).
Настройки нужно сохранить.
3. Затем надо создать вид оплаты QR оплата:
Вид оплаты для сервера авторизации QR оплата создается стандартным образом.
Специфическими являются только следующие настройки:
В поле Модуль оплаты необходимо указать значение qrsberbank_variable.
Также нужно отключить чек-бокс Сканировать QR-код покупателя:
Настройки необходимо сохранить.
4. Настройка для вывода QR-кода на консоль или дисплей покупателя:
Если получателем QR-кода является ID-касса с консолью, то QR-код выводится на консоль, если киоск – то QR-код выводится на основной дисплей; во всех остальных случаях QR-код печатается на ККТ.
Метки протоколирования
RabbitMQ – Работа с сервером RabbitMQ.
QR_PAYMENT – Средство оплаты QR оплата.
Проверка кассовой платёжной ссылки
Для осуществления QR-оплат, некоторые банки используют многоразовую платёжную ссылку СБП.
Считав сгенерированный QR-код, можно проверить соответствие считанной ссылки и ссылки в настройках Универсального интегратора, через который осуществляется взаимодействие с УКМ 4.
Проверка ссылки является специальной кассовой операцией и настраивается в разделе кассового сервера по адресу: Настройка сервера и оборудования – Оборудование ККМ – Раскладки клавиатуры (вкладка слева):
Кликнув на название используемой раскладки, можно перейти к окну с ее настройками, где необходимо выбрать клавишу, которая будет инициировать проверку кассовой ссылки, и в строке Функциональный под раскладкой нажать кнопку Поиск:
В появившемся окне нужно ввести (целиком или частично) название кассовой операции QR-оплата - проверка статической ссылки и выбрать верное соответствие из выпадающего списка:
Откроется следующее окно:
В данном окне можно настроить права на пользование кассовой операцией, после чего необходимо кликнуть Применить.
В окне с раскладкой нужно нажать кнопку Сохранить:
В окне подтверждения выполненных настроек следует выбрать опцию Да:
На touch-кассе Lillo проверка кассовой ссылки вызывается из интерфейса самой кассы:
На кассе УКМ 4 проверка статической ссылки происходит следующим образом:
| Касса УКМ-клиент | Touch-касса Lillo |
|---|---|
1. Операция проверки ссылки вызывается нажатием специально запрограммированной клавиши, после чего открывается следующее диалоговое окно: 2. Как только QR-код будет считан сканером, появится сообщение о результатах проверки: либо: | 1. Операция проверки ссылки вызывается нажатием специальной кнопки: 2. Откроется следующее диалоговое окно: 3. Как только QR-код будет считан сканером, появится сообщение о результатах проверки: либо: |
Привязка платежной ссылки к юр.лицу/магазину/кассе
Как правило, каждая платежная ссылка, содержащиеся в QR-коде, привязываются к определенному юр. лицу, магазину и кассе путем механического ввода данных об этой ссылке оператором на кассе. Сбербанк решает проблемы промышленного тиражирования кассовых платёжных ссылок в крупных торговых сетях проще: подготовкой наклеек с QR-кодом, содержащих "пустую" кассовую ссылку, ещё не соотнесенную с конкретным клиентом (юр.лицом/магазином/кассой). Сначала такие наклейки размещаются на кассах в торговом зале, а затем с помощью кассовой операции QR-оплата - проверка статической ссылки через Универсальный интегратор осуществляется запрос, который привязывает платежную ссылку, содержащуюся в каждом конкретном QR-коде, к кассе, на которой она размещена, а также к конкретному юр.лицу и магазину.
При этом, может сложиться ситуация, когда в рамках одного магазина одновременно имеются как уже привязанные платежные ссылки, так и "пустые". В таком случае, операция QR-оплата - проверка статической ссылки будет работать следующим образом:
1. Если платежная ссылка уже привязана к кассе, то произойдет описанная выше штатная процедура проверки платежной ссылки СБП.
2. Если платежная ссылка еще не закреплена за определенной кассой, Универсальный интегратор выполнит запрос на привязку ссылки и сохранит результат данного запроса в таблице конфигурации. На кассу вернется сообщение о том, что кассовая ссылка успешно привязана.





















