Интернет Агент - мультиплатформенная альтернатива UTMTray

Технические вопросы по UTM 5.0
Kayfolom
Сообщения: 746
Зарегистрирован: Вс фев 12, 2006 17:15

Интернет Агент - мультиплатформенная альтернатива UTMTray

Сообщение Kayfolom » Ср июн 17, 2015 18:05

Добрый день коллеги!

Интернет агент для Windows, версия 1.1.7.0
http://internetagent.flintnet.ru/www/In ... tSetup.exe

Интернет агент для Android (бесплатная), версия 1.1.6.0
https://play.google.com/store/apps/deta ... ernetAgent

Интернет агент для Android (платная), версия 1.1.6.0
https://play.google.com/store/apps/deta ... etAgentPro

Хочу представить свою разработку, взамен прошлой альтернативной UTMTray семилетней давности ( viewtopic.php?t=5713 ).
Решено было отбросить странное название UTMTray, новое приложение названо "Интернет Агент".
Интернет агент разработан для следующих платформ:
  • Windows
    Android
    iOS (на подходе, жду сертификат разработчика)
    OS X
Ввиду множества устройств, на которые клиент может установить приложение, решено отказаться от авторизации по логину и паролю. Вместо этого авторизация происходит по API-ключу вида "4b8b367ab818d9145be373d12d5b7360474ddfed". В windows версии его достаточно скопировать в Личном кабинете и ставить нажатием кнопки в приложение, в мобильный версия добавлена возможность сфотографировать QR-код ключа.

Приложение максимально гибкое, каждый провайдер может отображать данные на свое усмотрение.
Внедрение элементарное, готовые шаблоны серверной части на php предоставлю.
Все бесплатно. Монетизируюсь за счет версий приложения под мобильные платформы. Под андроид две версии приложения - бесплатная с не навязчивой рекламой https://play.google.com/store/apps/deta ... ernetAgent , и платное за 100 рублей без рекламы https://play.google.com/store/apps/deta ... etAgentPro . Windows версию предоставлю бесплатно.

На http://internetagent.flintnet.ru/ размещен демонстрационный API-ключ. Установите приложение на телефон, отсканируйте QR-код.

С удовольствием отвечу на вопросы/предложения. Можно здесь, можно на емайл evgeniy.korepov@gmail.com

Изображение

Изображение

Изображение

Изображение

Изображение

Изображение

Изображение

Изображение

Изображение
Последний раз редактировалось Kayfolom Ср авг 26, 2015 08:55, всего редактировалось 1 раз.

Nik0n
Сообщения: 77
Зарегистрирован: Пн сен 14, 2009 13:53
Откуда: Екатеринбург
Контактная информация:

Сообщение Nik0n » Чт июн 18, 2015 07:00

Классно выглядит (на скриншотах), автор молодец!
IMXO Надо бы версию под Linux/FreeBSD.
Вопрос - требуется ли для сервера сервиса URFA Client (лицензия) на биллинге UTM5?

Аватара пользователя
TiRider
Сообщения: 568
Зарегистрирован: Сб июн 07, 2008 12:43

Сообщение TiRider » Чт июн 18, 2015 08:36

Kayfolom, руки растут откуда надо, ну как обычно ;) дай исходники что ли, или у тебя коммерческая версия будет?

Kayfolom
Сообщения: 746
Зарегистрирован: Вс фев 12, 2006 17:15

Сообщение Kayfolom » Чт июн 18, 2015 09:57

Nik0n писал(а):Классно выглядит (на скриншотах), автор молодец!
IMXO Надо бы версию под Linux/FreeBSD.
Вопрос - требуется ли для сервера сервиса URFA Client (лицензия) на биллинге UTM5?
Под никсы, к сожалению, версии пока нет и ее появление от меня не зависит. Как появится в среде разработки компилятор - так сразу портирую.

