Описание

Помимо обыкновенной 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 перезапускать не надо.

________________________________________________

Название очереди RabbitMQqrsberbank_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. Если платежная ссылка еще не закреплена за определенной кассой, Универсальный интегратор выполнит запрос на привязку ссылки и сохранит результат данного запроса в таблице конфигурации. На кассу вернется сообщение о том, что кассовая ссылка успешно привязана.