urfaclient на php

Вопросы по сопутствующим продуктам производства партнеров
Ответить
Cramac
Сообщения: 451
Зарегистрирован: Сб июл 01, 2006 17:59

Сообщение Cramac »

почему то
$urfa_admin->rpcf_get_accountinfo($account_id);
выдает все наоборот
Если поставить галки и выключить интернет, выдает такое
Array ( [unused] => 1 [is_blocked] => 0 [dealer_account_id] => 0 [is_dealer] => 0 [vat_rate] => 0 [sale_tax_rate] => 0 [comission_coefficient] => 0 [default_comission_value] => 0 [credit] => 0 [balance] => 48.338764436488 [int_status] => 0 [block_recalc_abon] => 0 [block_recalc_prepaid] => 0 [unlimited] => 0 )
Даже если я пишу так
$int_status = 0;
$block_recalc_abon = 0;
$block_recalc_prepaid = 0;

все равно ставит галки и не блокирует


UPD:
Решение:

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

function rpcf_set_block_account($urfa_admin,$account_id,$block) { // non urfa standart function 
	$account = $urfa_admin->rpcf_get_accountinfo($account_id);  //0x2030 
	$discount_period_id = 0; 
	$block_start_date = time(); 
	$block_end_date = '2000000000'; 
	$account['is_blocked']=$block; 
	if ($block==0)
		$account['int_status']=1; 
	$urfa_admin->rpcf_save_account($account_id,$account, $block_start_date, $block_end_date, $discount_period_id);
	}

LovingFox
Сообщения: 23
Зарегистрирован: Пт апр 10, 2015 16:26

Сообщение LovingFox »

Manjur писал(а):Кто-нибудь пытался адаптировать pyurfa (https://github.com/d3vil-st/pyurfa) под 5.21.008 и старше? На 5.21.007 заводится на ура.
Manjur писал(а):Все, допилил сам :)
Manjur, я так понимаю, что pyurfa, доступная через github по приведенной ссылке, не умеет подключаться через ssl. Ваш "допил" в этом и заключался, что добавили поддержку ssl?
Если "да", то можете поделиться кодом?

Cramac
Сообщения: 451
Зарегистрирован: Сб июл 01, 2006 17:59

Сообщение Cramac »

Если тема еще жива, подскажите, что то не работает

rpcf_get_prepaid_units($slink_id) //0x5500

на 5.3 в логе такое:

Aug 18 18:22:06 ?Debug : b44f3b40 RPCConn[SSL]<init@10.10.10.2>: Call: 0x5500 (__rpcs_get_prepaid_units)
Aug 18 18:22:06 ?Debug : b44f3b40 RPCConn[SSL]<init@10.10.10.2>: Real Call: 0x5500 (__rpcs_get_prepaid_units)
Aug 18 18:22:06 ERROR : b44f3b40 RPCServer@0.0.0.0: Exception in void* __rpcs_get_prepaid_units(void*): #74
Aug 18 18:22:06 ?Debug : b44f3b40 RPCConn[SSL]<init@10.10.10.2>: Call 0x5500 (__rpcs_get_prepaid_units) finished in 0.00 sec

LimpTeaM
Сообщения: 3
Зарегистрирован: Пт окт 17, 2014 13:00

Сообщение LimpTeaM »

Господа!
Есть ли рабочая версия под 5.3.001?

Уже все перерыл...
Проблема с ssl в логе нетапа:

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

RPCConn&#58; Unsupported SSL type <0>

пофиг php или python.

Или скажите где допилить в коде.
Заранее спасибо

Cramac
Сообщения: 451
Зарегистрирован: Сб июл 01, 2006 17:59

Сообщение Cramac »

Всем привет. Подскажите, как найти пользователя по логину в сервисных связках?

UPD: Нашел в дебаге

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

$poles=array&#40;&#41;; 

$patterns&#91;0&#93;&#91;'criteria_id'&#93;='1'; //
$patterns&#91;0&#93;&#91;'what_id'&#93;='43'; //По полю логину в сервисных связках 
$patterns&#91;0&#93;&#91;'pattern'&#93;='login'; // логин