URFA Client не обязателен. На стороне сервера - обычный скрипт php.
Получение данных пользователя - напрямую из базы. Сервисы работающие с биллингом - urfa php. Но можно использовать любой другой доступный метод.

Kayfolom
Сообщения: 746
Зарегистрирован: Вс фев 12, 2006 17:15

Сообщение Kayfolom » Чт июн 18, 2015 10:21

TiRider писал(а):Kayfolom, руки растут откуда надо, ну как обычно ;) дай исходники что ли, или у тебя коммерческая версия будет?
Исходники не дам, версия относительно коммерческая. Для коллег операторов связи - все полностью бесплатно, ибо и так с нас дерут три шкуры все кому не лень ;-) Для Ваших клиентов win версия бесплатна, андроид версия в двух вариантах - бесплатная с рекламой и платная (100р.) без рекламы. Аднроид версии уже размещены в Play Market и доступны для ощупывания.
Версию приложения для Windows можно скачать тут http://internetagent.flintnet.ru/InternetAgentSetup.exe , API-ключ к нему здесь http://internetagent.flintnet.ru

Kayfolom
Сообщения: 746
Зарегистрирован: Вс фев 12, 2006 17:15

Сообщение Kayfolom » Чт июн 18, 2015 10:44

Добавлю еще инфы.
Интернет Агент разрабатывался как универсальное средство для любых биллингов. Версии приложения под любые платформы не привязаны к конкретному провайдеру. Привязка происходит в момент распознавания (вставки) клиентом API-ключа.
API-ключ на самом деле содержит в себе JSON строку вида

Код: Выделить всё

{ 
  "App" : "InternetAgent", 
  "URL" : "http://internetagent.flintnet.ru/InternetAgent/InternetAgent.php", 
  "APIKey" : "b9fb2b79d99095533ab0bab7e255c1408e7f82b1"
}
где App - идентификатор приложения, URL - интерфейс для работы с биллингом, APIKey - непосредственно сам API-ключ, по которому авторизуем пользователя. Для передачи пользователю JSON преобразуется в Hex.

API-ключ генерируется элементарным способом :
sha1(uniqid($login.$password,true).Date('Y.m.d_H:i:s'));
Генерация происходит автоматически при первом входе пользователя на соответствующую страницу Личного кабинета. Пользователь может в любой момент сгенерировать новый ключ в Личном кабинете, при подозрении что ключ уплыл в чужие руки. Приложения с старым ключем, на всех платформах, получат отказ в доступе.

В случае нашего биллинга, для хранения API-ключа и PIN-кода выбрана таблица user_additional_params - это позволяет без дополнительных телодвижений контролировать наличия и значения этих параметров прямо в админке.

Подробнее о PIN-коде - необязательное дополнение, позволяющее предотвратить несанкционированное пользование сервисами. При его наличии приложение будет запрашивать пин код для каждой попытки включить/выключить интернет, сделать подарок другу, взять кредит, активировать турбокнопку и т.д. Очень успешно используется в качестве родительского контроля - родитель может, находясь на работе, включать или выключать ребёнку домашний интернет, в зависимости от выполненных ребёнком квестов (сделал уроки, вымыл посуду и т.д.) ;-) В моей сети родители в восторге.

Kayfolom
Сообщения: 746
Зарегистрирован: Вс фев 12, 2006 17:15

Сообщение Kayfolom » Вс июн 21, 2015 14:19

http://internetagent.flintnet.ru/Intern ... Server.zip

Серверная часть. Пока слабо документированная, но буду при появлении вопрос добавлять. Так же много лишнего что вам не пригодится.

Итак, с чего начать:
1. Делаем в своих Личных кабинетах страницу API-ключ. Её функции просты - дать возможность клиенту скопировать ключ из текстового поля или отсканировать QR-код. Так же не помешает возможность перегенирировать API-ключ.
Длина ключа 40 байт. Храним ключ, в случае билинга UTM5, в таблице "user_additional_params", это позволяет контролировать его через интерфейс админки.
В моём случае:
paramid = 3 - для хранения API-ключа
paramid = 4 - для хранения PIN-кода

