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
Installation
Системные требования
Для установки сервиса SmartTransactions необходимо наличие:
RDBMS | PostgreSQL 9.3 or higher |
Servlet container | Apache Tomcat 7 |
Состав поставки
- SmartTransactionsEndpoint.war - веб-приложение сервиса
- smt_core.backup - дамп базы core
- smt_merchants.backup - дамп базы merchants
Инструкция по установке
- Создать новую базу smt_merchants и установить нужного владельца
- Выбрать новую базу smt_merchants и нажать на ней правой клавишей. В контекстном меню выбрать пункт “Восстановить..”
- В открывшемся окне выбрать исходный файл (smt_merchants.backup), на вкладке “Параметры восстановления #1” поставить флажок напротив пункта Не сохранять - Владелец
- Запустить восстановление
- Создать новую базу smt_core и установить нужного владельца
- Выбрать новую базу smt_core и нажать на ней правой клавишей. В контекстном меню выбрать пункт “Восстановить..”
- В открывшемся окне выбрать исходный файл (smt_core.backup), на вкладке “Параметры восстановления #1” поставить флажок напротив пункта Не сохранять - Владелец
- Запустить восстановление
- Скопировать
SmartTransactionsEndpoint.war</code> в <code>${TOMCAT_HOME}/webapps
- Скопировать
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
- Раздеполить SmartTransactionsConsole.war и SmartTransactionsEndpoint.war
- Задеплоить новые версии, сначала SmartTransactionsEndpoint.war, а затем SmartTransactionsConsole.war
Инструкция по обновлению базы мерчантов
- Получить от IDA Mobile свежий дамп базы мерчантов smt_merchants.backup
- Остановить Tomcat, на котором работает SmartTransactions
- Запустить pgAdmin и подключиться к нужному серверу СУБД
- Удалить базу данных smt_merchants (предварительно посмотрев какому владельцу она принадлежит)
- Создать новую базу smt_merchants и установить того владельца, который был в удалённой БД на шаге 4
- Выбрать новую базу и нажать на ней правой клавишей. В контекстном меню выбрать пункт “Восстановить..”
- В открывшемся окне выбрать исходный файл (из шага 1), на вкладке “Параметры восстановления #1” поставить флажок напротив пункта Не сохранять - Владелец
- Запустить восстановление
- После завершения восстановления запустить 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"
/>