Пещера программиста
23Янв/093

Программа проверки счета в биллинговой системе UTM. Наши дни

В предыдущих записях, я познакомил вас с моим творением ( ну натворил то...), под названием UеmCheck. Было это давно, многое изменилось. А программа осталась практически на той же стадии.

Написал я её до версии 0.9.2 , а провайдер решил в это время сменить версию билинга. Менял он медленно, в начале в одном районе , потом в другом. До моего района дошло только через год. И так это меня расстроило ( вру, лень было), что бросил я программу до лучших времен. И вот таки в моем районе стоит новый билинг, и судя по всему в нем уже нельзя что то менять по своему усмотрению в интерфейсе (дает надежду на простое решение). Видимо пришло время её дорабатывать.Сделаем пока первый «костыль» для старой версии — показ остатка на счету.

Приглядевшись к новому билингу замечаем

  1. Вход в билинг осуществляется через другой адрес. Раньше было https://server/cgi-bin/utm/aaa , а сейчас https://server/cgi-bin/utm5/aaa6 . ( хотя это у меня в районе только, в других aaa5, но мы «костыль» пишем)
  2. Вход происходит в один переход, т.е. ввели логин и пароль и мы уже на странице статистики (раньше было 2 перехода)
  3. На форме ввода логина и пароля изменилось значение скрытого параметра cmd
  4. Страница билинга сделана в формате UTF. А это в начале ставит в тупик — получается надо строки обрабатывать в UTF, соответственно другие функции и тому подобное. А глядя на перемешку TCHAR и CHAR в коде, становится уныло. Но ведь любой UTF представим в нашей кодировке тоже, но «корявыми» символами. А они как раз умещаются в тип CHAR. Таким образом искомая нами строка будет
    Баланс основного счета</TD><TD class=\"utm-table\" align=\"left\">
    Только вот в строке есть переход на новую строку. Т.к. вся система рассчитана на nix системы, то код символа перехода строки «x0A».
  5. В нашем городе нету тарифов с предоплаченным трафиком, так что это мы обновлять не будем — протестировать не начем.

Определившись с нововведениями, начнем править код. Нужно изменить следующее:
в файле UtmCheck.cpp строку

GetPrivateProfileString(_T("Settings"),_T("balans"),_T("Баланс (руб.)</TD><TD width=50% bgcolor=#FFFFFF>"),

меняем на

GetPrivateProfileString(_T("Settings"),_T("balans"),_T("Баланс основного счета</TD>\x0A<TD class=\"utm-table\" align=\"left\">"),

в файле inet.cpp  строку

const char* FirstPage="/cgi-bin/utm/aaa";

меняем на

const char* FirstPage="/cgi-bin/utm5/aaa6 ";

( пробела между 6 и " нету, проблема с отображением)

 strcat(param,"&cmd=user_verify");

меняем на

 strcat(param,"&amp;cmd=login");

блок

if (!GetTextFromPage(strs,FistTagLink,LastTagLink,buffer))
{
return ERROR_READ_DATA;
}
strs.clear();
//second page
int e1;
if ((e1=GetWebPage(hConnect,VerbGet,buffer,"",&strs))!=ERROR_NO) return e1;

закомментируем.

Теперь компилируем, и в итоге получаем рабочий вариант для UTM 5 версии.

UtmCheck_src0.9.3.zip (21.8 KiB, скачано: 117) - текущий рабочий комплект
UtmCheck_src.zip (21.7 KiB, скачано: 144)  — исходники на Visual C++ 2005 текущей версии

Комментарии (3) Пинги (0)
  1. Что не так?

    INI:

    [Settings]
    AutoUpdate=0
    UpdateTime=0
    TimeShow=10
    ;сервер статистики
    server="https://bill.8mkr.ru/cgi-bin/utm5/aaa6"
    ;balans="Баланс (у.е.)"

    [user]


    login="***************"
    password="*****************"

    LOG:

    01/23/09 23:47:59 Ошибка. Получены неверные данные.
    01/23/09 23:48:50 Ошибка 12005
    01/23/09 23:48:53 Ошибка 12005

  2. server=bill.8mkr.ru или ip адресс

    пароль надо вводить через окно настроек, там он немного шифруется

  3. Оооооо!!! курто! заработало! Курто, Леха!

    Давай, еще надо бы сделать платежи через прогу...

    И ваааще шикарно будет!


Оставить комментарий


Spam protection by WP Captcha-Free

Нет обратных ссылок на эту запись.