Формирование ключа происходит с помощью следующего кода на php

Код: Выделить всё

function GenerateAndStoreAPIKey($user_id,$db_connect) {
	$lcAPIKey = sha1(uniqid($_SESSION['URFA']['login'].$_SESSION['URFA']['password'],true).Date('Y.m.d_H:i:s'));
	$query = 'INSERT INTO user_additional_params (paramid,userid,`value`) VALUES (3,'.$user_id.',\''.$lcAPIKey.'\') ON DUPLICATE KEY UPDATE `value` = \''.$lcAPIKey.'\'';
	mysql_query($query,$db_connect);
return($lcAPIKey);
}
У меня Личный кабинет на joomla, плагины для API-ключа и PIN-кода лежат в архиве в папке joomla. Код простой, переделать под себя не составит труда.

Kayfolom
Сообщения: 746
Зарегистрирован: Вс фев 12, 2006 17:15

Сообщение Kayfolom » Вс июн 21, 2015 14:35

Обработчик команд Интернет Агента - \InternetAgent\InternetAgent.php
Рекомендую для пробы закомментировать всё кроме авторизации и к примеру исполнения команд Config и ShortInfo:

Код: Выделить всё

	case 'Config' :	
		$client_config['Notification'] = GetNotificationArray($Settings['account']);
		exit(ArrayToJsonRecursive($client_config));
// Отдаем JSON с краткой информацией
	case 'ShortInfo' : 
		$result_array = array();
 		$result_array = GetShortInfoAccountArray($Settings['account']);
		$result_str = ArrayToJsonRecursive($result_array);
		exit($result_str);
Вспомогательные функции (такие как ArrayToJsonRecursive) лежат в InternetAgent.func.php.
Функции получение информации от билинга (такие как GetShortInfoAccountArray) лежат в InternetAgent.BillingAPI.php.

Схема работы такова - информацию добавляем в массив, массив преобразуем в JSON и отправляем клиенту.

Разберём подробнее:
1. Интернет Агент отправляет серверу запрос GET
https://stat.flintnet.ru/InternetAgent/ ... ernetAgent

2. Сервер, если авторизация по ключу 07dfbe91d3e0b08be876e1b912ff30790df3565d прошла успешно, запускает $result_array = GetShortInfoAccountArray($Settings['account']); , в $result_array получаем

Код: Выделить всё

Array
( 
[Баланс] => Баланс 4 133,41р.
[Лицевой счет] => Лицевой счет 1
)
Потом функцией $result_str = ArrayToJsonRecursive($result_array); получаем

Код: Выделить всё

{
"Баланс": "Баланс 4 133,41р.",
"Лицевой счет": "Лицевой счет 1"
}
и отправляем клиенту.
Строки вроде "Баланс 4 133,41р." вы можете формировать на свое усмотрение, на любом языке, с любым форматированием денежной единицы. Это всего лишь строка которую увидит клиент.

Kayfolom
Сообщения: 746
Зарегистрирован: Вс фев 12, 2006 17:15

Сообщение Kayfolom » Пн июн 22, 2015 08:54

На мыло поступают вопросы о покупке приложения. Дабы предоставлять своим клиентам версию приложения без рекламы. Процитирую мои ответы.
По поводу рекламы : "В бесплатном приложении реклама Google AdMob. Google гарантирует отсутствие не законных материалов в рекламе. Так же реклама формируется на базе интересов пользователя. И эти интересы всегда можно обнулить, сбросив рекламный идентификатор google."

