...
На текущий момент, QR-оплата через СБП реализована благодаря сервисам, предоставленным АО "Райффайзенбанк", АО "Газпромбанк" и АО "Банк Русский Стандарт", также доступны QR-оплаты через СБП, осуществляемые по протоколу Inpas, однако оплачивать чеки по 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.
...
Инсталляция и обновление
Инсталлятор
При установке дистрибутива, сначала нужно выбрать раздел Installation on powerful cash registers:
Затем необходимо выбрать пункт UKM4 Integrator (64 bit):
Если после разворачивания виртуальная машина получит сетевое имя, то данное имя надо прописать как 127.0.0.1 в /etc/hosts.
Примечание. Сетевое имя вручную менять нельзя!
...
| Якорь | ||||
|---|---|---|---|---|
|
1. Перейти на кассовом сервере по адресу: Магазин – Типы касс, выбрать тип кассы и нажать кнопку Настройки:
В разделе subsystems конфигурационного файла mintukm.conf (\mintukm.conf) нужно добавить следующую строку и сохранить изменения:
...
Выполненные настройки необходимо сохранить.Якорь
4. Следует добавить в конфигурационный файл payment.conf (services\payment\payment.conf) приведенную ниже строку, а затем сохранить изменения:
...
Функционал проверки платежной ссылки СБП (для банков Райффайзен, Газпром и Русский Стандарт) требует следующих настроек: требует следующих настроек:
11. В конфигурационном файле reports.conf (services\reports\reports.conf) необходимо разместить следующую строку:
...
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
}
}
} |
| Блок кода | ||||||
|---|---|---|---|---|---|---|
| ||||||
# QR-оплаты. Операция "Проверка статического QR-кода" # Настраивать так же, как и QR-оплату # { "reports.qr_checker": { params : { num = 4 # Последовательность отображения отчетов в Приложении "Отчеты". # В начале меню со списком отчётов отображаются отчёты с меньшими значениями параметра "num". name = "Проверка статического QR-кода" # Название отчёта в меню "Отчёты" description = "Проверка соответствия наклеенного на кассе QR-кода с тем, что для этой кассы настроен" # Краткое описание отчёта в этом же меню. url = "amqp://ukm:xxxxxx@192.168.24.246" modulePay = "servplus.qrsberbank_variable.payment" moduleCancel = "servplus.qrsberbank_variable.cancel" subsystem = "qrsberbank_variable" amqp = "amq.topic" amqpTimeout = 10 second } } } |
Все выполненные настройки необходимо сохранить.














