Модуль Alfasbp предназначен для выполнения оплаты с помощью клиентского приложения. Покупателю необходимо отсканировать QR-код с экрана кассы или распечатанного слипа. QR-код рассчитан только на 1 платёж.

Типы поддерживаемых операций:

  • оплата,
  • отмена оплаты для чека продажи,
  • возврат по чеку продажи.

Для оплаты чека продажи покупателю необходимо отсканировать QR-код.

В случае неполучения успешного статуса оплаты кассой или других ошибках оплаты в подытоге, кассой формируется команда на отмену данного платежа. Оплата в чек при этом не добавляется. При обработке команды отмены повторно проверяется статус оплаты, и если на момент повторной проверки транзакция оплаты завершена успешно (получен статус о проведении платежа), то кассой генерируется запрос на возврат.

Обращаем внимание на то, что команды на отмену и возврат платежа могут обрабатываться банком длительное время. По вопросам возврата денежных средств просим обращаться в банк.

Также стоит учитывать следующее:
1. Информация на смартфоне клиента не является фактом подтверждения платежа и может быть недействительной.
2. Подтверждением платежа является только получение ПО Artix информации об успешном прохождении оплаты.

Использование единой кассовой ссылки на нескольких кассах запрещено.

Для работы с СБП Альфа-Банк необходимо:

  1. Зарегистрировать клиента в СБП Альфа-Банк.
  2. Подготовить ключевые материалы.
  3. Сконфигурировать модуль СБП Альфа-Банк.

Подготовка ключевых материалов

При регистрации клиента в СБП Альфа-Банк необходимо:

  1. Сгенерировать самоподписанный сертификат private.key.

    Генерация самоподписанного сертификата
    openssl req -x509 -newkey rsa:4096 -keyout private.key -out cert.crt -nodes -days 3650
  2. Отправить сгенерированный сертификат в Альфа-Банк.

После регистрации от Альфа-Банка приходит письмо:

Пример письма от Альфа-Банка

Зарегистрировали вас на боевой среде.
Вам присвоен 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строковый

Адрес сервера

По умолчанию http://localhost

Предоставляется Альфа-Банком в уведомлении "Адрес боевого хоста".
Пример: https://api.alfasbp.ru:443

timeoutцелочисленныйВремя ожидания ответа от сервера (в секундах)По умолчанию 60 секунд
paymentByQrDurationцелочисленныйВремя ожидания оплаты заказа (в секундах)По умолчанию 300 секунд
statusRequestIntervalцелочисленныйИнтервал запроса статуса заказа (в секундах)По умолчанию 10 секунд

termNo


строковый

Идентификатор терминала

По умолчанию ""

Совпадает с логином в личном кабинете Альфа-Банка (8 цифр + "-operator").
Пример: 12345678-operator

keyNameстроковый

Имя ключа доступа

По умолчанию ""

Указывается в сообщении "Вам присвоен alias" от Альфа-Банка.
Пример: OOO_ALIAS_SBP_123 

privateKeyPathстроковый

Путь до приватного ключа для подписи данных

По умолчанию ""

Необходимо поместить сертификат private.key в указанную директорию.

Рекомендуемое значение: /linuxcash/cash/paysystems/alfasbp/private.key

certificatePathстроковый

Путь до PEM-сертификата для доступа к серверу по SSL

По умолчанию ""

Необходимо поместить PEM-файл в указанную директорию.

Должен содержать объединённый ключ и сертификат.
Пример: /linuxcash/cash/paysystems/alfasbp/cert.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строковыйКассовая ссылка

По умолчанию ""

Пример кассовой ссылки: "https://qr.nspk.ru/AS1R003PTQDQN8648MEONA66FFFFFFFF"

Пример настройки
[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

логический
  • 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

Логирование

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

  • No labels