Модуль интеграции для работы c системой лояльности "getCRM".

Установка и настройка системы.

ООО "Нефтепродукттехника"


Содержание

Введение
1. Установка и настройка модуля интеграции для работы с системой лояльности getCRM
Интеграция системы лояльности на АЗС
Установка ПО
Состав пакета siebel
Настройка модуля интеграции
Описание настроечных параметров
Инициализация демона siebeld
Общий алгоритм работы демона siebeld модуля интеграции
Алгоритм списания/начисления бонусов при покупке товаров
Алгоритм процеса синхронизации данных модуля интеграции

Список иллюстраций

1.1. Схема интеграции рабочего места под СУ Бук-TS и системой лояльности SiebelCRM
1.2. Алгоритм работы демона
1.3. Алгоритм покупки по карте лояльности
1.4. Алгоритм процеса синхронизации данных

Введение

Данное руководство предоставляет описание по установке и настройке модуля интеграции для работы с системой лояльности "getCRM" на автозаправочных комплексах cети ПАО "ТАТНЕФТЬ", работающих с системой управления Бук-TS.

Модуль запускается при старте системы на каждом рабочем месте.

Используется для накопления бонусов и оплаты ими товаров и топлива при предъявлении карты лояльности.

Модуль контролирует соединение с системой лояльности "getCRM", обеспечивает синхронную передачу команд и их преобразование в формат сответствующий протоколу взаимодействия с системой лояльности, хранение и последующую передачу данных о продажах зарегистрированных при отсутствии связи с системой лояльности getCRM (оффлайн операции) для последующего начисления бонусов.

Глава 1. Установка и настройка модуля интеграции для работы с системой лояльности getCRM

Интеграция системы лояльности на АЗС

Модуль интеграции к системе лояльности getCrm реализован в виде клиент-серверного приложения. Серверная часть запускается в качестве демона при старте системы.

Серверная часть приложения выполняет следующие задачи:

  • Устанавливает подключение к системе лояльности getCRM и контролирует наличие соединения.

  • Производит авторизацию передачи данных.

  • Предоставляет клиентский интерфейс для подключения кассового ПО.

  • Транслирует передаваемую информацию между кассовым ПО и системой лояльности getCRM.

  • Управляет ханением информации передаваемой от кассового ПО в локальной базе данных.

  • Предоставляет возможость накопления бонусов при отсутствии связи с системой лояльности.

  • Производит синхронизацию данных при восстановление соединения с системой лояльности.

Рисунок 1.1. Схема интеграции рабочего места под СУ Бук-TS и системой лояльности SiebelCRM

Схема интеграции рабочего места под СУ Бук-TS и системой лояльности SiebelCRM

Установка ПО

Модуль интеграции устанавливается на каждое рабочее место.

Для работы с системой лояльности «getCRM» необходимо установить следующие пакеты:

На сервере:

  • bukdbase версия >= 6.0

На рабочем месте (там, где подключен банковский терминал):

  • bukwp версия >= 1.2.1-0

  • siebel версия >= 0.1.0

Состав пакета siebel

  • /opt/siebel/bin/siebeld - основной демон, запускающийся при старте системы управления на рабочем месте.

    Обеспечивает подключение, проверку связи преобразование комманд в формат протокола обмена между системой управление и системой лояльности SiebelCRM.

    Выполняет обратное преобразование ответов поступающих от системы лояльности в формат для чтения системой управления.

    Обеспечивает периодичную синхронизацию транзакций, зафиксированных на момент отсутствия связи (offline) с системой лояльности.

  • /opt/siebel/bin/siebel-сli - консольный интерфейс клиента. При запуске подключается к работающему демону и предоставляет интерфейс для работы с ним.

  • /opt/siebel/bin/siebel-task - Програма для передчи демону (серверному приложению) команды на постановку задания синхронизации за день .Данное задание будет выполнено процессом синхронизации сразу же при срабатывании таймаута проверки.

  • /opt/siebel/bin/siebel-config - утилита для просмотра текущих настроек модуля

  • /opt/siebel/bin/key-perms - скрипт для установки прав на пользовательские сертификаты

  • /opt/siebel/version - файл с информацией о текущей версии модуля

  • /etc/opt/siebel/samples/siebel.conf - Пример файла конфигурации

  • /etc/opt/siebel/ssl - Каталог для хранения пользовательских сертификатов (по умолчанию)

  • /etc/init.d/siebeld - Скрипт для управления запуска/остановки основного демона

  • /var/opt/siebel/log - Каталог логирования работы демона.

  • /var/opt/siebel/run - Каталог хранения информации по работающему демону (pid файлы с номером процесса демона).

  • /var/opt/siebel/db - Каталог локальной БД для хранения зарегистрированных модулем транзакций.

