urfaclient на php

Вопросы по сопутствующим продуктам производства партнеров
Ответить
Аватара пользователя
Chris
Сообщения: 2323
Зарегистрирован: Чт июн 02, 2005 14:08
Откуда: 33 76 77 71 86 37 98

Сообщение Chris »

Кризис, запчасти на БМВ подорожали у Сашки ))))

mikkey finn
Сообщения: 1612
Зарегистрирован: Пт ноя 10, 2006 15:23

Сообщение mikkey finn »

Это не кризис. Это повышение пошлин на ввоз иномарок и соотв дефицит. А если БэМэВэ калининградская - то могу только посочувствовать... Не умеют в РФ собирать, тем более чужое отлаженное.

Аватара пользователя
Ata-man
Сообщения: 427
Зарегистрирован: Пт янв 21, 2005 10:04
Откуда: Екатеринбург

Сообщение Ata-man »

Вот еще пара функций (уже проверено :) )

Список групп:

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

function rpcf_get_groups_list($user_id) { //0x2400
    $ret=array();
    if (!urfa_call(0x2400)) {
        print "Error calling function ". __FUNCTION__ ."\n";
        return FALSE;
    }
    $packet = new Packet();
    $packet->DataSetInt($user_id);
    urfa_send_param($packet);
    $x = urfa_get_data();
    $count=$x->DataGetInt();
    $ret['count']=$count;
    for &#40;$i=0;$i<$count;$i++&#41; &#123;
        $x = urfa_get_data&#40;&#41;;
        $group&#91;'group_id'&#93;=$x->DataGetInt&#40;&#41;;
        $group&#91;'group_name'&#93;=$x->DataGetString&#40;&#41;;
        $ret&#91;'group'&#93;&#91;&#93;=$group;
    &#125;
    urfa_get_data&#40;&#41;;
    return $ret;
&#125;
Правда не понятно, зачем здесь user_id?

Список групп по юзеру:

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

function rpcf_get_groups_for_user&#40;$user_id&#41; &#123; //0x2550
    $ret=array&#40;&#41;;
    if &#40;!urfa_call&#40;0x2550&#41;&#41; &#123;
        print "Error calling function ". __FUNCTION__ ."\n";
        return FALSE;
    &#125;
    $packet = new Packet&#40;&#41;;
    $packet->DataSetInt&#40;$user_id&#41;;
    urfa_send_param&#40;$packet&#41;;
    $x = urfa_get_data&#40;&#41;;
    $count=$x->DataGetInt&#40;&#41;;
    $ret&#91;'count'&#93;=$count;
    for &#40;$i=0;$i<$count;$i++&#41; &#123;
        $group&#91;'group_id'&#93;=$x->DataGetInt&#40;&#41;;
        $group&#91;'group_name'&#93;=$x->DataGetString&#40;&#41;;
        $ret&#91;'group'&#93;&#91;&#93;=$group;
    &#125;
    urfa_get_data&#40;&#41;;
    return $ret;
&#125;

Аватара пользователя
ds
Сообщения: 380
Зарегистрирован: Пн сен 18, 2006 14:06

Сообщение ds »

Вот обновил клиента
http://62.168.232.78/cli/urfaclient-1.0b3.tar.gz

Список изменений:

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

Поддержка SSL шифрования по умолчанию. Для отключения указать третий параметр FALSE в функции urfa_login &#40;например urfa_login&#40;'web','web',FALSE&#41;.

Добавил функции&#58;
rpcf_get_user_account_list&#40;$user_id&#41;; //0x2033
rpcf_block_account&#40;$account_id,$block&#41;; //0x2037
rpcf_get_tclasses&#40;&#41;; //0x2300
rpcf_general_report_new&#40;$user_id=0,$account_id=0,$group_id=0,$discount_period_id=0,$start_date,$end_date&#41;; //0x3020
rpcf_add_to_ipgroup&#40;$id,$ip,$mask,$login="",$pass="",$mac="",$cid=""&#41;; //0x5200
rpcf_delete_from_ipgroup_by_ipgroup&#40;$id,$ip,$mask&#41;; //0x5102
rpcf_get_all_services_for_user&#40;$account_id&#41;; //0x2700
rpcf_remove_user_from_group&#40;$user_id,$group_id&#41;; //0x2408
rpcf_add_group_to_user&#40;$user_id,$group_id&#41;; //0x2552
rpcf_get_user_tariffs&#40;$user_id, $account_id=0&#41;; //0x3017
rpcf_delete_from_ipgroup&#40;$slink_id,$ip,$mask="255.255.255.255"&#41;; //0x5101
rpcf_get_iptraffic_service_link&#40;$slink_id&#41;; //0x2702
rpcf_get_groups_list&#40;$user_id=0&#41;; //0x2400
rpcf_get_groups_for_user&#40;$user_id&#41;; //0x2550
rpcf_get_new_secret&#40;$len=8&#41;; //0x0060
rpcf_get_user_by_account&#40;$account_id&#41;; //0x2026
rpcf_get_discount_period&#40;$period_id&#41;; //0x2602
rpcf_get_tariff&#40;$tariff_id&#41;; //0x3011
rpcf_get_sys_users_list&#40;&#41;; //0x4405
rpcf_get_sys_user&#40;$user_id&#41;; //0x4409

Список всех реализованных функций находится в Changelog архива. Все функции протестированы, в том числе на предмет ошибочных параметров.

По ходу бага в api.xml функция rpcf_add_to_ipgroup. Написано что при ошибке возвращает 0, на самом деле -1. Можете проверить? у меня 005

Аватара пользователя
ds
Сообщения: 380
Зарегистрирован: Пн сен 18, 2006 14:06

Сообщение ds »

Буду выкладывать в шапке темы последнюю версию, чтоб не искать долго.

Есть еще какие-нибудь предложения? я подумаю

AndrewE
Сообщения: 230
Зарегистрирован: Пн июл 17, 2006 07:38

Сообщение AndrewE »

ну наверное только выполнять команды от имени абонента. т.е. как urfaclient с ключом -u остальное уже не нужно, все есть для счастья.
осталось убедить ребят из netup не прикрывать лазайку.

Аватара пользователя
ds
Сообщения: 380
Зарегистрирован: Пн сен 18, 2006 14:06

Сообщение ds »

AndrewE писал(а):ну наверное только выполнять команды от имени абонента. т.е. как urfaclient с ключом -u остальное уже не нужно, все есть для счастья.
Ага, скоро доделаю.
AndrewE писал(а): осталось убедить ребят из netup не прикрывать лазайку.
Я думаю, что все таки не будут, и объяснил почему. Очевидных плюсов для нетапа больше, чем минусов, уровень то уже серьезный, если конечно русский менталитет не победит. Тонкий намек следить за качеством, а не гнаться за количеством. Но только это совсем не лазейка, а полудокументированный интерфейс.

bobr
Сообщения: 29
Зарегистрирован: Ср июл 18, 2007 11:09

Сообщение bobr »

Желательно бы иметь сначала все ф-ии связанные с функционалом (привязка услуг, турифов и т.д.), а которые возвращают данные (тоесть "rpcf_get_*") оставить напоследок, ведь всю информацию итак можно получить из базы.

lmrvsk
Сообщения: 5
Зарегистрирован: Чт дек 25, 2008 10:51
Откуда: Сибирь

Сообщение lmrvsk »

огромное спасибо за клиент!
Последний раз редактировалось lmrvsk Чт дек 25, 2008 18:12, всего редактировалось 1 раз.

AndrewE
Сообщения: 230
Зарегистрирован: Пн июл 17, 2006 07:38

Сообщение AndrewE »

bobr писал(а):Желательно бы иметь сначала все ф-ии связанные с функционалом (привязка услуг, турифов и т.д.), а которые возвращают данные (тоесть "rpcf_get_*") оставить напоследок, ведь всю информацию итак можно получить из базы.
открывайте api.xml и делайте все функции которые вам нужны. за вас никто не сделает. благо это работа совершенно не сложная.

lmrvsk
Сообщения: 5
Зарегистрирован: Чт дек 25, 2008 10:51
Откуда: Сибирь

Сообщение lmrvsk »

AndrewE писал(а):открывайте api.xml
На удивление глупый вопрос, но. Дайте прямую ссылку на файл.

AndrewE
Сообщения: 230
Зарегистрирован: Пн июл 17, 2006 07:38

Сообщение AndrewE »

файл включен в состав дистрибутива 5.2.1-006

lmrvsk
Сообщения: 5
Зарегистрирован: Чт дек 25, 2008 10:51
Откуда: Сибирь

Сообщение lmrvsk »

В тоже время, у нас до сих пор build 004.

Это уже сообщения не по теме идут, можно от них избавиться если кто-нибудь поделиться файлом.

Wishmaster
Сообщения: 309
Зарегистрирован: Сб апр 16, 2005 11:44

Сообщение Wishmaster »

Народ, если не затруднит, может кто подскажет, как с помошью урфа РАЗБЛОКИРОВАТЬ абонента..

функция rpcf_block_account($account_id,$block); //0x2037

блокирует, но попытки указать $block = 0 или null не увенчались успехом, абонент по-прежнему остается заблокированным.

в api.xml не нашел функции для разблокировки, соответственно, остается один вариант :

rpcf_get_accountinfo //0x2030 + rpcf_save_account //0x2032

впрочем, в его работоспособности я не уверен, если кто сталкивался, может подскажет, как ПРАВИЛЬНО разблокировать абонента..

Аватара пользователя
ds
Сообщения: 380
Зарегистрирован: Пн сен 18, 2006 14:06

Сообщение ds »

Добавил

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

rpcf_add_tariff&#40;$tariff_name,$expire_date,$is_blocked,$balance_rollover&#41;; //0x3012
rpcf_edit_tariff&#40;$tariff_id,$tariff_name,$expire_date,$is_blocked,$balance_rollover&#41;; //0x3013
rpcf_remove_tariff&#40;$tariff_id&#41;; //0x301b
А также добавил пользовательские функции

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

rpcf_user5_get_user_info&#40;&#41; ; //-0x4006
rpcf_user5_traffic_report&#40;$start_date,$end_date&#41; ; //-0x4009
rpcf_user5_get_remaining_seconds&#40;$user_id&#41; ; //-0x2027
rpcf_user5_get_remaining_traffic&#40;$user_id&#41; ; //-0x2026
rpcf_user5_get_group_id_by_name&#40;$name&#41; ; //-0x401b
rpcf_user5_get_service_id_by_name&#40;$name&#41; ; //-0x401e
rpcf_user5_get_tariff_id_by_name&#40;$name&#41; ; //-0x401a
rpcf_user5_get_user_group_list&#40;&#41; ; //-0x401c
rpcf_user5_blocks_report&#40;$start_date,$end_date&#41; ; //-0x4013
rpcf_user5_brief_report_for_wintray&#40;&#41; ; //-0x4026
rpcf_user5_change_int_status&#40;$status&#41; ; //-0x4007
rpcf_user5_get_services&#40;&#41; ; //-0x4023


Для их вызова просто указать логин/пасс пользователя

Качать:
http://62.168.232.78/cli/urfaclient-1.0b4.tar.gz

Ответить