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

  • динамический 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-коду будет произведена попытка отправки запроса на сервер процессинга.

Особенности отмены оплаты по динамическому QR-коду 

Отмена оплаты по динамическому QR-коду происходит через очередь Artix-Queue вне зависимости от доступности сервера и может быть выполнена:

Особенности отмены оплаты по статическому QR-коду

Отмена оплаты при отображении статического QR-кода может быть выполнена:

Печать QR-кода для оплаты

В кассовом ПО Artix реализована возможность печати слипа с QR-кодом для оплаты. Печать QR-кода задается параметром printQrPaymentSlip в конфигурационном файле /linuxcash/cash/conf/ncash.ini в секции [Check]:

НаименованиеТип данныхВозможные значенияОписаниеПримечания

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]:

НаименованиеТип данныхВозможные значенияОписаниеПримечания

visible

логический
  • true
  • false
Отображение QR-кода в форме оплаты по кодуПо умолчанию true


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

Логирование

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