Реализованные сценарии работы:

  • динамический 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строковыйМаска для поля назначения платежа

По умолчанию %(document.shopCode[04d])%(document.cashCode[02d])%(document.shift[04d])%(document.num[07d])%(document.dateTimeBeg[hhmmss])

Пример настройки
[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

логический
  • true
  • false
Печатать слип с 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

логический
  • true
  • false
Отображение QR-кода в форме оплаты по кодуПо умолчанию true
Пример настройки
[UI.ScanQrCodeForm.qrCode]
; Отображение QR-кода в форме оплаты по коду
; По умолчанию true
;visible = true

Логирование

Журнал запросов к процессинговой системе Gpbsbp ведется в основном логе /linuxcash/logs/current/terminal.log.

  • No labels