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

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

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

  • По таймауту.
    Если при отображении QR-кода отсутствует связь с сервером, то будет выведено предупреждение "Нет связи с сервером. Необходима принудительная отмена оплаты". После подтверждения будет произведена попытка отправки запроса на сервер для отмены оплаты:
    • если связь с сервером к этому моменту восстановлена, то отмена оплаты будет успешно произведена,
    • если связь с сервером к этому моменту не восстановлена, то вновь будет выведен диалог "Не удалось выполнить отмену процесса оплаты. Повторить попытку?"
  • По инициативе кассира.
    Если на момент отмены оплаты отсутствует связь с сервером, то будет выведен диалог "Не удалось выполнить отмену процесса оплаты. Повторить попытку?":
    • при нажатии "Повторить" будет произведена попытка отправки запроса на сервер для отмены оплаты:
      • если связь с сервером к этому моменту восстановлена, то отмена оплаты будет успешно произведена,
      • если связь с сервером к этому моменту не восстановлена, то вновь будет выведен диалог "Не удалось выполнить отмену процесса оплаты. Повторить попытку?".
    • при нажатии "Отмена" будет выведен диалог "Внимание: если клиентом была произведена оплата, она не будет отменена. Клиенту потребуется обратиться в банк для возврата денежных средств. Вы уверены, что хотите выйти из процесса отмены оплаты?":
      • при нажатии "Да" оплата будет удалена из чека без отправки запроса на сервер для отмены оплаты,

        При удалении оплаты без отправки запроса на сервер денежные средства покупателю не будут возвращены, если оплата уже была произведена.

      • при нажатии "Нет" будет произведена попытка отправки запроса на сервер для отмены оплаты:
        • если связь с сервером к этому моменту восстановлена, то отмена оплаты будет успешно произведена,
        • если связь с сервером к этому моменту не восстановлена, то вновь будет выведен диалог "Не удалось выполнить отмену процесса оплаты. Повторить попытку?".

Печать 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