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

  • динамический 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