Описание

ПО банка "Хлынов" позволяет производить оплаты через Систему быстрых платежей как с помощью кассовой платежной ссылки (см. настройки ниже), так и по подписке

Общий алгоритм процесса оплаты при помощи кассовой платежной ссылки описан здесь.

Примечание. Если в магазине настроена оплата по кассовой ссылке банка (по статическому QR-коду), но у покупателя оформлена оплата по подписке, то касса проигнорирует наличие подписки и запросит произвести оплату по кассовой ссылке. Если же настроена оплата по подписке, а у покупателя ее нет, то касса сообщит о невозможности провести оплату по подписке и предложит оплатить чек штатным образом. 

Настройки Универсального интегратора

Описание таблиц

  • qrbankhlynov_merchants – таблица для мерчантов в формате JSON
  • qrbankhlynov_stores – таблица конфигураций для магазинов
  • qrbankhlynov_terminals – таблица конфигураций для терминалов (касс) формате JSON
  • qrbankhlynov_transactions – журнал транзакций

Структура таблиц

  • В таблице qrbankhlynov_stores находится связка между идентификатором магазина из запроса и его конфигурацией. Если магазина нет в таблице, то по умолчанию, merchant = 0:
НазваниеЗначениеОписание
StoreID
Идентификатор магазина в торговой системе
merchant
Идентификатор конфигурации из qrbankhlynov_merchants
  • В таблице qrbankhlynov_merchants находятся настройки мерчантов в формате JSON:
НазваниеЗначениеОписание
id
Идентификатор конфигурации
value

url – адрес отправки запросов

ca – корневой сертификат

cert – сертификат мерчанта

pkey – ключ мерчанта

extEntityId – параметры для регистрации кассовой ссылки

merchantId – идентификатор зарегистрированного ТСП в СБП

account – номер счета: если у ТСП есть счет по умолчанию, то можно не указывать счет/синоним счета в запросе

accAlias – ID счета: применяется, чтобы не использовать фактическое значение номера счета; альтернатива указанию account

qrTtl – время жизни ссылки в минутах; по умолчанию, 5 минут

interval  интервал между опросами в секундах; по умолчанию, 5 секунд

return_interval – интервал между запросами во время отмены; по умолчанию, 3 минуты

timeout – тайм-аут ожидания http-ответа в секундах; по умолчанию, 30 секунд

cancel_lifetime – время жизни отмены платежа в часах; по умолчанию, 0 – бесконечно

Конфигурация в формате JSON
  • В таблице qrbankhlynov_terminals находятся настройки терминалов в формате JSON:
НазваниеЗначениеОписание
TerminalID
Идентификатор терминала из запроса. Если запрос идет от УКМ, то соответствует cash_id – идентификатор кассы в торговой системе
value

payload – ссылка на QR: если есть, то высвечивается на кассе

qrcId – идентификатор QR: если нет, то вычисляется из payload

qrTtl – переопределяет из конфигурации merchant

Конфигурация в формате JSON

Дополнительная информация

После заполнения данных в БД демона необходим перезапуск:

sudo systemctl stop qrpayd.service

sudo systemctl start qrpayd.service

RabbitMQ перезапускать не надо.

________________________________________________

Название очереди RabbitMQ – qrbankhlynov.

________________________________________________

Удобный просмотр поля id в qrbankhlynov_transactions:

ALTER TABLE `qrbankhlynov_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

Настройка оплаты на сервере УКМ 4

1. В настройках магазина нужно указать путь для параметра RabbitMQ сервер как amqp://ukm:xxxxxx@192.168.25.xxx:

Измененные параметры магазина надо сохранить. 

2. Необходимо создать сервер авторизации QR оплата:

Добавление сервера авторизации QR оплата происходит стандартным образом на странице Параметры магазина и настройка операций – Интеграция – Серверы авторизации (вкладка слева), закладка Оплаты:

В настройках требуется указать следующие обязательные для заполнения параметры:

Название – наименование сервера авторизации подставляется системой автоматически при его добавлении, однако его можно изменить вручную.

Таймаут ожидания ответа, сек – время ожидания ответа от сервера указывается вручную, в секундах. Минимальное значение (оно же – значение по умолчанию) составляет 310 секунд. Так как касса является конечным звеном в цепочке узлов, участвующих в процессе проведения транзакции оплаты, значение данного таймаута ожидания должно быть строго больше, чем значение таймаута ожидания ответа от процессинга банка "Хлынов" (на 10 секунд больше значения timeout).

Таймаут соединения, сек – общая продолжительность соединения с сервером Универсального интегратора (указывается вручную, в секундах).

Настройки нужно сохранить.

3. Затем надо создать вид оплаты QR оплата:

Вид оплаты для сервера авторизации QR оплата создается стандартным образом.

Специфическими являются только следующие настройки:

В поле Модуль оплаты необходимо указать значение qrbankhlynov.

Также нужно отключить чек-бокс Сканировать QR-код покупателя:

Настройки необходимо сохранить.

4. Настройка для вывода QR-кода на консоль или дисплей покупателя:

Если получателем QR-кода является ID-касса с консолью, то QR-код выводится на консоль, если киоск – то QR-код выводится на основной дисплей; во всех остальных случаях QR-код печатается на ККТ.

Примечание. Поддержка печати QR-кода на чековой ленте осуществляется только для ККТ СП 802 и Пирит.

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