Реализованные сценарии работы:
- динамический 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
.