баланс мегафон. есть живое решение ?

Всё, что не подходит под вышеперечисленные разделы

Модератор: immortal

denis
Сообщения: 284
Зарегистрирован: Сб ноя 24, 2012 11:47 am
Благодарил (а): 29 раз
Поблагодарили: 28 раз

Re: баланс мегафон. есть живое решение ?

Сообщение denis » Вт ноя 24, 2015 8:56 am

еще один вопрос: как узнать IP своего модема в своем маршрутизаторе?! не думал, что он вообще существует. или надо обязательно перепрошить под hilink и тогда он будет в списке устройств в маршрутизаторе?
zahar13
Сообщения: 3
Зарегистрирован: Чт ноя 26, 2015 12:27 pm
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Re: баланс мегафон. есть живое решение ?

Сообщение zahar13 » Вт ноя 24, 2015 3:19 pm

Обязательно надо прошивать. И IP будет всегда один - 192.168.8.1
denis
Сообщения: 284
Зарегистрирован: Сб ноя 24, 2012 11:47 am
Благодарил (а): 29 раз
Поблагодарили: 28 раз

Re: баланс мегафон. есть живое решение ?

Сообщение denis » Вт ноя 24, 2015 6:21 pm

ок. теперь все понятно.
AlexK-71
Сообщения: 28
Зарегистрирован: Сб ноя 29, 2014 12:20 am
Благодарил (а): 7 раз
Поблагодарили: 0

Re: баланс мегафон. есть живое решение ?

Сообщение AlexK-71 » Ср дек 30, 2015 2:09 pm

zahar13 писал(а):На самом деле без разницы - в роутер он воткнут или в USB. В любом случае он выступает как маленький маршрутизатор, с внутренним IP адресом 192.168.8.1. На этом адресе доступен API, который можно дергать.

Скрипт аттачу.
А как использовать? Закинул в lib пытаюсь вызвать функции и ни чего не происходит?

Спасибо.
Singib
Сообщения: 3
Зарегистрирован: Сб янв 02, 2016 7:59 pm
Благодарил (а): 0
Поблагодарили: 1 раз

Re: баланс мегафон. есть живое решение ?

Сообщение Singib » Сб янв 02, 2016 8:12 pm

Дело в том, что для получения баланса надо вызвать USSD функцию. А ответ приходит не мгновенно, а асинхронно. Поэтому надо поставить таймер на +15 секунд, например, и тогда уже заглянуть в ответ.
То есть, делаешь скрипт, или кнопку, на которую вешаешь вызов HiLink::sendUSSDRequest('*100#');
Сразу в этом скрипте SetTimer, который через 15 секунд вызовет другой скрипт.
А уже он, в свою очередь, делает HiLink::getUSSDResponse(); Результат этого вызова - и есть отклик от провайдера.
Его еще нужно распарсить, потому что Мегафон, например, не только сумму баланса возвращает, а еще и всякую нягу добавляет в виде рекламы и информации.

Как-то так.
Код в точности не могу привести, написал по памяти, потому что тот инстанс MD мне сейчас недоступен.
За это сообщение автора Singib поблагодарил:
AlexK-71 (Пн янв 11, 2016 1:13 pm)
Рейтинг: 1.16%
AlexK-71
Сообщения: 28
Зарегистрирован: Сб ноя 29, 2014 12:20 am
Благодарил (а): 7 раз
Поблагодарили: 0

Re: баланс мегафон. есть живое решение ?

Сообщение AlexK-71 » Вт фев 02, 2016 4:53 pm

Доброго времени суток.

zahar13, а как можно дополнить Ваш скрипт на получение смс? Дело в том, что у мегафона есть запрос *558# (остатки по пакетам), но ответ приходит в виде смс. И не помешала бы возможность перезагрузки модема.
Сам к сожалению не осилил, слабоват в php и xml.

Спасибо.
AlexK-71
Сообщения: 28
Зарегистрирован: Сб ноя 29, 2014 12:20 am
Благодарил (а): 7 раз
Поблагодарили: 0

Re: баланс мегафон. есть живое решение ?

Сообщение AlexK-71 » Ср фев 03, 2016 11:25 am

Доброго времени суток.

