Сервис для выдачи виртуальных карт представляет собой сервис, который работает напрямую с кассовым и бонусным сервером. Предназначен для быстрой выдачи карты клиенту, а также создания виртуальных карт.
Установка и настройка сервиса
Установка сервиса производится командой:
apt-get install artixcs-issuance-card
Настройка работы сервиса осуществляется в конфигурационном файле application.properties, который находится в директории /opt/artixcs-issuance-card/application.properties.
#Подключение к кассовому серверу
cashserver.host=localhost
cashserver.port=8080
cashserver.login=admin
cashserver.password=admin
#Подключение к бонусному серверу
bonus.server.rest.host=localhost
bonus.server.rest.port=8080
bonus.server.rest.contextpath=/ACC/
#Авторизация на бонусном сервере через terminalid
terminal.id=ISSUANCE_DEFAULT_TERMINAL
bonus.server.auth.terminalid=true
#Авторизация на бонусном сервере через логин и пароль
bonus.server.username=admin
bonus.server.password=admin
#Генерация справочников
cashserver.start.generate.dict=true
#Преобразование номеров телефона для поиска клиентов
#Маска номера телефона
#Для России можно использовать ^[+]?[78]?([0-9]{10})$
regexp.phone.mask=(.*)
#Преобразование телефона. Преобразованный номер будет сохранен в БД при создании клиента, а также будет участвовать в поиске
#Для России можно использовать 7\\1
regexp.phone.transform=\\1
#Порт, на котором будет запущен текущий сервис
server.port=8094
#Настройка группы виртуальных карт (При создании карты необходимо указать идентификатор группы карт).
virtual.card.groupid=1
#Время жизни пин-кода в секундах
pincode.lifetime=300
#Настройки специальных дат
#Номер специальной даты для регистрации клиента (варьируется от 1 до 3)
special.date.number=1
#Имя специальной даты
special.date.name=registration
#Настройки для генерации номера карты
#Длина номера карты варьируется от 4 до 200 символов включая длину префикса номера карты
cardnumber.length=16
#Префикс номера карты
cardnumber.prefix=
#Текст для смс клиенту при выдаче карты в формате SpEL
#Внимание! Текст нужно заключать в одиночные кавычки ''
#Пример: чтобы указать имя клиента в смс, запишем: 'Уважаемый(ая) ' + name + ', спасибо, что Вы с нами!'
#Если текст не указан, смс отправляться не будут
sms.text =
/opt/artixcs-issuance-card/application.properties необходимо добавить строку в формате: sms.gateway.key = <ключ СМС шлюза>.Предварительно необходимо настроить СМС шлюз, подробнее об этом в разделе "Настройки сервера" (подраздел "СМС").
Принцип работы
Сервис выдачи карт выполняет следующие функции:
- Выдача уникальной карты клиенту.
- Если клиент не был зарегистрирован (учтен в системе), то он создается автоматически, исходя из тех данных, которые были направлены в запросе. Следующим этапом происходит привязка карты к клиенту по ее номеру.
Если в процессе назначения произошла ошибка, клиент буден удален.
Получение пин-кода для создания карты.
В случае отсутствия клиента или карты в системе на кассовый сервер будет направлен запрос на получение пин-кода для верификации клиента. Ответом на данный запрос будет пин-код.
В случае если клиент существует, но у него нет карты, на кассовый сервер также будет направлен соответствующий запрос на получение пин-кода. Ответом на данный запрос будет пин-код.
В случае если клиент существует, и у него есть привязанная карта (или карты, если их несколько), то будет направлено соответствующее сообщение в ответном запросе.
Пин-код, полученный от кассового сервера, по-умолчанию хранится 300 секунд.
Создание виртуальной карты с помощью пин-кода.
При создании виртуальной карты учитывается префикс и длина генерируемой карты. Длина генерируемой части номера карты должна быть в диапазоне от 4 до 200 символов.В случае если пин-код истек или не был отправлен, процесс создания виртуальной карты будет прерван, и будет направлено соответствующее сообщение.
В случае отсутствия номера телефона клиента создается клиент по заданному номеру телефона, и с помощью настройки задается номер специальной даты и ее имя. В качестве специальной даты назначается текущая дата. Остальные параметры клиента будут сохранены, исходя из тех данных, которые были направлены в запросе. Далее происходит генерация уникального номера карты. В процессе генерации отправляются запросы на кассовый сервер, в рамках которых происходит проверка уникального номера карты.
В случае если карта с генерируемым номером уже существует на кассовом сервере, то будет произведена повторная генерация. Количество повторных генераций вычисляется по формуле 9 * 10 длина генерируемого префикса.
В случае если клиент существует, но у него отсутствует карта, будет произведена генерация уникального номера карты. После завершения генерации уникального номера карты происходит процедура создания карты на кассовом сервере, а в последствии и на бонусном сервере. Если в процессе создания карты возникла какая-либо ошибка, произойдет удаление ранее созданных карт на кассовом и бонусном серверах.
В случае если клиент существует, и у него есть привязанная карта (или карты, если их несколько), то будет направлено соответствующее сообщение в ответе на запрос.
cashserver.start.generate.dict, будет осуществлена генерация справочников после успешной привязки карты к клиенту.