urfaclient на php
-
- Сообщения: 1612
- Зарегистрирован: Пт ноя 10, 2006 15:23
Вот еще пара функций (уже проверено
)
Список групп:
Правда не понятно, зачем здесь user_id?
Список групп по юзеру:

Список групп:
Код: Выделить всё
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 ($i=0;$i<$count;$i++) {
$x = urfa_get_data();
$group['group_id']=$x->DataGetInt();
$group['group_name']=$x->DataGetString();
$ret['group'][]=$group;
}
urfa_get_data();
return $ret;
}
Список групп по юзеру:
Код: Выделить всё
function rpcf_get_groups_for_user($user_id) { //0x2550
$ret=array();
if (!urfa_call(0x2550)) {
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 ($i=0;$i<$count;$i++) {
$group['group_id']=$x->DataGetInt();
$group['group_name']=$x->DataGetString();
$ret['group'][]=$group;
}
urfa_get_data();
return $ret;
}
Вот обновил клиента
http://62.168.232.78/cli/urfaclient-1.0b3.tar.gz
Список изменений:
Список всех реализованных функций находится в Changelog архива. Все функции протестированы, в том числе на предмет ошибочных параметров.
По ходу бага в api.xml функция rpcf_add_to_ipgroup. Написано что при ошибке возвращает 0, на самом деле -1. Можете проверить? у меня 005
http://62.168.232.78/cli/urfaclient-1.0b3.tar.gz
Список изменений:
Код: Выделить всё
Поддержка SSL шифрования по умолчанию. Для отключения указать третий параметр FALSE в функции urfa_login (например urfa_login('web','web',FALSE).
Добавил функции:
rpcf_get_user_account_list($user_id); //0x2033
rpcf_block_account($account_id,$block); //0x2037
rpcf_get_tclasses(); //0x2300
rpcf_general_report_new($user_id=0,$account_id=0,$group_id=0,$discount_period_id=0,$start_date,$end_date); //0x3020
rpcf_add_to_ipgroup($id,$ip,$mask,$login="",$pass="",$mac="",$cid=""); //0x5200
rpcf_delete_from_ipgroup_by_ipgroup($id,$ip,$mask); //0x5102
rpcf_get_all_services_for_user($account_id); //0x2700
rpcf_remove_user_from_group($user_id,$group_id); //0x2408
rpcf_add_group_to_user($user_id,$group_id); //0x2552
rpcf_get_user_tariffs($user_id, $account_id=0); //0x3017
rpcf_delete_from_ipgroup($slink_id,$ip,$mask="255.255.255.255"); //0x5101
rpcf_get_iptraffic_service_link($slink_id); //0x2702
rpcf_get_groups_list($user_id=0); //0x2400
rpcf_get_groups_for_user($user_id); //0x2550
rpcf_get_new_secret($len=8); //0x0060
rpcf_get_user_by_account($account_id); //0x2026
rpcf_get_discount_period($period_id); //0x2602
rpcf_get_tariff($tariff_id); //0x3011
rpcf_get_sys_users_list(); //0x4405
rpcf_get_sys_user($user_id); //0x4409
По ходу бага в api.xml функция rpcf_add_to_ipgroup. Написано что при ошибке возвращает 0, на самом деле -1. Можете проверить? у меня 005
Ага, скоро доделаю.AndrewE писал(а):ну наверное только выполнять команды от имени абонента. т.е. как urfaclient с ключом -u остальное уже не нужно, все есть для счастья.
Я думаю, что все таки не будут, и объяснил почему. Очевидных плюсов для нетапа больше, чем минусов, уровень то уже серьезный, если конечно русский менталитет не победит. Тонкий намек следить за качеством, а не гнаться за количеством. Но только это совсем не лазейка, а полудокументированный интерфейс.AndrewE писал(а): осталось убедить ребят из netup не прикрывать лазайку.
огромное спасибо за клиент!
Последний раз редактировалось lmrvsk Чт дек 25, 2008 18:12, всего редактировалось 1 раз.
открывайте api.xml и делайте все функции которые вам нужны. за вас никто не сделает. благо это работа совершенно не сложная.bobr писал(а):Желательно бы иметь сначала все ф-ии связанные с функционалом (привязка услуг, турифов и т.д.), а которые возвращают данные (тоесть "rpcf_get_*") оставить напоследок, ведь всю информацию итак можно получить из базы.
-
- Сообщения: 309
- Зарегистрирован: Сб апр 16, 2005 11:44
Народ, если не затруднит, может кто подскажет, как с помошью урфа РАЗБЛОКИРОВАТЬ абонента..
функция rpcf_block_account($account_id,$block); //0x2037
блокирует, но попытки указать $block = 0 или null не увенчались успехом, абонент по-прежнему остается заблокированным.
в api.xml не нашел функции для разблокировки, соответственно, остается один вариант :
rpcf_get_accountinfo //0x2030 + rpcf_save_account //0x2032
впрочем, в его работоспособности я не уверен, если кто сталкивался, может подскажет, как ПРАВИЛЬНО разблокировать абонента..
функция rpcf_block_account($account_id,$block); //0x2037
блокирует, но попытки указать $block = 0 или null не увенчались успехом, абонент по-прежнему остается заблокированным.
в api.xml не нашел функции для разблокировки, соответственно, остается один вариант :
rpcf_get_accountinfo //0x2030 + rpcf_save_account //0x2032
впрочем, в его работоспособности я не уверен, если кто сталкивался, может подскажет, как ПРАВИЛЬНО разблокировать абонента..
Добавил
А также добавил пользовательские функции
Для их вызова просто указать логин/пасс пользователя
Качать:
http://62.168.232.78/cli/urfaclient-1.0b4.tar.gz
Код: Выделить всё
rpcf_add_tariff($tariff_name,$expire_date,$is_blocked,$balance_rollover); //0x3012
rpcf_edit_tariff($tariff_id,$tariff_name,$expire_date,$is_blocked,$balance_rollover); //0x3013
rpcf_remove_tariff($tariff_id); //0x301b
Код: Выделить всё
rpcf_user5_get_user_info() ; //-0x4006
rpcf_user5_traffic_report($start_date,$end_date) ; //-0x4009
rpcf_user5_get_remaining_seconds($user_id) ; //-0x2027
rpcf_user5_get_remaining_traffic($user_id) ; //-0x2026
rpcf_user5_get_group_id_by_name($name) ; //-0x401b
rpcf_user5_get_service_id_by_name($name) ; //-0x401e
rpcf_user5_get_tariff_id_by_name($name) ; //-0x401a
rpcf_user5_get_user_group_list() ; //-0x401c
rpcf_user5_blocks_report($start_date,$end_date) ; //-0x4013
rpcf_user5_brief_report_for_wintray() ; //-0x4026
rpcf_user5_change_int_status($status) ; //-0x4007
rpcf_user5_get_services() ; //-0x4023
Качать:
http://62.168.232.78/cli/urfaclient-1.0b4.tar.gz