Реализованные сценарии работы:
- динамический 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-коду будет произведена попытка отправки запроса на сервер процессинга.
Особенности отмены оплаты по динамическому QR-коду
Отмена оплаты по динамическому QR-коду происходит через очередь Artix-Queue вне зависимости от доступности сервера и может быть выполнена:
- По таймауту.
После подтверждения операции в диалоге "Нет связи с сервером. Необходима принудительная отмена оплаты", когда отсутствует связь с сервером при отображении QR-кода. - По инициативе кассира.
Когда при отображении QR-кода была нажата "Отмена".
Особенности отмены оплаты по статическому QR-коду
Отмена оплаты при отображении статического QR-кода может быть выполнена:
- По таймауту.
Если при отображении QR-кода отсутствует связь с сервером, то будет выведено предупреждение "Нет связи с сервером. Необходима принудительная отмена оплаты". После подтверждения будет произведена попытка отправки запроса на сервер для отмены оплаты:- если связь с сервером к этому моменту восстановлена, то отмена оплаты будет успешно произведена,
- если связь с сервером к этому моменту не восстановлена, то вновь будет выведен диалог "Не удалось выполнить отмену процесса оплаты. Повторить попытку?"
- По инициативе кассира.
Если на момент отмены оплаты отсутствует связь с сервером, то будет выведен диалог "Не удалось выполнить отмену процесса оплаты. Повторить попытку?":- при нажатии "Повторить" будет произведена попытка отправки запроса на сервер для отмены оплаты:
- если связь с сервером к этому моменту восстановлена, то отмена оплаты будет успешно произведена,
- если связь с сервером к этому моменту не восстановлена, то вновь будет выведен диалог "Не удалось выполнить отмену процесса оплаты. Повторить попытку?".
- при нажатии "Отмена" будет выведен диалог "Внимание: если клиентом была произведена оплата, она не будет отменена. Клиенту потребуется обратиться в банк для возврата денежных средств. Вы уверены, что хотите выйти из процесса отмены оплаты?":
при нажатии "Да" оплата будет удалена из чека без отправки запроса на сервер для отмены оплаты,
При удалении оплаты без отправки запроса на сервер денежные средства покупателю не будут возвращены, если оплата уже была произведена.
- при нажатии "Нет" будет произведена попытка отправки запроса на сервер для отмены оплаты:
- если связь с сервером к этому моменту восстановлена, то отмена оплаты будет успешно произведена,
- если связь с сервером к этому моменту не восстановлена, то вновь будет выведен диалог "Не удалось выполнить отмену процесса оплаты. Повторить попытку?".
- при нажатии "Повторить" будет произведена попытка отправки запроса на сервер для отмены оплаты:
Печать 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
.