Сервис для выдачи виртуальных карт представляет собой сервис, который работает напрямую с кассовым и бонусным сервером. Предназначен для быстрой выдачи карты клиенту, а также создания виртуальных карт.
Установка сервиса производится командой:
apt-get install artixcs-issuance-card |
Настройка работы сервиса осуществляется в конфигурационном файле /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 = # Начислять приветственный бонус при выдаче карты, по умолчанию false initial.bonus.enable = false # Кол-во приветственных бонусов, которые будут начислены при выдаче карты(в копейках), по умолчанию 5000 initial.bonus.amount = 5000 # Кол-во дней до окончания действия бонуса, по умолчанию - 7 initial.bonus.active.days = 7 # Название группы начислений, по умолчанию greetingBonus initial.bonus.acceptId = greetingBonus # Помещать неиспользованные сгенерированные номера карт в список для последующего использования во избежание потери номеров в последовательности use.cardnumber.repeatedly = true |
Для отправки СМС о выдаче карты с собственного СМС шлюза в файле /opt/artixcs-issuance-card/application.properties необходимо добавить настройку: sms.gateway.key = <ключ СМС шлюза> . |
Предварительно необходимо настроить СМС шлюз, подробнее об этом в разделе "Настройки сервера" (подраздел "СМС").
Чтобы задать время резервирования анонимной карты необходимо в файл /opt/artixcs-issuance-card/application.properties добавить настройку: card.reserve.expireTime = <количество_секунд> . По умолчанию 3600 секунд. |
Сервис выдачи карт выполняет следующие функции:
Поиск клиента осуществляется по номеру телефона. |
Получение пин-кода для создания карты.
Если клиент или карта отсутствуют в системе, то на кассовый сервер будет направлен запрос на получение пин-кода для верификации клиента. Ответом на данный запрос будет пин-код.
Если клиент существует, но у него нет карты, то на кассовый сервер будет направлен запрос на получение пин-кода. Ответом на данный запрос будет пин-код.
Если клиент существует и у него есть привязанная карта, то будет направлено соответствующее сообщение в ответном запросе.
Пин-код, полученный от кассового сервера, по умолчанию хранится 300 секунд. |
Создание виртуальной карты с помощью пин-кода.
При создании виртуальной карты учитывается префикс и длина генерируемой карты. Длина генерируемой части номера карты должна быть в диапазоне от 4 до 200 символов.
Если действие пин-кода истекло или пин-код не был отправлен, то процесс создания виртуальной карты будет прерван, об этом будет направлено соответствующее сообщение.
Если по номеру телефона клиент не найден, то по указанному номеру телефона будет создан новый клиент. С помощью настройки задается номер специальной даты и ее имя. В качестве специальной даты назначается текущая дата. Остальные параметры клиента будут сохранены, исходя из тех данных, которые были направлены в запросе. Далее происходит генерация уникального номера карты. В процессе генерации отправляются запросы на кассовый сервер, в рамках которых происходит проверка уникального номера карты.
Если карта с генерируемым номером уже существует на кассовом сервере, то будет произведена повторная генерация. Количество повторных генераций вычисляется по формуле 9 * 10 длина генерируемого префикса.
Если клиент существует, но у него отсутствует карта, то будет сгенерирован уникальный номер карты. После завершения генерации уникального номера карты происходит процедура создания карты на кассовом сервере, а затем на бонусном сервере. Если в процессе создания карты возникла какая-либо ошибка, произойдет удаление ранее созданных карт на кассовом и бонусном серверах.
Если клиент существует, и у него есть привязанная карта, то в ответе на запрос будет направлено соответствующее сообщение.
Если клиент существует, но у него отсутствует карта, то будет сгенерирован уникальный номер карты. После завершения генерации уникального номера карты происходит процедура создания карты на кассовом сервере, а затем на бонусном сервере. Если в процессе создания карты возникла какая-либо ошибка, произойдет удаление ранее созданных карт на кассовом и бонусном серверах.
Если клиент существует, и у него есть привязанная карта, то в ответе на запрос будет направлено соответствующее сообщение.
Привязка карты к клиенту не осуществляется
Номера карт, которые не были использованы за время, предназначенное для резервирования анонимной карты, могут быть использованы повторно при включенной настройке |
При включении настройки cashserver.start.generate.dict будет осуществлена генерация справочников после успешной привязки карты к клиенту. |