Реализованные сценарии работы:
- динамический QR-код (QRDynamic),
- работа с кассовой ссылкой СБП (QRVariable).
Модуль Gpbsbp предназначен для выполнения оплаты с помощью клиентского приложения. Покупателю необходимо отсканировать QR-код с экрана кассы или распечатанного слипа. QR-код рассчитан только на 1 платеж.
Типы поддерживаемых операций:
- оплата,
- отмена оплаты,
- возврат по чеку продажи.
Для сценария работы с динамическим QR-кодом в случае неполучения успешного статуса оплаты кассой или других ошибках оплаты в подытоге, кассой формируется команда на отмену данного платежа. Оплата в чек при этом не добавляется. При обработке команды отмены повторно проверяется статус оплаты, и если на момент повторной проверки транзакция оплаты завершена успешно (получен статус о проведении платежа), то кассой генерируется запрос на возврат.
Обращаем внимание на то, что команды на отмену и возврат платежа могут обрабатываться банком длительное время. По вопросам возврата денежных средств просим обращаться в банк.
Также стоит учитывать следующее:
1. Информация на смартфоне клиента не является фактом подтверждения платежа и может быть недействительной.
2. Подтверждением платежа является только получение ПО Artix информации об успешном прохождении оплаты.
Конфигурирование модуля
Для использования модуля необходимо установить пакет artix-gpbsbp
командой:
aptitude install artix-gpbsbp
Запрос к платежной системе GpbSbp выполняется при выборе специального типа оплаты. Для добавления типа оплаты необходимо выполнить конфигурирование модуля. Номер типа оплаты задается в процессе конфигурирования.
dpkg-reconfigure artix-gpbsbp
Настройки процессинга задаются в файле /linuxcash/cash/paysystems/gpbsbp/config.ini
в секции [GpbSbp]
.
Наименование | Тип данных | Описание | Примечания |
---|---|---|---|
url | строковый | Url адрес сервера | По умолчанию
http://localhost
|
merchantId | строковый | Идентификатор зарегистрированного ТСП в СБП | |
account | строковый | Банковский счет | |
qrLifetime | целочисленный | Время жизни QR-кода в минутах | По умолчанию 5 |
timeout | целочисленный | Таймаут ожидания запроса в секундах | По умолчанию 10 |
waitPaymentByQRCodeDuration | целочисленный | Время ожидания статуса оплаты в секундах | По умолчанию 300 |
intervalBetweenStatusRequests | целочисленный | Интервал между запросами статуса оплаты в секундах | По умолчанию 10 |
paymentPurposeMask | строковый | Маска для поля назначения платежа | По умолчанию |
[GpbSbp] ; Url адрес сервера ; По умолчанию http://localhost ;url=http://localhost ; Идентификатор зарегистрированного ТСП в СБП ;merchantId= ; Банковский счет ;account= ; Время жизни QR-кода в минутах ; По умолчанию 5 ;qrLifetime=5 ; Таймаут ожидания запроса в секундах ; По умолчанию 10 ;timeout=10 ; Время ожидания статуса оплаты в секундах ; По умолчанию 300 ;waitPaymentByQRCodeDuration=300 ; Интервал между запросами статуса оплаты в секундах ; По умолчанию 10 ;intervalBetweenStatusRequests=10 ; Маска для поля назначения платежа ; По умолчанию %(document.shopCode[04d])%(document.cashCode[02d])%(document.shift[04d])%(document.num[07d])%(document.dateTimeBeg[hhmmss]) ;paymentPurposeMask = "%(document.shopCode[04d])%(document.cashCode[02d])%(document.shift[04d])%(document.num[07d])%(document.dateTimeBeg[hhmmss])"
Для передачи номера карты лояльности в поле назначения платежа необходимо добавить к выражению для маски %(cardRecord.number[s]):
paymentPurposeMask = "%(document.shopCode[04d])%(document.cashCode[02d])%(document.shift[04d])%(document.num[07d])%(document.dateTimeBeg[hhmmss])%(cardRecord.number[s])"
Настройки для работы со статическим QR-кодом задаются в файле /linuxcash/cash/paysystems/gpbsbp/config.ini
в секции [GpbSbp.StaticQr]
.
Наименование | Тип данных | Описание | Примечания |
---|---|---|---|
id | строковый | Идентификатор | Процессинг использует кассовую ссылку только если заполнены оба параметра |
payload | строковый | Данные |
[GpbSbp.StaticQr] ; Данные кассовой ссылки (статичекий QR код). Процессинг использует кассовую ссылку только если заполнены оба параметра ; Идентификатор ;id= ; Данные ;payload=
Настройки для авторизации на сервере задаются в файле /linuxcash/cash/paysystems/gpbsbp/config.ini
в секции [GpbSbp.Authentication]
.
Настройки обязательны для заполнения.
Наименование | Тип данных | Описание | Примечания |
---|---|---|---|
login | строковый | Логин | Для авторизации должны быть заполнены оба параметра |
password | строковый | Пароль |
[GpbSbp.Authentication] ; Данные авторизации на сервере. Авторизация используется только если заполнены оба параметра ; Логин ;login= ; Пароль ;password=
Отмена оплаты по QR-коду
Для отмены оплаты по динамическому и статическому QR-коду будет произведена попытка отправки запроса на сервер процессинга.
Отмена оплаты происходит через очередь Artix-Queue вне зависимости от доступности сервера и может быть выполнена:
- По таймауту.
- По инициативе кассира.
При отсутствии связи с сервером будет выведено предупреждение "Нет связи с сервером. Если была произведена оплата по QR-коду, то возврат денежных средств будет выполнен после восстановления связи". Сообщение с данными об оплате отправляется в очередь Artix-Queue.
При удалении оплаты без отправки запроса на сервер денежные средства покупателю не будут возвращены, если оплата уже была произведена.
При восстановлении связи сообщение удаляется из очереди.
Регистрация кассовой ссылки
В кассовом ПО Artix существует возможность регистрации кассовой ссылки для оплаты по статическому QR-коду. Для регистрации кассовой ссылки в утилите администрирования Yuki необходимо на пункт меню настроить действие "Регистрация кассовой ссылки" с командой COMMAND_PROCESSING_REGSTATICQR
. О настройке действий подробнее можно прочитать в разделе "Настройка действий".
При вызове действия "Регистрация кассовой ссылки" на экран будет выведен диалог о необходимости ввода кассовой ссылки с помощью сканирования. Если идентификатор кассовой ссылки отсканирован корректно, то на экран будет выведено сообщение об успешной привязке кассовой ссылки, после чего будет создан конфигурационный файл /linuxcash/cash/paysystems/gpbsbp/staticqr.ini
с настройкой.
[GpbSbp.StaticQr] payload = https://qr.nspk.ru/AS1F000TM1MQ5PDP8LA9FLEECA0PCNAV?type=01&bank=100000000001&crc=6A4E id = AS1F000TM1MQ5PDP8LA9FLEECA0PCNAV
После регистрации кассовой ссылки необходимо перезапустить кассовое ПО. В противном случае генерация QR-кода будет выполняться по старой ссылке.
Настройка staticQr
в конфигурационном файле /linuxcash/cash/paysystems/gpbsbp/staticqr.ini
имеет приоритет над настройкой id
в конфигурационном файле /linuxcash/cash/paysystems/gpbsbp/config.ini
.
Печать QR-кода для оплаты
В кассовом ПО Artix реализована возможность печати слипа с QR-кодом для оплаты. Печать QR-кода задается параметром printQrPaymentSlip
в конфигурационном файле
/linuxcash/cash/conf/ncash.ini
в секции [Check]
:
- при значении
true
будет осуществлена печать QR-кода на слипе, затем на экран будет выведен диалог "Отсканируйте QR-код для оплаты", - при значении
false
на экран будет выведен диалог "Отсканируйте QR-код для оплаты", печать слипа с QR-кодом не осуществляется.
Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
printQrPaymentSlip | логический |
| Печатать слип с QR-кодом для оплаты | По умолчанию false |
[Check] ... ; Печатать слип с QR-кодом для оплаты ; По умолчанию false ;printQrPaymentSlip = false
Отображение QR-кода на экране
В кассовом ПО Artix реализована возможность отображения QR-кода в форме оплаты. Отображение QR-кода задается параметром visible
в конфигурационном файле /linuxcash/cash/conf/ncash.ini
.d/gui.ini
в секции [UI.ScanQrCodeForm.qrCode]
:
- при значении
true
на экран будет выведен диалог сканирования QR-кода, QR-код отображен в диалоге, - при значении
false
на экран будет выведен диалог сканирования QR-кода, QR-код не отображен в диалоге.
Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
visible | логический |
| Отображение QR-кода в форме оплаты по коду | По умолчанию true |
[UI.ScanQrCodeForm.qrCode] ; Отображение QR-кода в форме оплаты по коду ; По умолчанию true ;visible = true
Логирование
Журнал запросов к процессинговой системе Gpbsbp ведется в основном логе /linuxcash/logs/current/terminal.log
.