По поводу покупки приложения для своих клиентов:
Если желаете приобретать приложение для своих пользователей, то в этом нет никаких проблем. Вот кусок лога серверной части:
22.06.2015 08:39:49 10.0.1.233 00:1e:8c:a9:5f:3e 2ac549 ShortInfo Windows 1.1.3.0 InternetAgent
22.06.2015 08:39:49 10.0.1.233 00:1e:8c:a9:5f:3e 2ac549 MessageReceive Windows 1.1.3.0 InternetAgent
22.06.2015 08:40:05 10.0.1.244 a0:1d:48:de:4e:b0 fe42f6 MessageReceive Windows 1.1.1.0 InternetAgent
22.06.2015 08:40:09 10.0.0.25 94:de:80:01:78:43 f3565d Config Android 1.1.3.0 InternetAgentLite
22.06.2015 08:40:12 10.0.0.25 94:de:80:01:78:43 f3565d AllInfo Android 1.1.3.0 InternetAgentLite
22.06.2015 08:40:12 10.0.0.25 94:de:80:01:78:43 f3565d News Android 1.1.3.0 InternetAgentLite
22.06.2015 08:40:12 10.0.0.25 94:de:80:01:78:43 f3565d MessageReceive Android 1.1.3.0 InternetAgentLite
22.06.2015 08:40:13 10.0.0.25 94:de:80:01:78:43 f3565d Services Android 1.1.3.0 InternetAgentLite
22.06.2015 08:40:14 10.0.1.137 14:d6:4d:78:be:c1 28dcd1 ShortInfo Windows 1.1.3.0 InternetAgent
22.06.2015 08:40:15 10.0.1.137 14:d6:4d:78:be:c1 28dcd1 MessageReceive Windows 1.1.3.0 InternetAgent
22.06.2015 08:40:21 10.0.3.19 c8:d3:a3:30:00:11 36a1c0 ShortInfo Windows 1.1.3.0 InternetAgent
22.06.2015 08:40:21 10.0.4.128 bc:f6:85:4a:31:dd 4ddfed ShortInfo Windows 1.1.3.0 InternetAgent
22.06.2015 08:40:21 10.0.3.19 c8:d3:a3:30:00:11 36a1c0 MessageReceive Windows 1.1.3.0 InternetAgent
22.06.2015 08:40:22 10.0.4.128 bc:f6:85:4a:31:dd 4ddfed MessageReceive Windows 1.1.3.0 InternetAgent
22.06.2015 08:40:26 10.0.1.42 ac:f1:df:cc:c1:bd a2dfc6 MessageReceive Windows 1.1.3.0 InternetAgent
22.06.2015 08:40:28 10.0.0.25 94:de:80:01:78:43 f3565d Config Android 1.1.3.0 InternetAgentPro
22.06.2015 08:40:29 10.0.0.25 94:de:80:01:78:43 f3565d AllInfo Android 1.1.3.0 InternetAgentPro
22.06.2015 08:40:29 10.0.1.233 00:1e:8c:a9:5f:3e 2ac549 MessageReceive Windows 1.1.3.0 InternetAgent
22.06.2015 08:40:30 10.0.0.25 94:de:80:01:78:43 f3565d News Android 1.1.3.0 InternetAgentPro
22.06.2015 08:40:30 10.0.0.25 94:de:80:01:78:43 f3565d MessageReceive Android 1.1.3.0 InternetAgentPro
22.06.2015 08:40:30 10.0.0.25 94:de:80:01:78:43 f3565d Services Android 1.1.3.0 InternetAgentPro
22.06.2015 08:40:45 10.0.1.244 a0:1d:48:de:4e:b0 fe42f6 MessageReceive Windows 1.1.1.0 InternetAgent

Вы можете видеть какой именно версией пользуются клиенты и
компенсировать им покупку InternetAgentPro пополнением Лицевого счета билинга.

Kayfolom
Сообщения: 746
Зарегистрирован: Вс фев 12, 2006 17:15

Сообщение Kayfolom » Пн июн 22, 2015 09:02

