urfaclient на php

Вопросы по сопутствующим продуктам производства партнеров
Ответить
Аватара пользователя
Chrst
Сообщения: 370
Зарегистрирован: Пт май 11, 2007 09:28
Откуда: Медиахолдинг "ЛеККС"
Контактная информация:

Сообщение Chrst »

Sky писал(а):По всей видимости надо делать rpcf_get_userinfo id="0x2006" пихать вывод в массив к примеру $userinf, менять что надо и выполнять rpcf_add_user id="0x2005" передав в качестве $user массив $userinf
Именно так.

Sky
Сообщения: 44
Зарегистрирован: Пн янв 24, 2005 08:01

Сообщение Sky »

Я в ваш личный кабинет встроил отчет по телефонии, добровольную блокировку, смену пароля на личный кабинет, скорректировал вывод отчета по трафику. Интересует? :D

ph4n70m_d
Сообщения: 19
Зарегистрирован: Чт май 14, 2009 09:53

Сообщение 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

и о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 раз.

Kayfolom
Сообщения: 746
Зарегистрирован: Вс фев 12, 2006 17:15

Сообщение Kayfolom »

Sky писал(а):Я в ваш личный кабинет встроил отчет по телефонии, добровольную блокировку, смену пароля на личный кабинет, скорректировал вывод отчета по трафику. Интересует? :D
Тема про Личный кабинет - viewtopic.php?t=6460&postdays=0&postorder=asc&start=0
Или можете опубликовать в http://wiki.flintnet.ru

Kayfolom
Сообщения: 746
Зарегистрирован: Вс фев 12, 2006 17:15

Сообщение Kayfolom »

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
Посмотрите на http://wiki.flintnet.ru плагин смены тарифа, должно помочь.

Sky
Сообщения: 44
Зарегистрирован: Пн янв 24, 2005 08:01

Сообщение Sky »

Kayfolom писал(а):Или можете опубликовать в http://wiki.flintnet.ru
Там не требуется регистрация? А то я когда то давно регистрировался, а сейчас даже кнопку найти не могу.

starchik
Сообщения: 461
Зарегистрирован: Сб ноя 22, 2008 22:07

Сообщение starchik »

кто подскажет почему выдает ошибку?

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

Fatal error: Cannot redeclare class URFAClient_Connection in /var/www/html/urfa/URFAClient_Connection.php on line 2
вот эта строка в URFAClient_Connection.php

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

1<?php
2class URFAClient_Connection &#123;
3    private $socket = null;
самое прикольное что на одной машине работает, на второй нивкакую.....на обоих фря7, пхп 5.2.10....

какие есть мысли?

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

Сообщение ds »

starchik писал(а):кто подскажет почему выдает ошибку?

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

Fatal error&#58; Cannot redeclare class URFAClient_Connection in /var/www/html/urfa/URFAClient_Connection.php on line 2
вот эта строка в URFAClient_Connection.php

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

1<?php
2class URFAClient_Connection &#123;
3    private $socket = null;
самое прикольное что на одной машине работает, на второй нивкакую.....на обоих фря7, пхп 5.2.10....

какие есть мысли?
Первое что пришло в голову, скорее всего где то в коде надо поменять require на require_once. Такая ошибка обычно из-за многократного включения одного и того же файла.
Только хз почему на разных машинах по разному.

starchik
Сообщения: 461
Зарегистрирован: Сб ноя 22, 2008 22:07

Сообщение starchik »

теперь я еще больше в ступоре......перекинул местами папки с урфой, на другой машине вылазит такая ошибка.....закинул урфу рабочуюю, та же ошибка.

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

пару часов гемора и странным образом ошибка пропала.....

