Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Panel

Table of Contents
maxLevel1

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

...

Установка сервиса производится командой:

Code Block
languagetext
apt-get install artixcs-issuance-card

Настройка работы сервиса осуществляется в конфигурационном файле application.properties, который находится в директории/opt/artixcs-issuance-card/application.properties.

Code Block
languagetext
titleПример настройки
#Подключение к кассовому серверу 
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


Info
Для отправки СМС о выдаче карты с собственного СМС шлюза в файле /opt/artixcs-issuance-card/application.properties необходимо добавить строку в форматенастройку: sms.gateway.key = <ключ СМС шлюза>.

Предварительно необходимо настроить СМС шлюз, подробнее об этом в разделе "Настройки сервера" (подраздел "СМС").

Info
Чтобы задать время резервирования анонимной карты необходимо в файл /opt/artixcs-issuance-card/application.properties добавить настройку: card.reserve.expireTime = <количество_секунд>. По умолчанию 3600 секунд.

Принцип работы

Сервис выдачи карт выполняет следующие функции:

...

  1. Выдача уникальной карты клиенту.
    • Если клиент не был зарегистрирован (учтен в системе), то он создается автоматически, исходя из тех данных, которые были направлены в запросе. Следующим этапом происходит привязка карты к клиенту по ее номеру. Если в процессе назначения привязки произошла ошибка, то клиент буден удален.
    • Если на сервисе задан текст для приветственного сообщения, то клиенту будет направлено соответствующее подтверждение посредством СМС.
    • Если на сервисе включено начисление приветственного бонуса при выдаче карты, то клиенту будет начислено заданное количество баллов с заданным сроком действия.
  2. Получение пин-кода для создания карты.

    • В случае отсутствия клиента или карты Если клиент или карта отсутствуют в системе, то на кассовый сервер будет направлен запрос на получение пин-кода для верификации клиента. Ответом на данный запрос будет пин-код.

    • В случае если Если клиент существует, но у него нет карты, то на кассовый сервер также будет направлен соответствующий запрос на получение пин-кода. Ответом на данный запрос будет пин-код.

    • В случае если Если клиент существует , и у него есть привязанная карта (или карты, если их несколько), то будет направлено соответствующее сообщение в ответном запросе.

      Info
      Пин-код, полученный от кассового сервера, по - умолчанию хранится 300 секунд.


    • Если на сервисе задан текст для приветственного сообщения, то клиенту будет направлено соответствующее подтверждение посредством СМС.
  3. Создание виртуальной карты с помощью пин-кода.
    При создании виртуальной карты учитывается префикс и длина генерируемой карты. Длина генерируемой части номера карты должна быть в диапазоне от 4 до 200 символов.

    • В случае если Если действие пин-кода истекло или пин-код истек или не был отправлен, то процесс создания виртуальной карты будет прерван, и об этом будет направлено соответствующее сообщение.

    • В случае отсутствия номера телефона клиента создается клиент по заданному номеру телефона, и с Если по номеру телефона клиент не найден, то по указанному номеру телефона будет создан новый клиент. С помощью настройки задается номер специальной даты и ее имя. В качестве специальной даты назначается текущая дата. Остальные параметры клиента будут сохранены, исходя из тех данных, которые были направлены в запросе. Далее происходит генерация уникального номера карты. В процессе генерации отправляются запросы на кассовый сервер, в рамках которых происходит проверка уникального номера карты.

    • В случае если Если карта с генерируемым номером уже существует на кассовом сервере, то будет произведена повторная генерация. Количество повторных генераций вычисляется по формуле 9 * 10 длина генерируемого префикса.

    • В случае если Если клиент существует, но у него отсутствует карта, будет произведена генерация уникального номера то будет сгенерирован уникальный номер карты. После завершения генерации уникального номера карты происходит процедура создания карты на кассовом сервере, а в последствии и затем на бонусном сервере. Если в процессе создания карты возникла какая-либо ошибка, произойдет удаление ранее созданных карт на кассовом и бонусном серверах.

    • В случае если Если клиент существует, и у него есть привязанная карта (или карты, если их несколько), то в ответе на запрос будет направлено соответствующее сообщение в ответе на  запрос.

...

...

syntaxHighlightThemearta

...

  1. Создание

...

  1. виртуальной

...

  1. карты без проверки пин-кода.
    При создании виртуальной карты учитывается префикс и длина генерируемой карты. Длина генерируемой части номера карты должна быть в диапазоне от 4 до 200 символов.
    • Если по номеру телефона клиент не найден, то по указанному номеру телефона будет создан новый клиент. С помощью настройки задается номер специальной даты и ее имя. В качестве специальной даты назначается текущая дата. Остальные параметры клиента будут сохранены, исходя из тех данных, которые были направлены в запросе. Далее происходит генерация уникального номера карты. В процессе генерации отправляются запросы на кассовый сервер, в рамках которых происходит проверка уникального номера карты.
    • Если карта с генерируемым номером уже существует на кассовом сервере, то будет произведена повторная генерация. Количество повторных генераций вычисляется по формуле 9 * 10 длина генерируемого префикса.
    • Если клиент существует, но у него отсутствует карта, то будет сгенерирован уникальный номер карты. После завершения генерации уникального номера карты происходит процедура создания карты на кассовом сервере, а затем на бонусном сервере. Если в процессе создания карты возникла какая-либо ошибка, произойдет удаление ранее созданных карт на кассовом и бонусном серверах.

    • Если клиент существует, и у него есть привязанная карта, то в ответе на запрос будет направлено соответствующее сообщение.

  2. Резервирование анонимной карты.
    • Осуществляется генерация уникального номера анонимной карты. Если карта с генерируемым номером уже существует на кассовом сервере, то будет произведена повторная генерация. Количество повторных генераций вычисляется по формуле 9 * 10 длина генерируемого префикса
    • Привязка карты к клиенту не осуществляется

      Info

      Номера карт, которые не были использованы за время, предназначенное для резервирования анонимной карты, могут быть использованы повторно при включенной настройке use.cardnumber.repeatedly.


  3. Создание карты по номеру ранее зарезервированной анонимной карты.
    • После завершения генерации уникального номера карты происходит процедура создания карты на кассовом сервере, а затем на бонусном сервере. Если в процессе создания карты возникла какая-либо ошибка, произойдет удаление ранее созданных карт на кассовом и бонусном серверах.
    • Полученный в ходе генерации номер карты привязывается к необходимому клиенту.
Info
При включении настройки cashserver.start.generate.dict будет осуществлена генерация справочников после успешной привязки карты к клиенту.