Начиная с версии 4.6.222 реализовано прерывание операции оплаты с кассы. 

Для корректной работы функционала необходимо:

  • клиентское приложение sb_pilot версии 33,
  • терминал с прошивкой версии 33.xx.xx.


Начиная с версии 4.6.237 реализована оплата по биометрии через процессинг Сбербанк.

Начиная с версии 4.6.239 реализована возможность задавать таймаут ожидания ответа от пин-пада при сверке итогов.

Модуль Сбербанк предназначен для выполнения оплаты платежными картами с использованием банковских терминалов и ПИН клавиатур, которые предоставлены Сбербанком России.

Модуль представляет собой клиентское приложение sb_pilot и набор файлов и библиотек, необходимых для обращения к процессинговому центру. При проведении оплаты платежной картой кассовая программа вызывает клиентское приложение sb_pilot. Параметрами для этого приложения передаются:

Для корректной работы необходимо настроить отображение диалогов на экране пин-пада.

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

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

Запрещена отмена оплаты чека возврата или возврата по чеку продажи. При попытке совершить операцию на экран будет выведена ошибка "Отмена оплаты недоступна".

Конфигурирование модуля

Для использования модуля необходимо установить пакет artix45-plugin-sb

aptitude install artix45-plugin-sb

Вызов клиентского приложения выполняется при выборе специального типа оплаты. Для добавления типа оплаты необходимо выполнить конфигурирование модуля. Номер типа оплаты задается в процессе конфигурирования.

dpkg-reconfigure artix45-plugin-sb

Файлы, необходимые для функционирования модуля, располагаются в директории /linuxcash/cash/paysystems/sb

ФайлОписание
sb_call.shСкрипт для вызова клиентского приложения
sb_pilotКлиентское приложение, которое отвечает за обращение к процессинговому центру
.screenrcНастройки для корректного отображения информации на экране при запуске клиентского приложения через sb_call.sh
ttyS99Символьная ссылка на файл устройства (необходима при подключении через USB)

Файлы клиентского приложения предоставляются сотрудниками банка. Одна из версий приложения включена в состав пакета, ее файлы располагаются в директории /linuxcash/cash/paysystems/sb/files. Для использования данной версии приложения файлы необходимо скопировать в директорию /linuxcash/cash/paysystems/sb/.

Начиная с версии 4.6.193 при первоначальной установке пакета artix45-plugin-sb файлы клиентского приложения автоматически помещаются в директорию /linuxcash/cash/paysystems/sb/.

При необходимости выполнения операций, минуя кассовую программу, достаточно запустить скрипт sb_call.sh с нужными параметрами. Данный скрипт вызывает клиентское приложение в специально подготовленном окружении для корректного отображения информации на экране.

Если на экране отображается нечитаемый текст, нужно проверить кодовую страницу, которая указана в настройках терминала и файле .screenrc.

Параметры вызова клиентского приложения задаются в конфигурационном файле /linuxcash/cash/conf/artixsb.conf в секции [main].

НаименованиеТип данныхВозможные значенияОписаниеПримечания

encoding

строковый
  • koi8-r
  • ibm866
  • cp1251
  • UTF-8
  • и т.д.
Кодовая страница файлов с результатом вызоваПо умолчанию koi8-r

limit

числовой
Порог суммы оплаты, ниже которого печатается один слип (в копейках)
dialogsOnPinpad

логический

  • true

  • false

Если установить параметр true, то диалоги будут отображаться на пин-паде. В противном случае диалоги будут отображаться на кассе

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

Для взаимодействия с диалогом на кассе при помощи клавиатуры необходимо установить openbox

timeoutчисловой
Время ожидания ответа от пин-пада в секундахПо умолчанию 300


[main]
encoding=koi8-r
limit=0
 
; Отображать диалоги на пин-паде
; В противном случае диалоги будут отображаться на кассе
; По умолчанию true
;dialogsOnPinpad = true

; Время ожидания ответа от пин-пада в секундах
; по умолчанию 300
;timeout = 300
...

В кассовом ПО реализована возможность задавать таймаут ожидания ответа от пин-пада при сверке итогов с помощью параметра totalsTimeout. При значении по умолчанию (-1) будет применено значение параметра timeout.

НаименованиеТип данныхОписаниеПримечания
totalsTimeoutчисловойВремя ожидания ответа от пин-пада при сверке итогов в секундахПо умолчанию -1


[main]
...

; Время ожидания ответа от пин-пада при сверке итогов в секундах
; Если выставлено значение -1, то используется значение настройки timeout
; по умолчанию -1
;totalsTimeout = -1

Сохранение способа чтения номера карты и флагов операции

В кассовом ПО реализовано сохранение способа чтения номера карты и флагов операции при оплате через процессинг Сбербанк с использованием клиентского приложения sb_pilot. В БД Documents таблицу Moneyitem в поле additionaldata записывается json-объект с полями:

{"cardEntryMode":"E","operationFlags":"00010000"}


ПолеОписаниеВозможные значения
cardEntryModeСпособ чтения номера карты
  • D – карта считана через магнитный ридер,
  • M – номер карты введен вручную,
  • C – карта считана через чиповый ридер,
  • F – карта считана в режиме Fallback,
  • R и E – карта считана бесконтактно,
  • I – вместо карты использован идентификатор,
  • Q – считан SberPay QR,
  • B - считан SBP QR,
  • L – операция кредитования или рассрочки,
  • P – считана биометрическая информация клиента.