zahar13, а как можно дополнить Ваш скрипт на получение смс? Дело в том, что у мегафона есть запрос *558# (остатки по пакетам), но ответ приходит в виде смс. И не помешала бы возможность перезагрузки модема.
Сам к сожалению не осилил, слабоват в php и xml.

Спасибо.

PS В теме не отображается часть постов, хотя в режиме ответа они присутствуют.
craber
Сообщения: 38
Зарегистрирован: Ср апр 27, 2016 11:19 pm
Благодарил (а): 11 раз
Поблагодарили: 2 раза

Re: баланс мегафон. есть живое решение ?

Сообщение craber » Вт ноя 08, 2016 11:39 pm

Кто как на данный момент выдергивает баланс?
По этой ссылке выдает только бананс - https://moscowsg.megafon.ru/MEGAFON_BAL ... D=YYYYYYYY
А мне нужно инфо по остаткам минут , смс, интернет.

Пробовал выдергивать через "Веб-переменные" со странички MobileBalance, но MajorDomo видимо повторно из кеша проверяет. Выдает старые значения, хотя уже есть изменения.

Так же пробовал написать сценарий парсинга со странички MobileBalance.

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

require_once 'simple_html_dom.php';
$html = file_get_html('http://192.168.1.2:19778/12345678/');        // 12345678 - пароль
$balance = $html->find('td[id=Balance]');
$sms = $html->find('td[id=SMS]');
$minut = $html->find('td[id=Min]');
$internet = $html->find('td[id=Internet]');
$QueryTime = $html->find('td[id=LastQueryTime]');

echo $balance[0]; - Первый абонент
echo $balance[1]; - Второй абонент

//sg('admin.tel_balance', $balance[0]);
//sg('kisa.tel_balance', $balance[1]);  
Вывод echo выдает правильные данные, но как пытаюсь установить значения объекту, выдает ошибку:
Warning: json_encode(): recursion detected in C:\_majordomo\htdocs\lib\caching.class.php on line 107
И присваивает значение:

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

<td id="Balance">16.26</td>
Подскажет кто?
ErmolenkoM
Сообщения: 560
Зарегистрирован: Ср сен 04, 2013 10:31 am
Откуда: Самара
Благодарил (а): 99 раз
Поблагодарили: 140 раз
Контактная информация:

Re: баланс мегафон. есть живое решение ?

Сообщение ErmolenkoM » Ср ноя 09, 2016 10:08 pm

craber писал(а):Кто как на данный момент выдергивает баланс?
Подскажет кто?
https://geektimes.ru/post/247314/
Последний комментарий:
Если читаешь в 2016, пользуй вот такую команду для уточнения баланса(до рублей обрезаем) — wget https://sm.megafon.ru/sm/client/balance ... ssword=ыыы -q -O -|grep balance|cut -d "<" -f2|cut -d ">" -f2|cut -d. -f 1

У меня не заработало :-(
aka msh555
Cubian на Cubietruck, Connect
Ged
Сообщения: 105
Зарегистрирован: Чт окт 20, 2016 10:59 pm
Благодарил (а): 1 раз
Поблагодарили: 7 раз

Re: баланс мегафон. есть живое решение ?

Сообщение Ged » Чт ноя 10, 2016 9:24 pm

У меня работает:

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

$url_prefix=$this->getProperty('url'); // https://sm.megafon.ru/sm/client/balance/?
$login=$this->getProperty('login');
$pass=$this->getProperty('pass');
$balancemin=$this->getProperty('balanceMin');
$oldbalance=$this->getProperty('balance');
$url=$url_prefix.'login='.$login.'&password='.$pass;
$data_file=$url; // адрес xml файла
$xml = simplexml_load_file($data_file); // раскладываем xml на массив
if ($xml->balance==0||!isset($xml->balance)) {
 say("Какая-то беда. Получили неправильное значение баланса:".$xml->balance);
 return;
}
if ($oldbalance<>$xml->balance)
{
    $this->setProperty('balance',$xml->balance);
}
if ($balancemin>$xml->balance) 
{$this->callMethod("NotifyOn");}
//say('Обновили для '.$this->object_title);    
Есть подозрение, что должен быть включен мультифон и пароль должен быть от него.

*** Сообщение запрещено. Сообщение похоже на спам. ***
Ответить