Модуль Alfasbp предназначен для выполнения оплаты с помощью клиентского приложения. Покупателю необходимо отсканировать QR-код с экрана кассы или распечатанного слипа. QR-код рассчитан только на 1 платёж.
Типы поддерживаемых операций:
- оплата,
- отмена оплаты для чека продажи,
- возврат по чеку продажи.
Для оплаты чека продажи покупателю необходимо отсканировать QR-код.
В случае неполучения успешного статуса оплаты кассой или других ошибках оплаты в подытоге, кассой формируется команда на отмену данного платежа. Оплата в чек при этом не добавляется. При обработке команды отмены повторно проверяется статус оплаты, и если на момент повторной проверки транзакция оплаты завершена успешно (получен статус о проведении платежа), то кассой генерируется запрос на возврат.
Обращаем внимание на то, что команды на отмену и возврат платежа могут обрабатываться банком длительное время. По вопросам возврата денежных средств просим обращаться в банк.
Также стоит учитывать следующее:
1. Информация на смартфоне клиента не является фактом подтверждения платежа и может быть недействительной.
2. Подтверждением платежа является только получение ПО Artix информации об успешном прохождении оплаты.
Использование единой кассовой ссылки на нескольких кассах запрещено.
Для работы с СБП Альфа-Банк необходимо:
- Зарегистрировать клиента в СБП Альфа-Банк.
- Подготовить ключевые материалы.
- Сконфигурировать модуль СБП Альфа-Банк.
Подготовка ключевых материалов
При регистрации клиента в СБП Альфа-Банк необходимо:
Сгенерировать самоподписанный сертификат private.key.
Генерация самоподписанного сертификатаopenssl req -x509 -newkey rsa:4096 -keyout private.key -out cert.crt -nodes -days 3650
- Отправить сгенерированный сертификат в Альфа-Банк.
После регистрации от Альфа-Банка приходит письмо:
Зарегистрировали вас на боевой среде.
Вам присвоен alias: OOO_ALIAS_SBP_123
Во вложении клиентский сертификат для поднятия MTLS соединения, а также промежуточный и удостоверяющий сертификат - root.
Удостоверяющий и промежуточный сертификаты требуется использовать, если ваше ПО будет пытаться верифицировать непосредственно сертификат для поднятия MTLS соединения.
Пароль от архива: Password
Пароль от архива с MTLS : Password
Адрес боевого хоста: https://api.alfasbp.ru:443
- Для_поднятия_MTLS_-_ИНН_<Данные ИНН клиента>.zip
- OOO_ALIAS_SBP_123.crt
- OOO_ALIAS_SBP_123.key
- Удостоверяющий_root_и_промежуточный_сертификаты_для_продовой_среды.zip
- c2b-ca.crt
- root-ca.crt
На основании полученных данных от Альфа-Банка необходимо сгенерировать PEM-файл.
Для этого необходимо объединить сертификат (OOO_ALIAS_SBP_123.key) и ключ (OOO_ALIAS_SBP_123.crt) из файла "Для поднятия MTLS соединения" в один файл:
cat OOO_ALIAS_SBP_123.key OOO_ALIAS_SBP_123.crt > cert.pem
Конфигурирование модуля
Для использования модуля необходимо установить пакет artix-alfasbp
.
aptitude install artix-alfasbp
Запрос к процессинговой системе Alfasbp
выполняется при выборе специального типа оплаты. Для добавления типа оплаты необходимо выполнить конфигурирование модуля. Номер типа оплаты задается в процессе конфигурирования.
dpkg-reconfigure artix-alfasbp
Настройки процессинга задаются в файле /linuxcash/cash/paysystems/alfasbp/alfasbp.ini
в секции [AlfaSbp]
.
Наименование | Тип данных | Описание | Примечания |
---|---|---|---|
url | строковый | Адрес сервера | По умолчанию Предоставляется Альфа-Банком в уведомлении "Адрес боевого хоста". |
timeout | целочисленный | Время ожидания ответа от сервера (в секундах) | По умолчанию 60 секунд |
paymentByQrDuration | целочисленный | Время ожидания оплаты заказа (в секундах) | По умолчанию 300 секунд |
statusRequestInterval | целочисленный | Интервал запроса статуса заказа (в секундах) | По умолчанию 10 секунд |
termNo | строковый | Идентификатор терминала | По умолчанию Совпадает с логином в личном кабинете Альфа-Банка (8 цифр + "-operator").
|
keyName | строковый | Имя ключа доступа | По умолчанию Указывается в сообщении "Вам присвоен alias" от Альфа-Банка.
|
privateKeyPath | строковый | Путь до приватного ключа для подписи данных | По умолчанию Необходимо поместить сертификат private.key в указанную директорию. Рекомендуемое значение:
|
certificatePath | строковый | Путь до PEM-сертификата для доступа к серверу по SSL | По умолчанию Необходимо поместить PEM-файл в указанную директорию. Должен содержать объединённый ключ и сертификат. |
certificatePassword | строковый | Пароль для сертификата | По умолчанию "" |
paymentPurposeMask | строковый | Маска назначения платежа | По умолчанию "%(document.shopCode[04d])%(document.cashCode[02d])%(document.shift[04d])%(document.num[07d])%(document.dateTimeBeg[hhmmss])" |
currency | строковый | Валюта | По умолчанию "RUB" |
[AlfaSbp] ; Настройки процессинга Альфа СБП ; Адрес сервера ; По умолчанию http://localhost ;url = http://localhost ; Время ожидания ответа от сервера (в секундах) ; По умолчанию 60 секунд ;timeout = 60 ; Время ожидания оплаты заказа (в секундах) ; По умолчанию 300 секунд ;paymentByQrDuration = 300 ; Интервал запроса статуса заказа (в секундах) ; По умолчанию 10 секунд ;statusRequestInterval = 10 ; Идентификатор терминала ; По умолчанию "" ;termNo = "" ; Имя ключа доступа ; По умолчанию "" ;keyName = "" ; Путь до приватного ключа для подписи данных ; По умолчанию "" ;privateKeyPath =. ; Путь до сертификата для доступа к серверу по SSL ; По умолчанию "" ;certificatePath = "" ; Пароль для сертификата ; По умолчанию "" ;certificatePassword = "" ; Маска назначения платежа ; По умолчанию "%(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])" ; Валюта ; По умолчанию "RUB" ;currency = "RUB"
Для оплаты по статическому QR-коду необходимо задать параметр staticQr
в конфигурационном файле /linuxcash/cash/paysystems/alfasbp/alfasbp.ini
в секции [AlfaSbp
].
Наименование | Тип данных | Описание | Примечания |
---|---|---|---|
staticQr | строковый | Кассовая ссылка | По умолчанию Пример кассовой ссылки: " |
[AlfaSbp] ... ; Кассовая ссылка вида "https://qr.nspk.ru/AS1R003PTQDQN8648MEONA66FFFFFFFF" ; По умолчанию "" ;staticQr = ""
Регистрация кассовой ссылки
В кассовом ПО Artix существует возможность регистрации кассовой ссылки для оплаты по статическому QR-коду. Для регистрации кассовой ссылки в утилите администрирования Yuki необходимо на пункт меню настроить действие "Регистрация кассовой ссылки" с командой COMMAND_PROCESSING_REGSTATICQR
. О настройке действий подробнее можно прочитать в разделе "Настройка действий".
При вызове действия "Регистрация кассовой ссылки" на экран будет выведен диалог о необходимости ввода кассовой ссылки с помощью сканирования. Если идентификатор кассовой ссылки отсканирован корректно, то на экран будет выведено сообщение об успешной привязке кассовой ссылки, после чего будет создан конфигурационный файл /linuxcash/cash/paysystems/alfasbp/staticqr.ini
с настройкой.
[AlfaSbp] staticQr = https://qr.nspk.ru/AS1R003PTQDQN8648MEONA66K5H9Q3HV
После регистрации кассовой ссылки необходимо перезапустить кассовое ПО. В противном случае генерация QR-кода будет выполняться по старой ссылке.
Настройка staticQr
в конфигурационном файле /linuxcash/cash/paysystems/alfasbp/staticqr.ini
имеет приоритет над настройкой staticQr
в конфигурационном файле /linuxcash/cash/paysystems/alfasbp/alfasbp.ini
.
Печать 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
Логирование
Журнал запросов к процессинговой системе Alfasbp ведется в основном логе /linuxcash/logs/current/terminal.log
.