Кроме символа P, при операции по биометрии может использоваться сочетание способа ввода M и бита TRF_BIO. Параметр имеет смысл только при платежных операциях. При служебных операциях может принимать любое односимвольное значение.

operationFlagsФлаги операции

Маска 0x00000007 (три младших бита младшего байта) содержит описание способа чтения карты:

  • 0 (TRFE_DEVICE) – магнитный ридер,
  • 1 (TRFE_MANUAL) – ручной ввод номера карты,
  • 2 (TRFE_CHIP) – чиповый ридер,  
  • 3 (TRFE_FALLBACK) – на карте есть чип, но она считана через магнитный ридер,
  • 4 (TRFE_VIVO_MS) – бесконтактная карта с эмуляцией магнитной полосы,
  • 5 (TRFE_VIVO_EMV) – бесконтактная карта с эмуляцией чипа,
  • 6 (TRFE_BY_ID) – введен идентификатор клиента.

Маска 0x00008000 (TRF_BIO) – биоверификация держателя карты,

Маска 0x00010000 (TRF_PIN_ONLINE) – введен online pin,

Маска 0x00020000 (TRF_PIN_OFFLINE) – введен offline pin,

Маска 0x00040000 (TRF_NO_CVM) – без верификации держателя карты.

Если установлен бит TRF_PIN_OFFLINE и способ чтения TRFE_VIVO_MS или TRFE_VIVO_EMV, то верификация выполнена на устройстве клиента (например ApplePay, GooglePay)

Если установлены биты TRF_PIN_ONLINE и TRF_BIO, то биометрическая проверка держателя карты выполнялась с вводом дополнительного пароля.


Логирование

Журнал вызовов клиентского приложения из кассовой программы ведется в основном логе кассовой программы /linuxcash/logs/current/terminal.log. Для идентификации данных, записанных модулем Сбербанк, используется логгер с именем payment. В журнал заносятся параметры вызова, результат выполнения и образ слипа, который предназначен для печати.

Настройка пин-пада

Необходимо настроить параметры взаимодействия пин-пада с ККМ:

Настройка пин-пада PAX SP30

Терминалы PAX SP30 для оплаты по безналичному расчету через модуль Сбербанка используют пакет ttypos, который необходимо установить отдельно от пакета artix45-plugin-sb.

При установке пакета ttypos создается директория /opt/ttyPos, в которой хранятся конфигурационные файлы.

Символьная ссылка на файл устройства может создаваться двумя способами:

  1. Пакет ttypos содержит драйвер (модуль ядра) для PAX SP30, который создает в системе последовательный порт ttyPos0. Чтобы заработал пин-пад, необходимо создать ссылку на порт, созданный драйвером, в директории процессинга Cбербанк:

    ln -s /dev/ttyPos0 /linuxcash/cash/paysystems/sb/ttyS99


  2. С помощью параметров для подключения пин-пада, которые настраиваются в файле /opt/ttyPos/conf.ini.

    НаименованиеТип данныхОписаниеПримечания
    ttypos_portстроковыйНаименование порта, созданного драйвером

    Если указана настройка com_port, то на данный порт создается ссылка

    com_portстроковыйНаименование ссылки, создание которой запускает скрипт /opt/ttyPos/setport.sh при подключении устройства


    ; ttyPos-устройство
    ttypos_port="/dev/ttyPos0"
    
    ; COM-порт для работы с usb-устройством (ссылка на ttyPos-устройство)
    com_port="/dev/ttyS99"


Использование одного терминала для нескольких организаций

Использование одного терминала для нескольких организаций необходимо в случаях, когда реализация товаров и услуг выполняется разными организациями. Для реализации данного механизма, кассовая программа вызывает клиентское приложение sb_pilot с дополнительным параметром - идентификатором организации, который соответствует коду отдела настроенного на пин-паде.

Указание номера отдела реализовано в sb_pilot версии 11.41.04 и выше.

Прочитать о настройке программы для оплаты несколькими юридическими лицами можно в статье "Банковские платежные системы".

Особенности использования терминала Сбербанк для нескольких юридических лиц:

Оплата по биометрии

В кассовом ПО Artix реализована возможность оплаты по биометрии через процессинг Сбербанк.

Для возможности оплаты по биометрии необходимо:

  1. В БД Dictionaries в таблице Valut настроить дополнительную валюту с параметром mode=32768.
  2. Настроить работу с пин-падом WizarPOS:
    1. Установить пакет usbserial-wizarpos (дополнительно к пакету artix45-plugin-sb):

      aptitude install usbserial-wizarpos


    2. Создать символьную ссылку на порт, к которому подключен пин-пад, в директории процессинга Сбербанк:

      ln -s /dev/ttyUSB0 /linuxcash/cash/paysystems/sb/ttyS99


Возможные ошибки при оплате по б/н

На кассе

Для корректного функционирования модуля оплаты на кассе осуществляется проверка наличия файла sb_call.sh и наличия прав на его исполнение. При невыполнении одного из условий на экран будет выведено соответствующее сообщение. 

При корректном запуске скрипта sb_call.sh вызывается файл клиентского приложения sb_pilot. Выполняется проверка наличия файла и наличие прав на его исполнение.

При отсутствии файла sb_pilot или невозможности его исполнения на экран выдается сообщение "Ошибка чтения файла статуса операции".

На пин-паде

Если настроены диалоги на пин-паде, то файл sb_call.sh не используется, вызывается файл sb_pilot. При невыполнении одного из условий на экран будет выведено соответствующее сообщение.

При выведении ошибок на экран нужно проверить конфигурации модуля.