$search=$urfa_admin->rpcf_search_users_new&#40;$poles,$patterns,0&#41;; 
foreach &#40;$search as $current&#41; 
&#123; 
print_r&#40;$current&#41;; 
echo '</BR>'; 
&#125; 

Cramac
Сообщения: 451
Зарегистрирован: Сб июл 01, 2006 17:59

Сообщение Cramac »

Новый вопрос.
Как использовать
rpcf_edit_iptraffic_service_link_ipv6

нужно в сервисной связке сменить логин и пароль.

mrmix25
Сообщения: 104
Зарегистрирован: Вт июн 07, 2011 11:43

Сообщение mrmix25 »

Cramac писал(а):Новый вопрос.
Как использовать
rpcf_edit_iptraffic_service_link_ipv6

нужно в сервисной связке сменить логин и пароль.
ну как то так

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


$service = $urfa_admin->rpcf_get_iptraffic_service_link_ipv6&#40;567&#41;;// получаем инфу необходимо знать id связки 
//редактируем нужное и добавляем обязательный slink_id
$service&#91;'slink_id'&#93; = 567; // id связки
$service&#91;'cost_coef'&#93; = 1; // стоимость в % 1 = 100, 0.9 = 90
$service&#91;'ip_groups'&#93;&#91;0&#93;&#91;'login'&#93; = "login"; //логин 
$service&#91;'ip_groups'&#93;&#91;0&#93;&#91;'password'&#93; = "pass"; //пасс
$urfa_admin->rpcf_edit_iptraffic_service_link_ipv6&#40;$service&#41;; // применяем

Cramac
Сообщения: 451
Зарегистрирован: Сб июл 01, 2006 17:59

Сообщение Cramac »

Подсобите, как добавить дом в версии 5.3 ?

Раньше была rpcf_add_house
да и на последней она же, только параметры добавились, не могу подобрать правильные.

Cramac
Сообщения: 451
Зарегистрирован: Сб июл 01, 2006 17:59

Сообщение Cramac »

Cramac писал(а):Подсобите, как добавить дом в версии 5.3 ?

Раньше была rpcf_add_house
да и на последней она же, только параметры добавились, не могу подобрать правильные.
Сам себе отвечу.

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

	$house&#91;"house_id"&#93;=0;
	$house&#91;"connect_date"&#93;=time&#40;&#41;;
	$house&#91;"post_code"&#93;="";
	$house&#91;"country"&#93;="";
	$house&#91;"region"&#93;="";
	$house&#91;"building"&#93;="";
	$house&#91;"city"&#93;=$gorod&#91;0&#93;&#91;"cname"&#93;;
	$house&#91;"street"&#93;=$gorod&#91;0&#93;&#91;"name"&#93;;
	$house&#91;"number"&#93;=$gorod&#91;"dom_num"&#93;;
	$house&#91;"count"&#93;&#91;0&#93;&#91;"ipzone_id"&#93;=1;
	
	$addhouse=$urfa->rpcf_add_house&#40;$house&#41;;

dimic
Сообщения: 18
Зарегистрирован: Пн май 13, 2013 11:06

Сообщение dimic »

Если еще есть динозавры, которые пользуются древней 5.2.1-007(8), подкину еще пару функций, для линковки сервисных связок юзеру:

Периодическая услуга в составе тарифа:

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

	function rpcf_add_periodic_service_to_user&#40;$user_id,$account_id,$service_id,$tariff_link_id,$discount_period_id&#41; &#123; // 0x2551
		$ret=array&#40;&#41;;
		if &#40;!$this->connection->urfa_call&#40;0x2551&#41;&#41; &#123;
			print "Error calling function ". __FUNCTION__ ."\n";
			return FALSE;
		&#125;
		$packet = $this->connection->getPacket&#40;&#41;;
		$packet->DataSetInt&#40;$user_id&#41;;
		$packet->DataSetInt&#40;$account_id&#41;;
		$packet->DataSetInt&#40;$service_id&#41;;
		// Set service_type 2 - periodic service
		$packet->DataSetInt&#40;2&#41;;
		// Set return_type
		$packet->DataSetString&#40;'integer_return'&#41;;
		$packet->DataSetInt&#40;$tariff_link_id&#41;;
		// Periodic parameters
		// slink_id
		$packet->DataSetInt&#40;0&#41;;
		// is_blocked
		$packet->DataSetInt&#40;0&#41;;
		$packet->DataSetInt&#40;$discount_period_id&#41;;
		// start_date
		$packet->DataSetInt&#40;time&#40;&#41;&#41;;
		// end_data
		$packet->DataSetInt&#40;2000000000&#41;;
		// unabon
		$packet->DataSetInt&#40;1&#41;;
		// unprepay
		$packet->DataSetInt&#40;1&#41;;
		$this->connection->urfa_send_param&#40;$packet&#41;;
		if &#40;$x = $this->connection->urfa_get_data&#40;&#41;&#41; &#123;
			$ret&#91;'slink_id'&#93;=$x->DataGetInt&#40;&#41;;
			$this->connection->urfa_get_data&#40;&#41;;
		&#125;
		return $ret;
	&#125;
