Описание
Помимо сервиса для оплаты покупок Подели, АО "Альфа-Банк" позволяет производить оплаты через Систему быстрых платежей по кассовой платежной ссылке.
Общий алгоритм процесса оплаты при помощи кассовой платежной ссылки описан здесь.
Настройки Универсального интегратора
Описание таблиц
- qralpha_variable_stores – таблица с соответствием номера магазина в настройках Универсального интегратора и торговой системы
- qralpha_variable_merchants – таблица с настройками параметров соединения и взаимодействия с банком для каждого магазина
- qralpha_variable_terminals – таблица конфигураций для терминалов (касс)
- qralpha_variable_transactions – таблица для хранения данных по транзакциям
Структура таблиц
- qralpha_variable_stores:
Название | Значение | Описание |
---|---|---|
StoreID | string(128) | Идентификатор магазина в торговой системе |
merchant | int | Идентификатор конфигурации из таблицы qralpha_variable_merchants |
- qralpha_variable_merchants:
Название | Значение | Описание | |
---|---|---|---|
id | int | ID настройки для магазина. 0 – общая настройка для всех магазинов; значение зарезервировано | |
value | string в формате JSON | Хранит настройки в формате JSON: | |
url | Адрес взаимодействия с банком | ||
pkey_alias | Алиас ключа для подписи запроса | ||
pkey | Ключ для подписи запроса | ||
ssl_local_cert | Локальный сертификат для организации соединения | ||
ssl_pkey | Закрытый ключ для организации соединения | ||
qrTtl | Время жизни запроса на оплату в минутах; значение по умолчанию = 5 | ||
interval | Интервал повторения запроса (например, запроса статуса) в секундах; значение по умолчанию = 5 | ||
timeout | Таймаут сетевого соединения с банком | ||
cancel_lifetim | Время жизни запроса на отмену транзакции в часах; значение по умолчанию = 0 (бесконечно) |
- qralpha_variable_terminals:
Название | Значение | Описание | |
---|---|---|---|
TerminalID | string(128) | ID кассы в торговой системе | |
value | string в формате JSON | Хранит настройки в формате JSON: | |
payload | Ссылка для отображения | ||
qrcId | ID ссылки | ||
qrTtl | Время жизни запроса на оплату в минутах; значение по умолчанию = 5 | ||
TerminalNo | Идентификатор терминала в системе СБП |
- qralpha_variable_transactions:
Название | Значение | Описание |
---|---|---|
op_date | datetime | Дата обновления данных |
id | bin | Уникальный идентификатор операции в системе Универсального интегратора в двоичном виде |
cancel | bin | Уникальный идентификатор отмены операции в системе Универсального интегратора в двоичном виде |
data | string в формате JSON | Данные по транзакции; фактически хранит ответ от банка без поля message и прочих ненужных полей |
Дополнительная информация
После заполнения данных в БД демона необходим перезапуск:
sudo systemctl stop qrpayd.service sudo systemctl start qrpayd.service |
---|
RabbitMQ перезапускать не надо.
________________________________________________
Название очереди RabbitMQ – qralpha_variable.
Важно! В связи с нестабильностью тестовой среды на стороне банка, на сервере интегратора единоразово потребуется прописать значение -i в следующей строке:
ExecStart=/usr/local/qrpay/qrpayd -d qrpayd -u qrpay -p xxxxxx
sudo mcedit /etc/systemd/system/qrpayd.service
ExecStart=/usr/local/qrpay/qrpayd -d qrpayd -u qrpay -p xxxxxx -i
sudo systemctl daemon-reload
sudo systemctl restart qrpayd.service
Настройки авторизации на кассовом сервере УКМ 4
Настройка оплаты на сервере УКМ 4
1. В настройках магазина нужно указать путь для параметра RabbitMQ сервер как amqp://ukm:xxxxxx@192.168.25.xxx:
Измененные параметры магазина надо сохранить.
2. Необходимо создать сервер авторизации QR оплата:
Добавление сервера авторизации QR оплата происходит стандартным образом на странице Параметры магазина и настройка операций – Интеграция – Серверы авторизации (вкладка слева), закладка Оплаты:
В настройках требуется указать следующие обязательные для заполнения параметры:
Название – наименование сервера авторизации подставляется системой автоматически при его добавлении, однако его можно изменить вручную.
Таймаут ожидания ответа, сек – время ожидания ответа от сервера указывается вручную, в секундах. Минимальное значение (оно же – значение по умолчанию) составляет 310 секунд. Так как касса является конечным звеном в цепочке узлов, участвующих в процессе проведения транзакции оплаты, значение данного таймаута ожидания должно быть строго больше, чем значение таймаута ожидания ответа от процессинга Альфа-Банка (на 10 секунд больше, чем значение operation_wait_timeout).
Настройки нужно сохранить.
3. Затем надо создать вид оплаты QR оплата:
Вид оплаты для сервера авторизации QR оплата создается стандартным образом.
Специфическими являются только следующие настройки:
В поле Модуль оплаты необходимо указать значение qralpha_variable.
Также нужно отключить чек-бокс Сканировать QR-код покупателя:
Настройки необходимо сохранить.
4. Для корректной работы печати QR кода на фискальном устройстве, следует использовать стандартный профиль дизайна чеков – Сервис плюс:
5. Опциональная настройка для вывода 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. Если платежная ссылка еще не закреплена за определенной кассой, Универсальный интегратор выполнит запрос на привязку ссылки:
Сразу после считывания QR-кода, касса запросит ввод номера терминала:
Номера терминалов строго индивидуальны и генерируются на стороне Альфа-Банка при регистрации сделки СБП. Количество номеров терминалов выдается банком ритейлеру по количеству используемых в магазине КСО/киосков/касс. За корректность используемых номеров терминалов полностью ответственен ритейлер.
Номер терминала нужно ввести вручную, после чего – нажать Ввод:
После нажатия кнопки Ввод, произойдет привязка кассовой платежной ссылки. Универсальный интегратор сохранит результат данного запроса в таблице конфигурации. На кассу вернется сообщение о том, что кассовая ссылка успешно привязана:
В дальнейшем, при проверке валидности данного QR-кода, окно ввода номера терминала выводиться не будет и проверка будет осуществляться штатным образом.