но теперь новые грабли((

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

Fatal error&#58; Uncaught exception 'Exception' with message 'Error code 0' in /usr/local/apache/htdocs/urfa/URFAClient_Packet.php&#58;27 Stack trace&#58; 
#0 /usr/local/apache/htdocs/urfa/URFAClient_Connection.php&#40;75&#41;&#58; URFAClient_Packet->read&#40;&#41; 
#1 /usr/local/apache/htdocs/urfa/URFAClient_Admin.php&#40;1038&#41;&#58; URFAClient_Connection->urfa_call&#40;12311&#41; 
#2 /usr/local/apache/htdocs/cabinet/plugins/content/user_tariff.php&#40;41&#41;&#58; URFAClient_Admin->rpcf_get_user_tariffs&#40;1&#41; 
#3 &#91;internal function&#93;&#58; plgUserTariffModify&#40;Object&#40;stdClass&#41;, Object&#40;JParameter&#41;, 0&#41; 
#4 /usr/local/apache/htdocs/cabinet/libraries/joomla/event/dispatcher.php&#40;136&#41;&#58; call_user_func_array&#40;'plgUserTariffMo...', Array&#41; 
#5 /usr/local/apache/htdocs/cabinet/components/com_content/views/article/view.html.php&#40;102&#41;&#58; JDispatcher->trigger&#40;'onPrepareConten...', Array&#41; 
#6 /usr/local/apache/htdocs/cabinet/libraries/joomla/application/component/controller.php&#40;310&#41;&#58; ContentViewArticle->display&#40;&#41; 
#7 /usr/local/apache/htdocs/cabinet/components/com_content/controller.php&#40;48&#41;&#58; JController->display&#40;fal in /usr/local/apache/htdocs/urfa/URFAClient_Packet.php on line 27
что опять не нравится?(

решил проблеммы, спать надо почаще :lol: :lol: :lol:

Sky
Сообщения: 44
Зарегистрирован: Пн янв 24, 2005 08:01

Сообщение Sky »

Kayfolom писал(а):Или можете опубликовать в http://wiki.flintnet.ru
Написал немного функций, в основном по мелочи.

Все функции переведены уже на новую get_data?

starchik
Сообщения: 461
Зарегистрирован: Сб ноя 22, 2008 22:07

Сообщение starchik »

при добавлении пользователю разовой услуги, в логе появляется странная запись
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&#40;$user_id,$account_id,$service_id,0,0,time&#40;&#41;,1,0&#41;
как это исправить?

starchik
Сообщения: 461
Зарегистрирован: Сб ноя 22, 2008 22:07

Сообщение starchik »

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

noisy
Сообщения: 14
Зарегистрирован: Ср сен 09, 2009 13:11

Сообщение noisy »

Может кому-то поможет

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

$tariff_current - тарифный план
$discount_period_id статик ид расчетного периода

остальное генерируем случайным образом.

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


<?php

@ini_set&#40;"display_errors", "1"&#41;;
error_reporting&#40;E_ALL&#41;;

require_once&#40;"urfa/URFAClient.php"&#41;;
require_once&#40;"config.php"&#41;;



try &#123;
     $urfa_admin = new URFAClient_Admin&#40;$UTM_LOGIN, $UTM_PWD,$UTM_IP,$UTM_PORT, $UTM_SSL&#41;;
    &#125; 
catch &#40;Exception $exception&#41; &#123; 
     echo "Error in line ", $exception->getLine&#40;&#41;;
     echo $exception->getMessage&#40;&#41;; 
&#125; 

$pass = $urfa_admin->rpcf_get_new_secret&#40;&#41;; 

$user&#91;'user_id'&#93;   = 0; 
$user&#91;'login'&#93;     = 'test'.rand&#40;100,1000&#41;; 
$user&#91;'password'&#93;  = $pass&#91;'secret'&#93;; 
$user&#91;'full_name'&#93; = $user&#91;'login'&#93;;
$param = array&#40;&#41;; 

$data = $urfa_admin->rpcf_add_user&#40;$user,$param&#41;; 
$user_id = $data&#91;'user_id'&#93;; 

if&#40;$user_id > 0 &#41;&#123; 
   $account = array&#40;&#41;; 
   $account_id = $urfa_admin->rpcf_add_account&#40;$account,$user_id&#41;; 
   print "account_id = ".$account_id."\r\n"; 
   
   if &#40;$account_id > 0&#41; &#123;

      $tariff_current   = 3;
      
      $discount_period_id = 26;
      $tariff_link_id     = 0;
      
      // если забыли указать расчетный период выберем из системы
      if &#40;!isset&#40;$discount_period_id&#41;&#41; &#123;
         $dscp = $urfa_admin->rpcf_get_discount_periods&#40;&#41;; 
         for&#40;$i = 0; $i < $dscp&#91;"count"&#93;; $i++&#41;&#123;
            if &#40;$dscp&#91;"discount_periods"&#93;&#91;$i&#93;&#91;"static_id"&#93; <>0&#41;
               $discount_period_id = $dscp&#91;"discount_periods"&#93;&#91;$i&#93;&#91;"static_id"&#93;;
         &#125; // for
      &#125; // if
        
      $tarif_info = $urfa_admin->rpcf_get_tariff&#40;$tariff_current&#41;; 
      
      $urfa_next_tariff = $tariff_current;
      
      $urfa_admin->rpcf_link_user_tariff&#40;$user_id, $account_id, $tariff_current, $urfa_next_tariff, $discount_period_id, $tariff_link_id&#41;;
      
      $srv_count_in_tarif = count&#40;$tarif_info&#91;'services'&#93;&#41;;
      
      for&#40;$srv_i = 0; $srv_i < $srv_count_in_tarif; $srv_i++&#41; &#123;
         
         $srv_in_tarif = $tarif_info&#91;"services"&#93;&#91;$srv_i&#93;;
         $service = array&#40;&#41;;
         $service&#91;'user_id'&#93;           = $user_id;
         $service&#91;'account_id'&#93;        = $account_id;   
         $service&#91;'discount_period_id'&#93;= $discount_period_id;
         $service&#91;'return_type'&#93;       = 'integer_return';         
         $service&#91;'service_id'&#93;        = $srv_in_tarif&#91;'service_id'&#93;;
         $service&#91;'service_type'&#93;      = $srv_in_tarif&#91;'service_type'&#93;;

         $service&#91;'tariff_link_id'&#93; = 0;
         $service&#91;'slink_id'&#93;    = 0;
         $service&#91;'is_blocked'&#93;  = 0;
         $service&#91;'start_date'&#93;  = time&#40;&#41;;
         $service&#91;'expire_date'&#93; = mktime&#40;0,0,0,1,1,2020&#41;; // 2000000000;
         $service&#91;'unabon'&#93;      = 0;
         $service&#91;'unprepay'&#93;    = 0;
         
         switch &#40;$service&#91;'service_type'&#93;&#41; &#123;
         case 1&#58;
            break; //type 1
         case 2&#58;
            break; //type 2
         case 3&#58;
            $service&#91;'ip_groups'&#93;   = array&#40;&#41;;
            
            $service&#91;'ip_groups'&#93;&#91;0&#93;&#91;'ip_address'&#93;            = '10.10.10.'.rand&#40;10,255&#41;;
            $service&#91;'ip_groups'&#93;&#91;0&#93;&#91;'mask'&#93;                  = '255.255.255.255';
            $service&#91;'ip_groups'&#93;&#91;0&#93;&#91;'mac'&#93;                   = '';
            $service&#91;'ip_groups'&#93;&#91;0&#93;&#91;'iptraffic_login'&#93;      = $user&#91;'login'&#93;;
            $service&#91;'ip_groups'&#93;&#91;0&#93;&#91;'iptraffic_allowed_cid'&#93;= '';
            $service&#91;'ip_groups'&#93;&#91;0&#93;&#91;'iptraffic_password'&#93;   = $user&#91;'password'&#93;;
            $service&#91;'ip_groups'&#93;&#91;0&#93;&#91;'ip_not_vpn'&#93;           = 0;
            $service&#91;'ip_groups'&#93;&#91;0&#93;&#91;'dont_use_fw'&#93;          = 0;  
            $service&#91;'ip_groups'&#93;&#91;0&#93;&#91;'router_id'&#93;            = 0;
            
            $service&#91;'ip_groups'&#93;&#91;1&#93;&#91;'ip_address'&#93;            = '10.10.56.'.rand&#40;10,255&#41;;
            $service&#91;'ip_groups'&#93;&#91;1&#93;&#91;'mask'&#93;                  = '255.255.255.255';
            $service&#91;'ip_groups'&#93;&#91;1&#93;&#91;'mac'&#93;                   = '';
            $service&#91;'ip_groups'&#93;&#91;1&#93;&#91;'iptraffic_login'&#93;       = '';
            $service&#91;'ip_groups'&#93;&#91;1&#93;&#91;'iptraffic_allowed_cid'&#93; = '';
            $service&#91;'ip_groups'&#93;&#91;1&#93;&#91;'iptraffic_password'&#93;    = '';
            $service&#91;'ip_groups'&#93;&#91;1&#93;&#91;'ip_not_vpn'&#93;            = 1;
            $service&#91;'ip_groups'&#93;&#91;1&#93;&#91;'dont_use_fw'&#93;           = 0;  
            $service&#91;'ip_groups'&#93;&#91;1&#93;&#91;'router_id'&#93;             = 0;      
            
            $service&#91;'quotas'&#93; = array&#40;&#41;;
            
            break; //type 3
         &#125; //switch
         $added_srv = $urfa_admin->rpcf_add_service_to_user&#40;$service&#41;;
         unset&#40;$service&#41;;
         var_dump&#40;$added_srv&#41;;
      &#125; // for
   &#125; // if added account
&#125; // if added user
?>

Последний раз редактировалось noisy Пт ноя 13, 2009 09:09, всего редактировалось 1 раз.

plaguekriz
Сообщения: 64
Зарегистрирован: Пн июн 15, 2009 15:28

Сообщение plaguekriz »

Подскажите пожалуйста, в функции rpcf_link_user_tariff какую роль играет входной параметр $tariff_link_id? Никак не могу понять такой момент: это идентификатор уже существующей связки тариф-юзер или той, которую мы создаем при смене тарифа. Курю эту тему и никак понять не могу.Пока добился только того, что тариф меняется у клиента на вкладке Тарифы, а в услугах пусто и говорит ошибку "Error get services for user..."

Sky
Сообщения: 44
Зарегистрирован: Пн янв 24, 2005 08:01

Сообщение Sky »

Часть моего кода:
через POST передается тариф, который пользователь хочет сменить.

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

$user_tariff = $urfa_admin->rpcf_get_user_tariffs&#40;$user_id&#41;;
$tariff_link_id = $user_tariff&#91;'user_tariffs'&#93;&#91;$_POST&#91;'tariff_current'&#93;&#93;&#91;'tariff_link_id'&#93;;
$new_tariff_link_id = $urfa_admin->rpcf_link_user_tariff&#40;$user_id, $account_id, $tariff_current, $tariff_next, $discount_period_id, $tariff_link_id&#41;;
Получается что tariff_link_id это ID уже существующей связки тариф-юзер.

Ответить