...
На текущий момент, QR-оплата через СБП реализована благодаря сервисам, предоставленным АО "Райффайзенбанк", АО "Газпромбанк" и АО "Банк Русский Стандарт", также доступны QR-оплаты через СБП, осуществляемые по протоколу Inpas, однако оплачивать чеки по QR-коду могут покупатели-клиенты любого банка. Функционал поддерживает следующие операции:
...
Информация в личном кабинете банковского приложения появляется по факту прохождения платежа, то есть, даже если кассовая система по каким-то причинам не получит данные об успешной QR-оплате от банковского сервиса, платеж будет зачислен и отображен в личном кабинете банка в любом случае.
Запись реквизитов QR-оплаты производится через запятую в поле qrRequisites конвертера Экспорт XML. Эти данные можно использовать для сверки между зарегистрированными оплатами СБП в торговой сети и оплатами в предоставляемой банком выписке.
Якорь | ||||
---|---|---|---|---|
|
Возврат оплаты через QR-код, как правило, осуществляется при оформлении возврата по чеку.
...
- Кассир формирует чек.
- Кассир переходит в режим оплаты.
- Кассир уточняет у покупателя способ оплаты.
- Покупатель сообщает, что будет оплачивать покупку с использованием QR-кода.
- Кассир выбирает вид оплаты по QR-коду и, при необходимости, изменяет сумму оплаты.
- Касса отправляет запрос в Универсальный интегратор.
- Универсальный интегратор отправляет запрос на создание заказа в процессинг банка.
- Если процессинг банка вернул положительный ответ, Универсальный интегратор возвращает этот ответ на кассу.
- Покупатель считывает QR-код с наклейки мобильным приложением банка.
- Касса выводит кассиру диалоговое окно с просьбой подтвердить, что покупатель успешно сканировал QR-код и выполнил оплату.
- Кассир подтверждает сканирование QR-кода и оплату.
- Касса отправляет запрос в Универсальный интегратор.
- Универсальный интегратор отправляет запрос на получение статуса заказа в процессинг банка.
- Процессинг банка возвращает ответ в Универсальный интегратор.
- Универсальный интегратор возвращает ответ на кассу.
- Касса получает ответ о статусе проведения платежа: если получено подтверждение ответа, касса добавляет QR-оплату в чек.
- Касса закрывает чек.
При получении отрицательного ответа от любой из систем или в случае невозможности выполнить QR-оплату на стороне покупателя, платеж отменяется и кассир предлагает клиенту выбрать другой способ оплаты чека.
Якорь linkcheck linkcheck
Проверка платёжной ссылки СБП (только для банков Райффайзен, Газпром, Русский Стандарт и Альфа)
linkcheck | |
linkcheck |
Для осуществления QR-оплат, некоторые банки используют многоразовую платёжную ссылку СБП.
Считав сгенерированный QR-код, можно проверить соответствие считанной ссылки и ссылки в настройках Универсального интегратора, через который осуществляется взаимодействие с УКМ 5.
На кассе УКМ 5 проверка такой ссылки происходит следующим образом:
Клавиатурная касса | Touch-касса |
---|---|
1. Проверка платежной ссылки осуществляется через меню отчетов кассы: | |
2. В меню отчетов необходимо выбрать опцию Проверка статического QR-кода: | |
3. Для проверки QR-кода, его необходимо считать сканером: | |
4. Как только QR-код будет считан сканером, появится сообщение о результатах проверки: | |
либо: | либо: |
5. Если проверку прервать нажатием кнопки Отмена, то касса отобразит соответствующее оповещение: |
Якорь | ||||
---|---|---|---|---|
|
Как правило, каждая платежная ссылка, содержащаяся в QR-коде, привязываются к определенному юр. лицу, магазину и кассе путем механического ввода данных об этой ссылке оператором на кассе. Некоторые банки решают проблему промышленного тиражирования кассовых платёжных ссылок в крупных торговых сетях проще: подготовкой наклеек с QR-кодом, содержащих "пустую" кассовую ссылку, ещё не соотнесенную с конкретным клиентом (юр.лицом/магазином/кассой). Сначала такие наклейки размещаются на кассах в торговом зале, а затем с помощью отчета Проверка статического QR-кода через Универсальный интегратор осуществляется запрос, который привязывает платежную ссылку, содержащуюся в каждом конкретном QR-коде, к кассе, на которой она размещена, а также к конкретному юр.лицу и магазину.
При этом, может сложиться ситуация, когда в рамках одного магазина одновременно имеются как уже привязанные платежные ссылки, так и "пустые". В таком случае, отчет Проверка статического QR-кода будет работать следующим образом:
1. Если платежная ссылка уже привязана к кассе, то произойдет описанная выше штатная процедура проверки платежной ссылки СБП.
2. Если платежная ссылка еще не закреплена за определенной кассой, Универсальный интегратор выполнит запрос на привязку ссылки и сохранит результат данного запроса в таблице конфигурации. На кассу вернется сообщение о том, что кассовая ссылка успешно привязана.
Якорь | ||||
---|---|---|---|---|
|
...
Если данное условие выполнено, то необходимо перейти к установке и настройке специального сервера – Универсальный интегратор, через который обрабатываются все QR-платежи в УКМ 5. Затем выполняются настройки на кассовом сервере УКМ 5.
Установка и настройка Универсального интегратора
Технические требования
- двухъядерный процессор 2 ГГц;
- системная память 4 GiB RAM;
- 25 Гб свободного пространства на жестком диске.
В самом магазине сервер рекомендуется располагать как можно ближе к кассам, во избежание проблем со связью.
Как проверить версию
|
Дистрибутив
Актуальный образ выложен на FTP с последней версией УКМ 4.
Для стабильной работы потребуется последняя актуальная версия интегратора.
Инсталляция и обновление
Инсталлятор
При установке дистрибутива, сначала нужно выбрать раздел Installation on powerful cash registers:
Затем необходимо выбрать пункт UKM4 Integrator (64 bit):
Если после разворачивания виртуальная машина получит сетевое имя, то данное имя надо прописать как 127.0.0.1 в /etc/hosts.
Примечание. Сетевое имя вручную менять нельзя!
В качестве базы данных используется MariaDB.
Обновление
Файл qrpay-update.sh необходимо поместить на сервер Универсального интегратора и дать ему права на исполнение:
Блок кода | ||||
---|---|---|---|---|
| ||||
chmod +x ./qrpay-update-amd64.sh |
Затем нужно выполнить установку:
Блок кода | ||||
---|---|---|---|---|
| ||||
sudo systemctl stop qrpayd.service sudo ./qrpay-update-amd64.sh sudo systemctl start qrpayd.service |
Логины/пароли
- Пользователь системы: qrpay/xxxxxx.
- Пользователь MariaDB: qrpay@localhost/xxxxxx.
- Пользователи RabbitMQ:
- admin/admin для администрирования;
- ukm/xxxxxx для доступа с кассы.
Пояснения к паролям RabbitMQ
- Пользователь admin c паролем admin в процессе работы системы не требуется, его можно удалить или заменить пароль на любой устраивающий.
- Терминалы подключаются с помощью пользователя ukm с паролем xxxxxx, но его можно поменять на любой другой, либо создать нового пользователя:
Блок кода language scala theme RDark rabbitmqctl add_user {пользователь} {пароль} rabbitmqctl set_permissions -p / {пользователь} ".*" ".*" ".*" Но требуется прописать этого пользователя с паролем в настройках магазина УКМ 4, можно для каждого магазина прописать своего пользователя.
- Демон qrpay подключается с помощью специальной учетной записи, только с того же компьютера.
Веб от RabbitMQ
<ip>:15672
Rabbit логин/пароль: admin/admin
Настройка сети
Для настройки сети, необходимо поменять конфигурационный файл netplan и перезагрузиться.
...
Якорь | ||||
---|---|---|---|---|
|
1. Перейти на кассовом сервере по адресу: Магазин – Типы касс, выбрать тип кассы и нажать кнопку Настройки:
В разделе subsystems конфигурационного файла mintukm.conf (\mintukm.conf) нужно добавить следующую строку и сохранить изменения:
...
Примечание. В случае настройки функционала QR Сбербанк SberPay (customer), помимо выбора значений параметров modulePay, moduleCancel и subsystem, также необходимо установить параметр scanQRCode = true, после чего сохранить файл: Якорь custqr custqr
4. Следует добавить в конфигурационный файл payment.conf (services\payment\payment.conf) приведенную ниже строку, а затем сохранить изменения:
...
При оплате по QR-коду можно передавать в Универсальный интегратор значение поля Код ЦФО.
Дополнительные настройки для киосков и касс самообслуживания
В дополнение к перечисленным выше настройкам, обязательным для любых касс, для касс самообслуживания УКМ 5 выполняется специфичная настройка, отвечающая за отображение на экране анимации при оплате по QR-коду.
Настройка выполняется в конфигурационном файле sale.conf (applications\sale\sale.conf):
В раздел bl данного файла нужно добавить следующий фрагмент, после чего сохранить файл:
Блок кода | ||||
---|---|---|---|---|
| ||||
kiosk2: { negativeSoundEffects = false #приоритет 1 voiceSoundEffects = true #приоритет 2 positiveEffect = true positiveAnimationTimer=[500, 1000, 500] extendedRecognition = true # Расширенное распознавание, доступно при наличие лицензии киоск2 isAnimatedIcons = true emptyReceiptSlideShow = [scanBarCode, vision, QRPay] useVideoSelfie = true addItemMultiplier = 1.5 } |
Якорь linkset linkset
Проверка многоразовой платёжной ссылки СБП
linkset | |
linkset |
Функционал проверки платежной ссылки СБП (для банков Райффайзен, Газпром и Русский Стандарт) требует следующих настроек:
1. В конфигурационном файле reports.conf (services\reports\reports.conf) необходимо разместить следующую строку:
Блок кода | ||||
---|---|---|---|---|
| ||||
# ,{ include file("conf/services/reports/qr_checker.conf")} # Проверка статического QR-кода |
2. В разделе services\reports нужно разместить конфигурационный файл qr_checker.conf. Он имеет несколько разный вид, в зависимости от конкретного банка: параметры modulePay, moduleCancel и subsystem в данном файле следует выставить идентичными значениям этих же параметров в настройках QR-оплаты:
Блок кода | ||||||
---|---|---|---|---|---|---|
| ||||||
# QR-оплаты. Операция "Проверка статического QR-кода" # Настраивать так же, как и QR-оплату # { "reports.qr_checker": { params : { num = 4 # Последовательность отображения отчетов в Приложении "Отчеты". # В начале меню со списком отчётов отображаются отчёты с меньшими значениями параметра "num". name = "Проверка статического QR-кода" # Название отчёта в меню "Отчёты" description = "Проверка соответствия наклеенного на кассе QR-кода с тем, что для этой кассы настроен" # Краткое описание отчёта в этом же меню. url = "amqp://ukm:xxxxxx@192.168.25.93" modulePay = "servplus.qrgazprom_variable.payment" moduleCancel = "servplus.qrgazprom_variable.cancel" subsystem = "qrgazprom_variable" amqp = "amq.topic" amqpTimeout = 10 second } } } |
...
Блок кода | ||||||
---|---|---|---|---|---|---|
| ||||||
# QR-оплаты. Операция "Проверка статического QR-кода" # Настраивать так же, как и QR-оплату # { "reports.qr_checker": { params : { num = 4 # Последовательность отображения отчетов в Приложении "Отчеты". # В начале меню со списком отчётов отображаются отчёты с меньшими значениями параметра "num". name = "Проверка QR-static Хлынов" # Название отчёта в меню "Отчёты" description = "Проверка соответствия наклеенного на кассе QR-кода с тем, что для этой кассы настроен" # Краткое описание отчёта в этом же меню. url = "amqp://ukm:xxxxxx@192.168.24.154" modulePay = "servplus.qrbankhlynov.payment" moduleCancel = "servplus.qrbankhlynov.cancel" subsystem = "qrbankhlynov" amqp = "amq.topic" amqpTimeout = 50 second } } } |
Все выполненные настройки необходимо сохранить.