Смена типа блокировки

Технические вопросы по UTM 5.0
Ответить
NeXuSs
Сообщения: 51
Зарегистрирован: Пт сен 03, 2010 10:31

Смена типа блокировки

Сообщение NeXuSs »

Здравствуйте, коллеги!

В процессе костылинга, возникла потребность в смене типа блокировки абонента с Системной на Административную, а также просто снятие Административной блокировки. Нашёл я в api.xml функцию

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

  <function name="rpcf_save_account" id="0x1510b">
    <input>
      <integer name="account_id"/>
      <double name="credit"/>
      <integer name="is_blocked"/>
      <if variable="is_blocked" value="0" condition="ne">
        <integer name="block_start_date" default="now&#40;&#41;"/>
        <integer name="block_end_date" default="max_time&#40;&#41;"/>
      </if>
      <double name="vat_rate"/>
      <double name="sale_tax_rate"/>
      <integer name="int_status"/>
      <integer name="unlimited"/>
      <integer name="auto_enable_inet"/>
      <string name="external_id"/>
    </input>
    <output/>
  </function>
, а вот как ей пользоваться, пока что не разобрался.
Помогите пожалуйста советом. Или может быть можно как-то по-другому играться с блокировками?

MEDVED
Сообщения: 37
Зарегистрирован: Вт июл 15, 2014 15:19
Откуда: Украина, Черновцы
Контактная информация:

Сообщение MEDVED »

Сперва нужно считать данные по аккаунту, затем сохранить, изменив то, что необходимо. Сохранять через rpcf_save_account, а для считывания есть другая функция, возможно rpcf_save_account, сейчас сходу не вспомню, она есть в api.xml

NeXuSs
Сообщения: 51
Зарегистрирован: Пт сен 03, 2010 10:31

Сообщение NeXuSs »

Вот бы в примерах увидеть.

Cian
Сообщения: 33
Зарегистрирован: Чт ноя 20, 2014 00:26

Сообщение Cian »

NeXuSs писал(а):Вот бы в примерах увидеть.
а что в примерах?)
Читайте урфой или с базы переменные абонента а потом вносите всё так же как и было кроме того что надо изменить, is_blocked:

видите теги <input> и до </input>
это то что надо вносить.
account_id - думаю это ясно
credit - 0.0 - кредит обязательно double (сам обжёгся с первого раза)
....

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

Сообщение mrmix25 »

NeXuSs писал(а):Вот бы в примерах увидеть.
нужно знать лицевой счет абонента к примеру 11

если есть купленная utm5_urfaclient
поставить админ блок

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

utm5_urfaclient -a edit_account -account_id 11 -is_blocked 1
снять админ блок

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

utm5_urfaclient -a edit_account -account_id 11 -is_blocked 0
если нет купленной можно воспользоваться ourfa_client
у неё не весь функционал работает в UTM5.3-003 но для этой задачи подходит
поставить админ блок

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

ourfa_client -S rsa_cert -a edit_account -account_id 11 -is_blocked 1
снять админ блок

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

ourfa_client -S rsa_cert -a edit_account -account_id 11 -is_blocked 0
ещё есть urfaphp
поставить админ блок

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

<?
$UTMCore_Login='admin';
$UTMCore_Password='pass';
$UTMCoreHost='127.0.0.1';
$UTMCorePort='11758';
require_once&#40;"./urfaphp/URFAClient.php"&#41;;
$urfa_admin = new URFAClient_Admin&#40;$UTMCore_Login,$UTMCore_Password,$UTMCoreHost,$UTMCorePort&#41;;
$account = $urfa_admin->rpcf_get_accountinfo&#40;11&#41;;
$account&#91;'account_id'&#93; = 11;
$account&#91;'is_blocked'&#93; = 1;
$urfa_admin->rpcf_save_account&#40;$account&#41;;
?>
снять админ блок

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

<?
$UTMCore_Login='admin';
$UTMCore_Password='pass';
$UTMCoreHost='127.0.0.1';
$UTMCorePort='11758';
require_once&#40;"./urfaphp/URFAClient.php"&#41;;
$urfa_admin = new URFAClient_Admin&#40;$UTMCore_Login,$UTMCore_Password,$UTMCoreHost,$UTMCorePort&#41;;
$account = $urfa_admin->rpcf_get_accountinfo&#40;11&#41;;
$account&#91;'account_id'&#93; = 11;
$account&#91;'is_blocked'&#93; = 0;
$urfa_admin->rpcf_save_account&#40;$account&#41;;
?>
и вот ещё одно решение на php URFAClient PHP на основе api.xml (UTM 5.2.1-008+, 5.3+)
поставить админ блок

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

<?php
require __DIR__ . '/URFAClient/init.php';
$api = URFAClient&#58;&#58;init&#40;array&#40;
    'login'    => 'admin',
    'password' => 'pass',
    'address'  => '127.0.0.1',
    'timeout'  => 30,
    'log'      => TRUE,
&#41;&#41;;
$account = $api->rpcf_get_accountinfo&#40;array&#40;
	'account_id' => '11'
&#41;&#41;;
$account&#91;'account_id'&#93; = 11;
$account&#91;'is_blocked'&#93; = 1;
$api->rpcf_save_account&#40;$account&#41;;
?>
снять админ блок

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

<?php
require __DIR__ . '/URFAClient/init.php';
$api = URFAClient&#58;&#58;init&#40;array&#40;
    'login'    => 'admin',
    'password' => 'pass',
    'address'  => '127.0.0.1',
    'timeout'  => 30,
    'log'      => TRUE,
&#41;&#41;;
$account = $api->rpcf_get_accountinfo&#40;array&#40;
	'account_id' => '11'
&#41;&#41;;
$account&#91;'account_id'&#93; = 11;
$account&#91;'is_blocked'&#93; = 0;
$api->rpcf_save_account&#40;$account&#41;;
?>

NeXuSs
Сообщения: 51
Зарегистрирован: Пт сен 03, 2010 10:31

Сообщение NeXuSs »

Большое спасибо за подробнейшие разъяснения! :D

Ответить