Настройка модуля интеграции

Настройки работы программы хранятся в файле "siebel.conf".

Для Debian систем по умолчанию файл конфигурации располагается в каталоге /etc/opt/siebel/.

Если путь к файлу конфигурации не указан через аргументы коммандной строки, то поиск файла конфигурации производится по следующим каталогам :

  • siebel.conf

  • ${INSTALL_PREFIX}/etc/siebel.conf

  • /etc/siebel/siebel.conf

  • /usr/etc/siebel/siebel.conf

  • /opt/siebel/etc/siebel.conf

  • /usr/local/etc/siebel/siebel.conf

Файлы настройки, представлен в формате Json.

Отредактировать /etc/opt/siebel/siebel.conf и привести его к следующему виду :

{ "CheckPmtJsonRoot": 1
, "PmtJsonRootName" : "SBL"
, "ConnectionString": "https://tn103.getcrmdev.ru:18889/eai_rus/start.swe?SWEExtSource=WebService&SWEExtCmd=Execute&WSSOAP=1"
, "UseTLS"              : 1
, "CertsCAPath"         : "/etc/ssl/certs"
,  "UserId"              : "ASUTP_USER"
,  "UserPass"            : "XD9fYO5d"
,  "ConnectTimeout"      : 10           /* Таймаут соединения в секундах */
,  "RetryCount"          : 2            /* Кол-во попыток соединения */
,  "BackgndFlushPeriod"  : 900          /* Интервал проверки передачи офлайн чеков в секундах (15 мин.) */
,  "OfflineCheckPeriod"  : 120          /* Интервал проверки наличия TCP соединения */
,  "SessionTokenTTL"     : 300          /* Время жизни сессионного токена в сек. по истечении времени требуется переавторизация (на getcrm 15 мин) */
,  "SendRecvTimeout"     : 10           /* Таймаут приема/передачи в секундах (по умолчанию)*/
,  "Port"                : "54121"      /* (Порт по умолчанию - 54121) */
,  "Host"                : "127.0.0.1"  /* Только для клиента адрес сервера ( по умолчанию 127.0.0.1 ) */
,  "DebugEnable"         : 1
}

Примечание

Дополнительные параметры с комментариями можно посмотреть в файле примера /etc/opt/siebel/samples/siebel.conf

Посмотреть настроенные параметры можно выполнив команду

/opt/siebel/bin/siebel-config

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

sudo /etc/init.d/siebeld restart

Описание настроечных параметров

Имя параметра Тип данных Описание

PmtJsonRootName

char

Имя корневого объекта JSON в запросах/ответах идентифицирующий платежную систему

по умолчанию "SBL"

{ "SBL" : { ..... } }

CheckPmtJsonRoot

bool

Проверять запросы/ответы JSON на принадлежность к платежной системе, все сообщения находятся внутри объекта с PmtJsonRootName

ConnectionString

char

Адрес обработчика SOAP сообщений

https://tn103.getcrmdev.ru:18889/eai_rus/start.swe?SWEExtSource=WebService&SWEExtCmd=Execute&WSSOAP=1

DaemonNeedConnect

bool

Требовать наличия соединения с системой лояльности при старте демона.

Если значение установлено в true, то при отсутствии связи демон завершает свою работу.

UserId

char

Имя пользователя для подключения к сервису

UserPass

char

Пароль пользователя для подключения к сервису

ConnectTimeout

int

Таймаут соединения в секундах (по умолчанию 10сек.)

RetryCount

int

Кол-во попыток соединения (по умолчанию 2)

RetryTaskCount

int

Кол-во попыток соединения для операций суточной сверки(по умолчанию 2)

