NAV
JSON cURL

Description

Сервис SmartTransactions предоставляет возможность отображать расширенную информацию (название и логотип) об операциях на мобильном приложении.

Решение работает совместно с продуктом iDa Pro.

Architecture

Сервис SmartTransactions устанавливается в зоне iDa Pro или iDa Proxy, возможно, на том же самом веб-контейнере. Необходимо, чтобы iDa Pro имел доступ к сервису.

При каждом запросе списка транзакий iDa Pro запрашивает расширенное описание транзакий, в случае наличия этой информации она отправляется на клиент. На клиент отправляется URL логотипа, непосредственно изображение запрашивается клиентом из облачного сервиса.

Data processing

Для поиска расширенной информации по транзакции используются следующие поля:

key type status comment
text string 1..1 данные из POS-терминала
city string 0..1 город
sic int 0..1 mcc код операции

В случае связки с PRO сервером в качестве ключа text используется поле description TransactionDTO

TransactionDTO

Для работы модуля необходимо в TransactionDTO подавать ключ transactionСurrency текстовый код валюты по ISO 4217

Protocol

Request:

curl -X POST -H "Content-Type: application/json" -d '{"0": {"text": "Starbucks", "sic" : 5813}, "1": {"text": "Burger king"}}' http://dev.idamob.ru/SmartTransactionsEndpoint/describeTransactions

Response:

{
  "0": {
    "category": {
      "name": "Restaurants & Cafes",
      "iconURL": "http://static.idamob.ru/smarttransaction/category/${image.type}/restaurants_and_cafes.png",
      "color": 14841934
    },
    "merchant": {
      "name": "Starbucks",
      "logoURL": "http://res.cloudinary.com/instabank/image/upload/c_scale,w_64/v1402049419/ic_starbucks_pgbkrg.png"
    }
  },
  "1": {
    "category": null,
    "merchant": {
      "name": "Burger King",
      "logoURL": "http://res.cloudinary.com/instabank/image/upload/v1402048892/ic_bking_ju8w61.png"
    }
  }
}

Сервис SmartTransactions использует JSON over HTTP

iconURL

URL для доступа к логотипу категории на мобильном распознает параметр для удобства расположения на сервере и оптимизации размеров - http://…/${image.type}/name.png и будет автоматически в зависимости от платформы подменять его на ios-small или android-small

comment url
пришло от сервиса http://static.idamob.ru/smarttransaction/category/${image.type}/restaurants_and_cafes.png
на iPhone стало http://static.idamob.ru/smarttransaction/category/ios-small/restaurants_and_cafes.png
на Android стало http://static.idamob.ru/smarttransaction/category/ios-small/restaurants_and_cafes.png

logoURL

URL для доступа к логотипу мерчента распознает параметр c_scale,w_64 для удобства скелинга картинки и оптимизации трафика и размеров http://...upload/c_scale,w_64/v00000000000/name.png

size url
64х64 http://res.cloudinary.com/instabank/image/upload/c_scale,w_64/v1402049419/ic_starbucks_pgbkrg.png
640x640 http://res.cloudinary.com/instabank/image/upload/c_scale,w_640/v1402049419/ic_starbucks_pgbkrg.png

Installation

Системные требования

Для установки сервиса SmartTransactions необходимо наличие:

RDBMS PostgreSQL 9.3 or higher
Servlet container Apache Tomcat 7

Состав поставки

Инструкция по установке

  1. Создать новую базу smt_merchants и установить нужного владельца
  2. Выбрать новую базу smt_merchants и нажать на ней правой клавишей. В контекстном меню выбрать пункт “Восстановить..”
  3. В открывшемся окне выбрать исходный файл (smt_merchants.backup), на вкладке “Параметры восстановления #1” поставить флажок напротив пункта Не сохранять - Владелец
  4. Запустить восстановление
  5. Создать новую базу smt_core и установить нужного владельца
  6. Выбрать новую базу smt_core и нажать на ней правой клавишей. В контекстном меню выбрать пункт “Восстановить..”
  7. В открывшемся окне выбрать исходный файл (smt_core.backup), на вкладке “Параметры восстановления #1” поставить флажок напротив пункта Не сохранять - Владелец
  8. Запустить восстановление
  9. Скопировать SmartTransactionsEndpoint.war</code> в <code>${TOMCAT_HOME}/webapps
  10. Скопировать SmartTransactionsConsole.war</code> в <code>${TOMCAT_HOME}/webapps

Настройка приложения

Следующие параметры приложения находятся в файле ${TOMCAT_HOME}/conf/server.xml внутри тега GlobalNamingResources: <Resource name="jdbc/core" url="jdbc:postgresql://localhost:5432/smt_core" username="username" password="password" auth="Container" type="javax.sql.DataSource" driverClassName="org.postgresql.Driver" maxActive="20" maxIdle="10" maxWait="-1"/>

<Resource name="jdbc/merchants" url="jdbc:postgresql://localhost:5432/smt_merchants" username="username" password="password" auth="Container" type="javax.sql.DataSource" driverClassName="org.postgresql.Driver" maxActive="20" maxIdle="10" maxWait="-1"/>

Проверка успешности установки

Открыть в браузре 127.0.0.1:8080/SmartTransactionsEndpoint/ При успешной установке на открывшейся странице отобразится версия сборки, Service URL, количество доступных объектов (больше 0)

Настройка модуля iDaPro

Приложение Pro имеет доступ к сервису SmartTransactions по протоколу JSON over HTTP. Для этого файле ${PRO_TOMCAT_HOME}/webapps/pro/WEB-INF/classes/smarttransactions.properties требуется указать в свойстве service_url значение Service URL, полученное после установки сервиса SmartTransactions

Инструкция по обновлению сервиса SmartTransactions

  1. Раздеполить SmartTransactionsConsole.war и SmartTransactionsEndpoint.war
  2. Задеплоить новые версии, сначала SmartTransactionsEndpoint.war, а затем SmartTransactionsConsole.war

Инструкция по обновлению базы мерчантов

  1. Получить от IDA Mobile свежий дамп базы мерчантов smt_merchants.backup
  2. Остановить Tomcat, на котором работает SmartTransactions
  3. Запустить pgAdmin и подключиться к нужному серверу СУБД
  4. Удалить базу данных smt_merchants (предварительно посмотрев какому владельцу она принадлежит)
  5. Создать новую базу smt_merchants и установить того владельца, который был в удалённой БД на шаге 4
  6. Выбрать новую базу и нажать на ней правой клавишей. В контекстном меню выбрать пункт “Восстановить..”
  7. В открывшемся окне выбрать исходный файл (из шага 1), на вкладке “Параметры восстановления #1” поставить флажок напротив пункта Не сохранять - Владелец
  8. Запустить восстановление
  9. После завершения восстановления запустить Tomcat

FAQ

Not found merchants

Запросы, для которых не нашлось описание мерчента по ключевым словам, попадают в таблицу missed_queries

Current version

Запрос http://{HOST}:{PORT}/SmartTransactionsEndpoint/version возвращает текущую версию сборки

Statistics collection mode

В режиме сбора статистики сервис только накапливает ненайденные запросы, в ответе всегда возвращается пустой список. Для переключения нужно в файле ${TOMCAT_HOME}/webapps/SmartTransactionsEndpoint/META-INF/context.xml установить параметр silentMode в true

UTF-8 support

В server.xml необжодимо добавить URIEncoding=“UTF-8” как в примере:

<Connector  port="8080"
            protocol="HTTP/1.1"
            connectionTimeout="20000"
            redirectPort="8443"
            URIEncoding="UTF-8"
/>