<?php
### Обработчик услуг ISPManger 5
### Powered by pimnik98
# Получаемые параметры (операция,номер сервер,шаблон,тип)
# Выходные параметры (URL,Логин,Пароль,Тип)
# Коды ошибок
# 1 - Сервер не найден
# 2 - Ошибка на стороне обработчика
# 3 - Неопеределен тип услуги
# 4 - Неопределенно действие обработчика услуги
# 5 - Ошибка при выполнени заказа
# 6 - сервер вернул не допустимый ответ
# 7 - Недостаточно данных
# 8 - Не удалось войти в акканут
function order_isp4mgr($o,$s,$p='',$t='vhost',$d=NULL){
global $mysqli;
$_attributes = '@attributes';
$_level = '$level';
$_id = '$id';
if ($t == 'vhost'){
$check_ss = mysqli_query($mysqli,"SELECT * FROM `servers` WHERE `id` = '$s'");
if (mysqli_num_rows($check_ss) != 0) {
$ss = mysqli_fetch_object($check_ss);
if ($o == 'open'){
$geninv=mb_strtolower('a'.rand(10,100).generate_password(4));
$genpwd=generate_password(8);
$createauto = order_init($ss->url.'?func=user.edit&out=xml&authinfo='.$ss->login.':'.base64_decode($ss->pwd).'&name='.$geninv.'&passwd='.$genpwd.'&confirm='.$genpwd.'&preset='.$p.'&sok=yes&comment=LiveHDDBill&ip='.$ss->ip.'&domain='.$ss->texzone);
if (!empty($createauto)){
if(preg_match('<ok/>',$createauto)){
return json_encode(array(
'status' => 'ok',
'url' => $ss->url,
'login' => $geninv,
'passwd' => $genpwd,
'ip' => $ss->ip)
);
} else {
$parse_xml = simplexml_load_string($createauto);
return json_encode(array(
'status' => 'err',
'err' => '5',
'errmsg' => 'Ошибка при выполнени заказа',
'syserr' => $parse_xml->error->msg,
'hash' => $ss->url.'?func=user.edit&out=xml&authinfo='.$ss->login.':'.base64_decode($ss->pwd).'&name='.$geninv.'&passwd='.$genpwd.'&confirm='.$genpwd.'&preset='.$p.'&sok=yes&comment=LiveHDDBill')
);
}
} else {
return json_encode(array(
'status' => 'err',
'err' => '6',
'errmsg' => 'Сервер вернул не допустимый ответ',
'url' => $ss->url.'?func=user.edit&out=xml&authinfo='.$ss->login.':'.base64_decode($ss->pwd).'&name='.$geninv.'&passwd='.$genpwd.'&confirm='.$genpwd.'&preset='.$p.'&sok=yes&comment=LiveHDDBill')
);
}
} elseif ($o == 'rop'){
if (!isset($d)){
return json_encode(array(
'status' => 'err',
'err' => '7',
'errmsg' => 'Недостаточно данных'
)
);
} else {
$geninv=mb_strtolower($d);
$genpwd=generate_password(8);
$createauto = order_init($ss->url.'?func=user.edit&out=xml&authinfo='.$ss->login.':'.base64_decode($ss->pwd).'&name='.$geninv.'&passwd='.$genpwd.'&confirm='.$genpwd.'&preset='.$p.'&sok=yes&comment=CREAPIUSER&ip='.$ss->ip.'&domain='.$geninv.'.'.$ss->texzone);
if (!empty($createauto)){
if(preg_match('<ok/>',$createauto)){
return json_encode(array(
'status' => 'ok',
'url' => $ss->url,
'login' => $geninv,
'passwd' => $genpwd,
'ip' => $ss->ip
));
} else {
$parse_xml = simplexml_load_string($createauto);
return json_encode(array(
'status' => 'err',
'err' => '5',
'errmsg' => 'Ошибка при выполнени заказа',
'syserr' => base64_encode($ss->url.'?func=user.edit&out=xml&authinfo='.$ss->login.':'.base64_decode($ss->pwd).'&name='.$geninv.'&passwd='.$genpwd.'&confirm='.$genpwd.'&preset='.$p.'&sok=yes&comment=CREAPIUSER&ip='.$ss->ip.'&domain='.$ss->texzone),
'hash' => base64_encode($ss->url.'?func=user.edit&out=xml&authinfo='.$ss->login.':'.base64_decode($ss->pwd).'&name='.$geninv.'&passwd='.$genpwd.'&confirm='.$genpwd.'&preset='.$p.'&sok=yes&comment=LiveHDDBill'),
));
}
} else {
return json_encode(array(
'status' => 'err',
'err' => '6',
'errmsg' => 'Сервер вернул не допустимый ответ'));
}
}
} elseif ($o == 'close'){
$createauto = order_init($ss->url.'?func=user.delete&out=xml&authinfo='.$ss->login.':'.base64_decode($ss->pwd).'&elid='.$p.'&sok=yes');
if (!empty($createauto)){
if(preg_match('<ok/>',$createauto)){
return json_encode(array(
'status' => 'ok',
'select' => $p));
} else {
$parse_xml = simplexml_load_string($createauto);
return json_encode(array(
'status' => 'err',
'err' => '5',
'errmsg' => 'Ошибка при удалении заказа',
'syserr' => $parse_xml->error->msg));
}
} else {
return json_encode(array(
'status' => 'err',
'err' => '6',
'errmsg' => 'Сервер вернул не допустимый ответ'));
}
} elseif ($o == 'on'){
$createauto = order_init($ss->url.'?func=user.resume&out=xml&authinfo='.$ss->login.':'.base64_decode($ss->pwd).'&elid='.$p.'&sok=yes');
if (!empty($createauto)){
if(preg_match('<ok/>',$createauto)){
return json_encode(array(
'status' => 'ok',
'select' => $p));
} else {
$parse_xml = simplexml_load_string($createauto);
return json_encode(array(
'status' => 'err',
'err' => '5',
'errmsg' => 'Ошибка при удалении заказа',
'syserr' => $parse_xml->error->msg));
}
} else {
return json_encode(array(
'status' => 'err',
'err' => '6',
'errmsg' => 'Сервер вернул не допустимый ответ'));
}
} elseif ($o == 'off'){
$createauto = order_init($ss->url.'?func=user.suspend&out=xml&authinfo='.$ss->login.':'.base64_decode($ss->pwd).'&elid='.$p.'&sok=yes');
if (!empty($createauto)){
if(preg_match('<ok/>',$createauto)){
return json_encode(array(
'status' => 'ok',
'select' => $p));
} else {
$parse_xml = simplexml_load_string($createauto);
return json_encode(array(
'status' => 'err',
'err' => '5',
'errmsg' => 'Ошибка при удалении заказа',
'syserr' => $parse_xml->error->msg));
}
} else {
return json_encode(array(
'status' => 'err',
'err' => '6',
'errmsg' => 'Сервер вернул не допустимый ответ'));
}
} elseif ($o == 'info'){
$createauto = order_init($ss->url.'?func=auth&out=json&username=' . $ss->login . '&password=' . base64_decode($ss->pwd));
if (!empty($createauto)){
$js = json_decode($createauto);
if (isset($js->auth)) {
return json_encode(array(
'status' => 'ok',
'level' => 'n/a',
'key' => $js->auth,
));
} else {
return json_encode(array(
'status' => 'err',
'err' => '8',
'errmsg' => 'Не удалось войти в акканут',
'syserr' => $js,
'hash' => $createauto
));
}
} else {
return json_encode(array(
'status' => 'err',
'err' => '6',
'errmsg' => 'Не удалось соединиться с сервером',
# 'syserr' => $parse_xml->error->msg
));
}
} else {
return json_encode(array(
'status' => 'err',
'err' => '4',
'errmsg' => 'Неопределенно действие обработчика услуги'));
}
} else {
return json_encode(array('status'=>'err','err'=>'1','errmsg'=>'Сервер не найден'));
}
} elseif ($t == 'ress') {
$check_ss = mysqli_query($mysqli,"SELECT * FROM `servers` WHERE `id` = '$s'");
if (mysqli_num_rows($check_ss) != 0) {
$ss = mysqli_fetch_object($check_ss);
$init = $createauto = order_init();
if ($o == 'open'){
$geninv=mb_strtolower('r'.rand(10,100).generate_password(4));
$genpwd=generate_password(8);
$createauto = order_init($ss->url.'?func=reseller.edit&out=xml&authinfo='.$ss->login.':'.base64_decode($ss->pwd).'&name='.$geninv.'&passwd='.$genpwd.'&confirm='.$genpwd.'&ip='.$ss->ip.'&domain='.$geninv.'.'.$ss->zona.'&preset='.$p.'&sok=yes&comment=CREAPIUSER');
if (!empty($createauto)){
if(preg_match('<ok/>',$createauto)){
return json_encode(array(
'status' => 'ok',
'url' => $ss->url,
'login' => $geninv,
'passwd' => $genpwd,
'ip' => $ss->ip));
} else {
$parse_xml = simplexml_load_string($createauto);
return json_encode(array(
'status' => 'err',
'err' => '5',
'errmsg' => 'Ошибка при выполнени заказа',
'syserr' => $parse_xml->error->msg));
}
} else {
return json_encode(array(
'status' => 'err',
'err' => '6',
'errmsg' => 'Сервер вернул не допустимый ответ'));
}
} elseif ($o == 'close'){
$createauto = order_init($ss->url.'?func=reseller.delete&out=xml&authinfo='.$ss->login.':'.base64_decode($ss->pwd).'&elid='.$p.'&sok=yes');
if (!empty($createauto)){
if(preg_match('<ok/>',$createauto)){
return json_encode(array(
'status' => 'ok',
'select' => $p));
} else {
$parse_xml = simplexml_load_string($createauto);
return json_encode(array(
'status' => 'err',
'err' => '5',
'errmsg' => 'Ошибка при удалении заказа',
'syserr' => $parse_xml->error->msg));
}
} else {
return json_encode(array(
'status' => 'err',
'err' => '6',
'errmsg' => 'Сервер вернул не допустимый ответ')
);
}
} elseif ($o == 'on'){
$createauto = order_init($ss->url.'?func=reseller.resume&out=xml&authinfo='.$ss->login.':'.base64_decode($ss->pwd).'&elid='.$p.'&sok=yes');
if (!empty($createauto)){
if(preg_match('<ok/>',$createauto)){
return json_encode(array(
'status' => 'ok',
'select' => $p));
} else {
$parse_xml = simplexml_load_string($createauto);
return json_encode(array(
'status' => 'err',
'err' => '5',
'errmsg' => 'Ошибка при удалении заказа',
'syserr' => $parse_xml->error->msg));
}
} else {
return json_encode(array(
'status' => 'err',
'err' => '6',
'errmsg' => 'Сервер вернул не допустимый ответ'));
}
} elseif ($o == 'off'){
$createauto = order_init($ss->url.'?func=reseller.suspend&out=xml&authinfo='.$ss->login.':'.base64_decode($ss->pwd).'&elid='.$p.'&sok=yes');
if (!empty($createauto)){
if(preg_match('<ok/>',$createauto)){
return json_encode(array(
'status' => 'ok',
'select' => $p));
} else {
$parse_xml = simplexml_load_string($createauto);
return json_encode(array(
'status' => 'err',
'err' => '5',
'errmsg' => 'Ошибка при удалении заказа',
'syserr' => $parse_xml->error->msg));
}
} else {
return json_encode(array(
'status' => 'err',
'err' => '6',
'errmsg' => 'Сервер вернул не допустимый ответ'));
}
} elseif ($o == 'info'){
} else {
return json_encode(array(
'status' => 'err',
'err' => '4',
'errmsg' => 'Неопределенно действие обработчика услуги'));
}
} else {
return json_encode(array(
'status' => 'err',
'err' => '1',
'errmsg' => 'Сервер не найден'));
}
}
}
?>