RetryOffSyncCount

int

Кол-во попыток соединения для операций синхронизации offline чеков(по умолчанию 2)

BackgndFlushPeriod

int

Интервал проверки передачи офлайн чеков в секундах.

Если значение установлено в 0 и OfflineCheckPeriod так же установлено в 0, то паралелльный процесс проверки офлайн синхронизации отключен

OfflineCheckPeriod

int

Интервал проверки на восстановление сетевого соединения вязи офлайн чеков в секундах.

Если значение установлено в 0 и BackgndFlushPeriod так же установлено в 0, то паралелльный процесс проверки офлайн синхронизации отключен

По умолчанию параметр = значению BackgndFlushPeriod по умолчанию. (15мин.)

Значение не может быть больше значения BackgndFlushPeriod

SessionTokenTTL

int

Время жизни сессионного токена в сек. по истечении времени требуется переавторизация (на getcrm 15 мин)

SendRecvTimeout

int

Таймаут приема/передачи в секундах (по умолчанию 10сек.)

SendRecvTaskTimeout

int

Таймаут приема/передачи в секундах для background заданий суточной сверки данных (по умолчанию 40сек.)

SendRecvOffSyncTimeout

int

Таймаут приема/передачи в секундах для background заданий (данные оффлайн чеков и синхронизации) (по умолчанию 40сек.)

Port

int

Порт на котором работает демон (по умолчанию - 54121)

Host

address

Только для клиента адрес сервера ( по умолчанию 127.0.0.1)

AzsIdentOverride

bool

Перезаписывать Идентификацию АЗС, Терминала, типа интегрируемого приложения если не указан явно в запросе

SourceSystem

char

тип интегрируемого приложения по умолчанию <i>ASUTP</i> (требуется включение параметра AzsIdentOverride)

Terminal

char

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

Location

char

Используемый идентификатор АЗС если не указан явно в запросе или отличается от идентификатора в СУ

ProductIdLength

int

Использовать кол-во символов для идентификатора продукта (только при zeroFilledProductId = true )

ProductIdZeros

bool

Идентификатор продукта слева дополнять нулями до кол-ва знаков ProductIdLength.( только при значении ProductIdLength > 0 ) по умолчанию FALSE

ProductTrimZeros

bool

Для идентификатора продукта слева убирать нули до кол-ва знаков ProductTrimLength. по умолчанию FALSE

ProductTrimLength

int

Убрать ведущие нули для идентификатора продукта до установленной длины артикула или не 0 символа (только при ProductTrimZeros = true )

DebugEnable

bool

Вести отладочный лог отправленных/принятых SOAP сообщений.

Работает только в случае если, программа собрана с опцией -DDEBUG_ENABLE

DebugFile

char

Имя файла для записи отладочной информации с кодом отправляемых и получаемых SOAP сообщений (все сообщения пишутся в один файл)

DebugSentFile

char

Имя файла для записи отладочной информации с кодом отправляемых SOAP сообщений (переопределяет DebugFile)(по умолчанию soap_SENT.log)

DebugRecvFile

char

Имя файла для записи отладочной информации с кодом получаемых SOAP сообщений (переопределяет DebugFile)(по умолчанию soap_RECV.log)

DebugTestFile

char

Имя файла для записи отладочной информации по обработке soap объектов (по умолчанию soap_TEST.log)

DebugErrInfoEnable

bool

Заполнять значение ErrInfo (подробное сообщение Siebel об ошибке (системное))

AutosyncDailyEnable

bool

Автоматическое формирование заданий синзронизации за сутки.(по умолчанию включено)

AutosyncDailyDelay

int

Задержка в секундах для проверки времени автоматического формирования задания синхронизации (в секундах от начала суток) (по умолчанию 0, без задержки)

AutosyncShiftEnable

bool

Автоматическое формирование заданий синзронизации за смену (по умолчанию отключено) Введено для использования этого параметра в дальнейшем

SSL/TLS Support

UseTLS

bool

Использовать защищенное соединение (default)

CertFilePath

char

Путь к файлу со списком доверенных сертификатов

CertsCAPath

char

Путь к каталогу со списком доверенных сертификатов

CertKeyFile

char

Путь к файлу с приватным ключом