Несколько добавлений по поводу функционала.
Приложение работает и в отсутствие подключения к Интернет. Одним из толчков к написанию мобильной версии, были звонки от клиентов "Я стою у терминала, хочу заплатить за интернет, но я все забыл - номер лицевого счета, название провайдера и сумму на которую надо пополнить".
Приложение кэширует последние полученные данные с сервера и будучи запущенное в отсутствие Интернет покажет всю необходимую информацию клиенту.
Поля в разделе Информация, отмеченные значком i - интерактивные. Т.е. клиент нажав на телефон провайдера (техподдержки или как вы назовете этот пункт или пункты) запустит приложение телефон и дозвонится до нужного номера. Т.е. при проблемах с связью, клиенту не надо искать договор и контактные телефоны.

Cian
Сообщения: 33
Зарегистрирован: Чт ноя 20, 2014 00:26

Сообщение Cian » Ср июн 24, 2015 22:38

эх, хотел потестить, Приложение несовместимо с вашим устройством.(LG g3 s(android 5.0) ) :roll:

Kayfolom
Сообщения: 746
Зарегистрирован: Вс фев 12, 2006 17:15

Сообщение Kayfolom » Чт июн 25, 2015 12:02

Cian писал(а):эх, хотел потестить, Приложение несовместимо с вашим устройством.(LG g3 s(android 5.0) ) :roll:
Хм. Разберусь. С ходу причин не совместимости не увидел...
Совместимо с
LGE LG G3 A– tigers
LGE LG G3– g3
LGE LG G3 Cat.6– tiger6
Но LG g3 s в списке гугля нет, хотя вроде только тактовая частота ниже...

Cian
Сообщения: 33
Зарегистрирован: Чт ноя 20, 2014 00:26

Сообщение Cian » Пт июн 26, 2015 13:30

Kayfolom писал(а):
Cian писал(а):эх, хотел потестить, Приложение несовместимо с вашим устройством.(LG g3 s(android 5.0) ) :roll:
Хм. Разберусь. С ходу причин не совместимости не увидел...
Совместимо с
LGE LG G3 A– tigers
LGE LG G3– g3
LGE LG G3 Cat.6– tiger6
Но LG g3 s в списке гугля нет, хотя вроде только тактовая частота ниже...
Изображение

Kayfolom
Сообщения: 746
Зарегистрирован: Вс фев 12, 2006 17:15

Сообщение Kayfolom » Пт июн 26, 2015 13:57

Cian писал(а):
Kayfolom писал(а):
Cian писал(а):эх, хотел потестить, Приложение несовместимо с вашим устройством.(LG g3 s(android 5.0) ) :roll:
Хм. Разберусь. С ходу причин не совместимости не увидел...
Совместимо с
LGE LG G3 A– tigers
LGE LG G3– g3
LGE LG G3 Cat.6– tiger6
Но LG g3 s в списке гугля нет, хотя вроде только тактовая частота ниже...
Изображение
А посмотри другие мои приложения, там у всех не совместимость? Хочу выяснить где проблема зарылась...

Cian
Сообщения: 33
Зарегистрирован: Чт ноя 20, 2014 00:26

Сообщение Cian » Пт июн 26, 2015 14:28

Kayfolom писал(а):
Cian писал(а):
Kayfolom писал(а):
Cian писал(а):эх, хотел потестить, Приложение несовместимо с вашим устройством.(LG g3 s(android 5.0) ) :roll:
Хм. Разберусь. С ходу причин не совместимости не увидел...
Совместимо с
LGE LG G3 A– tigers
LGE LG G3– g3
LGE LG G3 Cat.6– tiger6
Но LG g3 s в списке гугля нет, хотя вроде только тактовая частота ниже...
Изображение
А посмотри другие мои приложения, там у всех не совместимость? Хочу выяснить где проблема зарылась...
Media Refresh for TP-LINK Free и Рация могу установить

Ответить