Сервис для выдачи виртуальных карт представляет собой сервис, который работает напрямую с кассовым и бонусным сервером. Предназначен для быстрой выдачи карты клиенту, а также создания виртуальных карт.
Установка и настройка сервиса
Установка сервиса производится командой:
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
, будет осуществлена генерация справочников после успешной привязки карты к клиенту.