Описание

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

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

Подписка на оплату по СБП – это возможность привязывать свой банковский счёт к магазину для дальнейших покупок. Покупатель, оформивший такую подписку, может производить оплату без сканирования QR-кода и захода в приложение банка: денежные средства при оформленной подписке автоматически списываются со счёта, который пользователь выбрал в ходе привязки.

Подписка оформляется покупателем на внешнем сервисе (путём его взаимодействия с Национальной Системой Платёжных Карт). Для проведения оплаты по подписке:

  • покупатель безопасно авторизуется в чеке по динамическому QR-коду (осуществляется через систему лояльности СуперМаг Loya);
  • LOYA передает на кассу всю необходимую техническую информацию для проведения оплаты по подписке СБП;
  • касса отправляет в Универсальный интегратор полученные от LOYA сведения;
  • через взаимодействие Универсального интегратора с процессинговым центром банка "Хлынов" и Национальной Системой Платёжных Карт, производится оплата по подписке.

Для наглядности, процесс оплаты по подписке приведен ниже в виде схемы:

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

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

  • qrbankhlynov_sub_merchants – таблица для мерчантов в формате JSON
  • qrbankhlynov_sub_stores – таблица конфигураций для магазинов
  • qrbankhlynov_sub_terminals – таблица конфигураций для терминалов (касс) формате JSON
  • qrbankhlynov_sub_transactions – журнал транзакций

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

  • В таблице qrbankhlynov_sub_stores находится связка между идентификатором магазина из запроса и его конфигурацией. Если магазина нет в таблице, то по умолчанию, merchant = 0:
НазваниеЗначениеОписание
StoreID
Идентификатор магазина в торговой системе
merchant
Идентификатор конфигурации из qrbankhlynov_sub_stores
  • В таблице qrbankhlynov_sub_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_sub_merchants находятся настройки терминалов в формате JSON:
НазваниеЗначениеОписание
TerminalID
Идентификатор терминала из запроса. Если запрос идет от УКМ, то соответствует cash_id – идентификатор кассы в торговой системе
value

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

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

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

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

sudo systemctl stop qrpayd.service

sudo systemctl start qrpayd.service

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

________________________________________________

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

________________________________________________

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

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_sub.

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

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

Метки протоколирования

RabbitMQ – Работа с сервером RabbitMQ.

QR_PAYMENT – Средство оплаты QR оплата.

4. В разделе кассового сервера Справочники – Шаблоны ввода необходимо создать шаблон, благодаря которому, УКМ 4 будет принимать сведения о клиенте LOYA, авторизовавшемся в чеке по динамическому QR- коду:

В данном шаблоне, первые 6 символов отведены под динамический QR-код LOYA, а последующие 32 будут распознаваться как номер карты клиента LOYA, авторизованного по динамическому QR. Если QR-код будет не динамическим, то оплата по подписке не сработает.

Структуру шаблона можно менять, исходя из особенностей конкретной торговой сети. После создания, шаблон необходимо сохранить. 

Для активации начисления бонусных баллов LOYA при оплате по подписке банка "Хлынов", просим обратиться к команде техподдержки.