CertKeyPassword

char

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

RandomDataPath

char

Путь к файлу с random data

TLSMode

Режим работы TLS для ( по умолчанию SOAP_SSL_DEFAULT )

На текущий момент не работает, введен для дальнейшей поддержки кода

На текущий момент испольжуется только режим SOAP_SSL_DEFAULT

Допустимые значения для режимов TLS

SOAP_SSL_DEFAULT                        -   enables TLS v1.0, v1.1, and v1.2.
SOAP_SSL_NO_AUTHENTICATION              -   disables peer authentication
SOAP_SSL_REQUIRE_SERVER_AUTHENTICATION  -   requires servers to authenticate to the client (default)
SOAP_SSL_REQUIRE_CLIENT_AUTHENTICATION  -   requires clients to authenticate to the server
SOAP_SSL_SKIP_HOST_CHECK                -   disables checking of the common name of the host in certificate
SOAP_SSL_ALLOW_EXPIRED_CERTIFICATE      -   disables checking of the expiration date of the certificate and omit CRL checks
SOAP_SSL_NO_DEFAULT_CA_PATH             -   disables default_verify_paths (OpenSSL)
SOAP_TLSv1                              -   enables TLS v1.0/1.1/1.2 (default)
SOAP_SSLv3_TLSv1                        -   enables SSL v3 and TLS v1.0/1.1/1.2
SOAP_SSLv3                              -   restricts SSL to SSL v3 only
SOAP_TLSv1_0                            -   restricts TLS to TLS v1.0 only
SOAP_TLSv1_1                            -   restricts TLS to TLS v1.1 only
SOAP_TLSv1_2                            -   restricts TLS to TLS v1.2 only

Инициализация демона siebeld

Для запуска демона siebeld, необходимо чтобы скрипт запуска/остановки /etc/init.d/siebeld был включен в автозагрузку операционной системы.

Если необходимо управлять работой демона в ручном режиме, то можно выполнить следующие команды:

sudo /etc/init.d/siebeld start - для запуска демона

sudo /etc/init.d/siebeld stop - для остановки демона

sudo /etc/init.d/siebeld restart - для перезапуска демона

За работой демона можно наблюдать через файлы логирования, которые будут записываться в каталог /var/opt/siebel/log.

  • /var/opt/siebel/log/siebeld.log - основной лог файл работы демона

  • /var/opt/siebel/log/siebeld.err - файл ошибок работы демона

При старте демона производится попытка соединения с системой лояльности SiebelCRM, с параметрами заданными в конфигурации.

В случае если соединение не нудалось, то демон завершаеи свою работу, если только параметр DaemonNeedConnect не установлен в значение false. В этом случае демон будет инициализирован в режиме offline. Он будет продолжать принимать запросы от клиентского приложения. Часть операций (списание бонусов, получение информации по карте) будет недоступна. Демон продолжит полноценный режим работы после восстановления связи с центром лояльности. Если за время отсутствия связи накопились данные, то они будут автоматически переданы в центр лояльности. (Если инициализирован дополнительный процесс проверки offline данных. Параметр BackgroundFlushPeriod должен быть установлен в значение > 0).

Если демону не удалось инициировать соединение с центром лояльности, то необходимо проверить параметры конфигурации и в ручном режиме запустить демон еще раз. Если причина была в отсутствии связи интернет, или недоступности системы лояльности из-за каких-либо временных причин, то необходимо перезапустить демон позже или установить параметр DaemonNeedConnect в значение false и запустить демон в ручном режиме.

Если соединение с системой лояльности было успешно, то демон считается успешно инициализирован, и предоставляет интерфейс для подключения клиентов на порту 54121 (по умолчанию) для обмена командами (JSON -формат).

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

Общий алгоритм работы демона siebeld модуля интеграции

Рисунок 1.2. Алгоритм работы демона

Алгоритм работы демона

Алгоритм списания/начисления бонусов при покупке товаров

Рисунок 1.3. Алгоритм покупки по карте лояльности

Алгоритм покупки по карте лояльности

Алгоритм процеса синхронизации данных модуля интеграции

Рисунок 1.4. Алгоритм процеса синхронизации данных

Алгоритм процеса синхронизации данных