Именно так.Sky писал(а):По всей видимости надо делать rpcf_get_userinfo id="0x2006" пихать вывод в массив к примеру $userinf, менять что надо и выполнять rpcf_add_user id="0x2005" передав в качестве $user массив $userinf
urfaclient на php
Приветствую всех!
Не подскажите ли вы функцию для установки следующего тарифного плана, для заведенного абонента?
А то я запутался чего то совсем %)
и еще вот такая трабла при вызове rpcf_get_services_list()
Warning: unpack(): Type N: not enough input, need 4, have 0 in /usr/local/www/data-dist/URFAClient_Packet.php on line 171
и о5 трабла появилась, 3 раза попробовал, все замечательно, на 4 раз перестала работать чего сломалось не понял О.о
суть в чем, стала вываливаться ошибка:
ERROR : Oct 28 04:46:36 DBAExistingError: get_discount_period_iter: no such disc per 0
Не подскажите ли вы функцию для установки следующего тарифного плана, для заведенного абонента?
А то я запутался чего то совсем %)
и еще вот такая трабла при вызове rpcf_get_services_list()
Warning: unpack(): Type N: not enough input, need 4, have 0 in /usr/local/www/data-dist/URFAClient_Packet.php on line 171
и о5 трабла появилась, 3 раза попробовал, все замечательно, на 4 раз перестала работать чего сломалось не понял О.о
Код: Выделить всё
$service['user_id'] = 8;
$service['account_id'] = 8;
$service['service_id'] = 3;
$service['service_type'] = 3;
$service['discount_period_id'] = 2;
$service['tariff_link_id'] = 2;
$service['ip_groups']['0']['ip_address'] = $ip_a;
$service['ip_groups'][0]['mask'] = '255.255.255.255';
$service['ip_groups'][0]['ip_not_vpn'] = 1;
$service['ip_groups']['0']['iptraffic_login'] = $login;
$service['ip_groups']['0']['iptraffic_password'] = $password;
print_r ($service);
//$urfa_admin = new URFAClient_Admin("root", "root");
$add_services = $urfa_admin->rpcf_add_service_to_user($service);
print_r($add_services);
ERROR : Oct 28 04:46:36 DBAExistingError: get_discount_period_iter: no such disc per 0
Последний раз редактировалось ph4n70m_d Чт окт 29, 2009 11:55, всего редактировалось 1 раз.
Тема про Личный кабинет - viewtopic.php?t=6460&postdays=0&postorder=asc&start=0Sky писал(а):Я в ваш личный кабинет встроил отчет по телефонии, добровольную блокировку, смену пароля на личный кабинет, скорректировал вывод отчета по трафику. Интересует?
Или можете опубликовать в http://wiki.flintnet.ru
Посмотрите на http://wiki.flintnet.ru плагин смены тарифа, должно помочь.ph4n70m_d писал(а):Приветствую всех!
Не подскажите ли вы функцию для установки следующего тарифного плана, для заведенного абонента?
А то я запутался чего то совсем %)
и еще вот такая трабла при вызове rpcf_get_services_list()
Warning: unpack(): Type N: not enough input, need 4, have 0 in /usr/local/www/data-dist/URFAClient_Packet.php on line 171
Там не требуется регистрация? А то я когда то давно регистрировался, а сейчас даже кнопку найти не могу.Kayfolom писал(а):Или можете опубликовать в http://wiki.flintnet.ru
кто подскажет почему выдает ошибку?
вот эта строка в URFAClient_Connection.php
самое прикольное что на одной машине работает, на второй нивкакую.....на обоих фря7, пхп 5.2.10....
какие есть мысли?
Код: Выделить всё
Fatal error: Cannot redeclare class URFAClient_Connection in /var/www/html/urfa/URFAClient_Connection.php on line 2
Код: Выделить всё
1<?php
2class URFAClient_Connection {
3 private $socket = null;
какие есть мысли?
Первое что пришло в голову, скорее всего где то в коде надо поменять require на require_once. Такая ошибка обычно из-за многократного включения одного и того же файла.starchik писал(а):кто подскажет почему выдает ошибку?вот эта строка в URFAClient_Connection.phpКод: Выделить всё
Fatal error: Cannot redeclare class URFAClient_Connection in /var/www/html/urfa/URFAClient_Connection.php on line 2
самое прикольное что на одной машине работает, на второй нивкакую.....на обоих фря7, пхп 5.2.10....Код: Выделить всё
1<?php 2class URFAClient_Connection { 3 private $socket = null;
какие есть мысли?
Только хз почему на разных машинах по разному.
теперь я еще больше в ступоре......перекинул местами папки с урфой, на другой машине вылазит такая ошибка.....закинул урфу рабочуюю, та же ошибка.
ставлю урфу с wiki.flint.net на обоих машинах такая шляпа.....пипец....полный
пару часов гемора и странным образом ошибка пропала.....
но теперь новые грабли((
что опять не нравится?(
решил проблеммы, спать надо почаще

ставлю урфу с wiki.flint.net на обоих машинах такая шляпа.....пипец....полный

пару часов гемора и странным образом ошибка пропала.....
но теперь новые грабли((
Код: Выделить всё
Fatal error: Uncaught exception 'Exception' with message 'Error code 0' in /usr/local/apache/htdocs/urfa/URFAClient_Packet.php:27 Stack trace:
#0 /usr/local/apache/htdocs/urfa/URFAClient_Connection.php(75): URFAClient_Packet->read()
#1 /usr/local/apache/htdocs/urfa/URFAClient_Admin.php(1038): URFAClient_Connection->urfa_call(12311)
#2 /usr/local/apache/htdocs/cabinet/plugins/content/user_tariff.php(41): URFAClient_Admin->rpcf_get_user_tariffs(1)
#3 [internal function]: plgUserTariffModify(Object(stdClass), Object(JParameter), 0)
#4 /usr/local/apache/htdocs/cabinet/libraries/joomla/event/dispatcher.php(136): call_user_func_array('plgUserTariffMo...', Array)
#5 /usr/local/apache/htdocs/cabinet/components/com_content/views/article/view.html.php(102): JDispatcher->trigger('onPrepareConten...', Array)
#6 /usr/local/apache/htdocs/cabinet/libraries/joomla/application/component/controller.php(310): ContentViewArticle->display()
#7 /usr/local/apache/htdocs/cabinet/components/com_content/controller.php(48): JController->display(fal in /usr/local/apache/htdocs/urfa/URFAClient_Packet.php on line 27
решил проблеммы, спать надо почаще



Написал немного функций, в основном по мелочи.Kayfolom писал(а):Или можете опубликовать в http://wiki.flintnet.ru
Все функции переведены уже на новую get_data?
при добавлении пользователю разовой услуги, в логе появляется странная запись
как это исправить?
вот так добавляюERROR : Oct 31 01:21:28 UTM5 DBA: __fill_charge_info: slink_id <344>, accounting period id <0> not found in the cache
Код: Выделить всё
rpcf_add_once_service_to_user($user_id,$account_id,$service_id,0,0,time(),1,0)
Может кому-то поможет
создание пользователя и навешивание на него тарифного плана
для созднаия нужно указать только
$tariff_current - тарифный план
$discount_period_id статик ид расчетного периода
остальное генерируем случайным образом.
создание пользователя и навешивание на него тарифного плана
для созднаия нужно указать только
$tariff_current - тарифный план
$discount_period_id статик ид расчетного периода
остальное генерируем случайным образом.
Код: Выделить всё
<?php
@ini_set("display_errors", "1");
error_reporting(E_ALL);
require_once("urfa/URFAClient.php");
require_once("config.php");
try {
$urfa_admin = new URFAClient_Admin($UTM_LOGIN, $UTM_PWD,$UTM_IP,$UTM_PORT, $UTM_SSL);
}
catch (Exception $exception) {
echo "Error in line ", $exception->getLine();
echo $exception->getMessage();
}
$pass = $urfa_admin->rpcf_get_new_secret();
$user['user_id'] = 0;
$user['login'] = 'test'.rand(100,1000);
$user['password'] = $pass['secret'];
$user['full_name'] = $user['login'];
$param = array();
$data = $urfa_admin->rpcf_add_user($user,$param);
$user_id = $data['user_id'];
if($user_id > 0 ){
$account = array();
$account_id = $urfa_admin->rpcf_add_account($account,$user_id);
print "account_id = ".$account_id."\r\n";
if ($account_id > 0) {
$tariff_current = 3;
$discount_period_id = 26;
$tariff_link_id = 0;
// если забыли указать расчетный период выберем из системы
if (!isset($discount_period_id)) {
$dscp = $urfa_admin->rpcf_get_discount_periods();
for($i = 0; $i < $dscp["count"]; $i++){
if ($dscp["discount_periods"][$i]["static_id"] <>0)
$discount_period_id = $dscp["discount_periods"][$i]["static_id"];
} // for
} // if
$tarif_info = $urfa_admin->rpcf_get_tariff($tariff_current);
$urfa_next_tariff = $tariff_current;
$urfa_admin->rpcf_link_user_tariff($user_id, $account_id, $tariff_current, $urfa_next_tariff, $discount_period_id, $tariff_link_id);
$srv_count_in_tarif = count($tarif_info['services']);
for($srv_i = 0; $srv_i < $srv_count_in_tarif; $srv_i++) {
$srv_in_tarif = $tarif_info["services"][$srv_i];
$service = array();
$service['user_id'] = $user_id;
$service['account_id'] = $account_id;
$service['discount_period_id']= $discount_period_id;
$service['return_type'] = 'integer_return';
$service['service_id'] = $srv_in_tarif['service_id'];
$service['service_type'] = $srv_in_tarif['service_type'];
$service['tariff_link_id'] = 0;
$service['slink_id'] = 0;
$service['is_blocked'] = 0;
$service['start_date'] = time();
$service['expire_date'] = mktime(0,0,0,1,1,2020); // 2000000000;
$service['unabon'] = 0;
$service['unprepay'] = 0;
switch ($service['service_type']) {
case 1:
break; //type 1
case 2:
break; //type 2
case 3:
$service['ip_groups'] = array();
$service['ip_groups'][0]['ip_address'] = '10.10.10.'.rand(10,255);
$service['ip_groups'][0]['mask'] = '255.255.255.255';
$service['ip_groups'][0]['mac'] = '';
$service['ip_groups'][0]['iptraffic_login'] = $user['login'];
$service['ip_groups'][0]['iptraffic_allowed_cid']= '';
$service['ip_groups'][0]['iptraffic_password'] = $user['password'];
$service['ip_groups'][0]['ip_not_vpn'] = 0;
$service['ip_groups'][0]['dont_use_fw'] = 0;
$service['ip_groups'][0]['router_id'] = 0;
$service['ip_groups'][1]['ip_address'] = '10.10.56.'.rand(10,255);
$service['ip_groups'][1]['mask'] = '255.255.255.255';
$service['ip_groups'][1]['mac'] = '';
$service['ip_groups'][1]['iptraffic_login'] = '';
$service['ip_groups'][1]['iptraffic_allowed_cid'] = '';
$service['ip_groups'][1]['iptraffic_password'] = '';
$service['ip_groups'][1]['ip_not_vpn'] = 1;
$service['ip_groups'][1]['dont_use_fw'] = 0;
$service['ip_groups'][1]['router_id'] = 0;
$service['quotas'] = array();
break; //type 3
} //switch
$added_srv = $urfa_admin->rpcf_add_service_to_user($service);
unset($service);
var_dump($added_srv);
} // for
} // if added account
} // if added user
?>
Последний раз редактировалось noisy Пт ноя 13, 2009 09:09, всего редактировалось 1 раз.
-
- Сообщения: 64
- Зарегистрирован: Пн июн 15, 2009 15:28
Подскажите пожалуйста, в функции rpcf_link_user_tariff какую роль играет входной параметр $tariff_link_id? Никак не могу понять такой момент: это идентификатор уже существующей связки тариф-юзер или той, которую мы создаем при смене тарифа. Курю эту тему и никак понять не могу.Пока добился только того, что тариф меняется у клиента на вкладке Тарифы, а в услугах пусто и говорит ошибку "Error get services for user..."
Часть моего кода:
через POST передается тариф, который пользователь хочет сменить.
Получается что tariff_link_id это ID уже существующей связки тариф-юзер.
через POST передается тариф, который пользователь хочет сменить.
Код: Выделить всё
$user_tariff = $urfa_admin->rpcf_get_user_tariffs($user_id);
$tariff_link_id = $user_tariff['user_tariffs'][$_POST['tariff_current']]['tariff_link_id'];
$new_tariff_link_id = $urfa_admin->rpcf_link_user_tariff($user_id, $account_id, $tariff_current, $tariff_next, $discount_period_id, $tariff_link_id);