Модуль Sbersbp предназначен для выполнения оплаты с помощью клиентского приложения. Покупателю необходимо отсканировать QR-код с экрана кассы или распечатанного слипа. QR-код рассчитан только на 1 платёж
Типы поддерживаемых операций:
- оплата,
- отмена оплаты для чека продажи,
- возврат по чеку продажи.
Для оплаты чека продажи покупателю необходимо отсканировать QR-код и подтвердить оплату в клиентском приложении.
В случае неполучения успешного статуса оплаты кассой или других ошибках оплаты в подытоге, кассой формируется команда на отмену данного платежа. Оплата в чек при этом не добавляется. При обработке команды отмены повторно проверяется статус оплаты, и если на момент повторной проверки транзакция оплаты завершена успешно (получен статус о проведении платежа), то кассой генерируется запрос на возврат.
Обращаем внимание на то, что команды на отмену и возврат платежа могут обрабатываться банком длительное время. По вопросам возврата денежных средств просим обращаться в банк.
Также стоит учитывать следующее:
1. Информация на смартфоне клиента не является фактом подтверждения платежа и может быть недействительной.
2. Подтверждением платежа является только получение ПО Artix информации об успешном прохождении оплаты.
Конфигурирование модуля
Для использования модуля необходимо установить пакет artix-sbersbp.
aptitude install artix-sbersbp
Запрос к процессинговой системе Sbersbp выполняется при выборе специального типа оплаты. Для добавления типа оплаты необходимо выполнить конфигурирование модуля. Номер типа оплаты задается в процессе конфигурирования.
dpkg-reconfigure artix-sbersbp
Настройки процессинга задаются в файле /linuxcash/cash/paysystems/sbersbp/sbersbp.conf в секции [Main].
| Наименование | Тип данных | Описание | Примечания |
|---|---|---|---|
| url | строковый | Адрес сервера | По умолчанию http://localhost |
| timeout | целочисленный | Время ожидания ответа от сервера (в секундах) | По умолчанию 10 секунд |
| clientId | строковый | clientId для подключения | |
| clientSecret | строковый | clientSecret для подключения | |
| memberId | строковый | Идентификатор клиента | |
| tid | строковый | Идентификатор терминала | |
| currency | строковый | Код валюты операции | По умолчанию 643 |
| waitPaymentByQRCodeDuration | целочисленный | Время ожидания оплаты по QR-коду (в секундах) | По умолчанию 60 секунд |
| intervalBetweenStatusRequests | целочисленный | Интервал между запросами статуса оплаты по QR-коду (в секундах) | По умолчанию 5 секунд |
| getInfoDuration | целочисленный | Продолжительность выполнения запросов на получение информации по оплате заказа (в секундах) | По умолчанию 60 секунд |
| getInfoFrequency | целочисленный | Интервал между запросами на получение информации по оплате заказа (в секундах) | По умолчанию 10 секунд |
| specialSymbolsMask | строковый | Маска, задающая специальные символы для удаления из поля 'position_name' внутри тела запроса /creation | По умолчанию При значении по умолчанию из поля '
|
| certificatePath | строковый | Путь к сертификату | Указывается полный путь к сертификату
Пример: "/linuxcash/cash/paysystems/sbersbp/sbersbp-certificate/cert_name.p12"
|
| certificatePassword | строковый | Пароль к сертификату |
[Main] ; Настройки процессинга Сбербанк СБП ; Адрес сервера ; По умолчанию http://localhost ;url = http://localhost ; Время ожидания ответа от сервера (в секундах) ; По умолчанию 10 секунд ;timeout = 10 ; clientId для подключения ; По умолчанию "" ;clientId = "" ; clientSecret для подключения ; По умолчанию "" ;clientSecret = "" ; Идентификатор клиента ; По умолчанию "" ;memberId = "" ; Идентификатор терминала ; По умолчанию "" ;tid = "" ; Код валюты операции ; По умолчанию 643 ;currency = 643 ; Время ожидания оплаты по QR-коду (в секундах) ; По умолчанию 60 ;waitPaymentByQRCodeDuration = 60 ; Интервал между запросами статуса оплаты по QR-коду (в секундах) ; По умолчанию 5 ;intervalBetweenStatusRequests = 5 ; Продолжительность выполнения запросов на получение информации по оплате заказа (в секундах) ; По умолчанию 60 ;getInfoDuration = 60 ; Интервал между запросами на получение информации по оплате заказа (в секундах) ; По умолчанию 10 ;getInfoFrequency = 10 ; Маска, задающая специальные символы для удаления из поля 'position_name' внутри тела запроса /creation ; По умолчанию "[^а-яА-Я\w\s]" ;specialSymbolsMask = "[^а-яА-Я\w\s]" ; Путь к сертификату ; По умолчанию "" ;certificatePath = "" ; Пароль к сертификату ; По умолчанию "" ;certificatePassword = ""
Печать 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
Логирование
Журнал запросов к процессинговой системе Sbersbp ведется в основном логе /linuxcash/logs/current/terminal.log.