Передача IP трафика в составе тарифа:

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

	function rpcf_add_iptraffic_service_to_user&#40;$user_id,$account_id,$service_id,$tariff_link_id,$discount_period_id,$ip_groups_count,$ip_groups&#41; &#123; // 0x2551
		$ret=array&#40;&#41;;
		if &#40;!$this->connection->urfa_call&#40;0x2551&#41;&#41; &#123;
			print "Error calling function ". __FUNCTION__ ."\n";
			return FALSE;
		&#125;
		$packet = $this->connection->getPacket&#40;&#41;;
		$packet->DataSetInt&#40;$user_id&#41;;
		$packet->DataSetInt&#40;$account_id&#41;;
		$packet->DataSetInt&#40;$service_id&#41;;
		// Set service_type 3 - iptraffic service
		$packet->DataSetInt&#40;3&#41;;
		// Set return_type
		$packet->DataSetString&#40;'integer_return'&#41;;
		$packet->DataSetInt&#40;$tariff_link_id&#41;;
		// Iptraffic parameters
		// slink_id
		$packet->DataSetInt&#40;0&#41;;
		// is_blocked
		$packet->DataSetInt&#40;0&#41;;
		$packet->DataSetInt&#40;$discount_period_id&#41;;
		// start_date
		$packet->DataSetInt&#40;time&#40;&#41;&#41;;
		// end_data
		$packet->DataSetInt&#40;2000000000&#41;;
		// unabon
		$packet->DataSetInt&#40;1&#41;;
		// unprepay
		$packet->DataSetInt&#40;1&#41;;
		$packet->DataSetInt&#40;$ip_groups_count&#41;;
		for &#40;$i = 0; $i < $ip_groups_count; $i++&#41; &#123;
			$packet->DataSetIPAddress&#40;$ip_groups&#91;$i&#93;&#91;'ip'&#93;&#41;;
			$packet->DataSetIPAddress&#40;$ip_groups&#91;$i&#93;&#91;'mask'&#93;&#41;;
			$packet->DataSetString&#40;$ip_groups&#91;$i&#93;&#91;'mac'&#93;&#41;;
			$packet->DataSetString&#40;$ip_groups&#91;$i&#93;&#91;'login'&#93;&#41;;
			$packet->DataSetString&#40;$ip_groups&#91;$i&#93;&#91;'allowed_cid'&#93;&#41;;
			$packet->DataSetString&#40;$ip_groups&#91;$i&#93;&#91;'password'&#93;&#41;;
			$packet->DataSetInt&#40;$ip_groups&#91;$i&#93;&#91;'not_vpn'&#93;&#41;;
			$packet->DataSetInt&#40;$ip_groups&#91;$i&#93;&#91;'dont_use_fw'&#93;&#41;;
			$packet->DataSetInt&#40;$ip_groups&#91;$i&#93;&#91;'router_id'&#93;&#41;;
		&#125;
		// quotas_count
		$packet->DataSetInt&#40;0&#41;;
		$this->connection->urfa_send_param&#40;$packet&#41;;
		if &#40;$x = $this->connection->urfa_get_data&#40;&#41;&#41; &#123;
			$ret&#91;'slink_id'&#93;=$x->DataGetInt&#40;&#41;;
			$this->connection->urfa_get_data&#40;&#41;;
		&#125;
		return $ret;
	&#125;
[/code]

Ответить