<?php

### Файл заказа доменов через TLD24.RU
### Powered by pimnik98 (Пиминов Никита: https://vk.com/piminov_remont) 
# Тип услуги, Домен, Доп данные

# Коды ошибок
# 1 - Не указана команда
# 2 - Ошибка в работе сервера-обработчика

function order_tld24($type=NULL,$s,$domain=NULL,$data=NULL){
    global $mysqli,$ank;
    $check_ss = mysqli_query($mysqli,"SELECT * FROM `servers` WHERE `id` = '$s'");
    if (mysqli_num_rows($check_ss) == 0) {
        return json_encode(array(
                'status'    =>  'err',
                'err'       =>  '1',
                'errmsg'    =>  'Сервер не найден.',
                'data'          =>  array(
                        'id'    =>  $s,
                        'num'   =>  mysqli_query($mysqli,"SELECT * FROM `servers` WHERE `id` = '$s'")
                    )));
        exit();
    }
    $ss = mysqli_fetch_object($check_ss);
    $token = '?login='.$ss->login.'&apikey='.base64_decode($ss->pwd);
    if (isset($type) && $type == 'Balance'){
        $js = json_decode(order_init($ss->url.$token.'&command=getBalance&json=1'));
        if ($js->status == 'SUCCESS'){
            return json_encode(array('status'    =>  'ok','bits'=>$js->balance,'currency'=>$js->currency));
        } else {
            return json_encode(array('status'    =>  'err','err'=>$js->errorCode,'errmsg'=>'Ошибка в работе сервера-обработчика. Сервер вернул код: '.$js->errorCode));
        }
    } elseif (isset($type) && $type=='AvailRegistrators'){
        $js = json_decode(order_init($ss->url.$token.'&command=getAvailRegistrators&json=1&zone='.$domain));
        # $js; exit());
        if ($js->status == 'SUCCESS'){
            return json_encode(array('status'    =>  'ok','registrators'=>$js->registrators));
        } else {
            return json_encode(array('status'    =>  'err','err'=>$js->errorCode,'errmsg'=>'Ошибка в работе сервера-обработчика. Сервер вернул код: '.$js->errorCode));
        }
    } elseif (isset($type) && $type=='DomainStatus'){
        $js = json_decode(order_init($ss->url.$token.'&command=getDomainStatus&json=1&domain='.$domain));
        # $js; exit());
        if ($js->status == 'SUCCESS'){
            return json_encode(array('status'    =>  'ok','domain'=>$js->domain,'status'=>$js->domainStatus,'todate'=>(isset($js->todate) ? $js->todate:null),'profileid'=>$js->profileid));
        } else {
            return json_encode(array('status'    =>  'err','err'=>$js->errorCode,'errmsg'=>'Ошибка в работе сервера-обработчика. Сервер вернул код: '.$js->errorCode));
        }
    } elseif (isset($type) && $type=='Profile'){
        $js = json_decode(order_init($ss->url.$token.'&command=getProfile&json=1&profileid='.$domain));
        # $js; exit());
        if ($js->status == 'SUCCESS'){
            return json_encode(array('status'    =>  'ok','fields'=>$js->fields));
        } else {
            return json_encode(array('status'    =>  'err','err'=>$js->errorCode,'errmsg'=>'Ошибка в работе сервера-обработчика. Сервер вернул код: '.$js->errorCode,'url'=>$ss->url.$token.'&command=getProfile&json=1&profileid='.$domain));
        }
    } elseif (isset($type) && $type=='CheckDomain'){
        $js = json_decode(order_init($ss->url.$token.'&command=checkDomain&json=1&domain='.$domain));
        # $js; exit());
        if ($js->status == 'SUCCESS'){
            return json_encode(array('status'    =>  'ok','avail'=>$js->avail));
        } else {
            return json_encode(array('status'    =>  'err','err'=>$js->errorCode,'errmsg'=>'Ошибка в работе сервера-обработчика. Сервер вернул код: '.$js->errorCode));
        }
    } elseif (isset($type) && $type=='AvailZones'){
        $js = json_decode(order_init($ss->url.$token.'&command=getAvailZones&json=1'));
         #return $js; exit());
        if ($js->status == 'SUCCESS'){
            return json_encode(array('status'    =>  'ok','zones'=>$js->zones));
        } else {
            return json_encode(array('status'    =>  'err','err'=>$js->errorCode,'errmsg'=>'Ошибка в работе сервера-обработчика. Сервер вернул код: '.$js->errorCode));
        }
    } elseif (isset($type) && $type=='AvailOblast'){
        $js = json_decode(order_init($ss->url.$token.'&command=getAvailOblast&json=1&country=RU'));
         #return $js; exit());
        if ($js->status == 'SUCCESS'){
            return json_encode(array('status'    =>  'ok','oblast'=>$js->oblast));
        } else {
            return json_encode(array('status'    =>  'err','err'=>$js->errorCode,'errmsg'=>'Ошибка в работе сервера-обработчика. Сервер вернул код: '.$js->errorCode));
        }
    } elseif (isset($type) && $type=='CreateProfile'){
        global $us;
        $js = json_decode(order_init($ss->url.$token.'&command=createProfile&json=1&country=RU&org=1&email='.$ank->email.'&'.$domain));
         #return $js; exit());
        if ($js->status == 'SUCCESS'){
            return json_encode(array('status'    =>  'ok','profileid'=>$js->profileid));
        } else {
            return json_encode(array('status'    =>  'err','err'=>$js->errorCode,'errmsg'=>'Ошибка в работе сервера-обработчика. Сервер вернул код: '.$js->errorCode,'syserr'=>$js->errorMsg,'errServCode'=>$js->errorCode));
        }
    } elseif (isset($type) && $type=='RegisterDomain'){
        global $us;
        $js = json_decode(order_init($ss->url.$token.'&command=registerDomain&json=1&domain='.$domain.'&period=1&defaultns=0&'.$data));
         #return $js; exit());
        if ($js->status == 'SUCCESS'){
            return json_encode(array('status'    =>  'ok','profileid'=>$js->profileid,'domain'=>$js->domain));
        } else {
            return json_encode(array('status'    =>  'err','err'=>$js->errorCode,'errmsg'=>'Ошибка в работе сервера-обработчика. Сервер вернул код: '.$js->errorCode,'syserr'=>$js->errorMsg,'errServCode'=>$js->errorCode));
        }
    } elseif (isset($type) && $type=='InfoDomain'){
        $js = json_decode(order_init($ss->url.$token.'&command=getDomainStatus&json=1&domain='.$domain));
         #return $js; exit());
        if ($js->status == 'SUCCESS'){
            return json_encode(array('status'    =>  'ok','profileid'=>$js->profileid,'domain'=>$js->domain,'status'=>$js->domainStatus));
        } else {
            return json_encode(array('status'    =>  'err','err'=>$js->errorCode,'errmsg'=>'Ошибка в работе сервера-обработчика. Сервер вернул код: '.$js->errorCode,'syserr'=>$js->errorMsg,'errServCode'=>$js->errorCode));
        } 
    } elseif (isset($type) && $type=='InfoDNS'){
        $js = json_decode(order_init($ss->url.$token.'&command=getDNS&json=1&domain='.$domain));
         #return $js; exit());
        if ($js->status == 'SUCCESS'){
            return json_encode(array('status'    =>  'ok','ns1'=>$js->ns1,'ns2'=>$js->ns2));
        } else {
            return json_encode(array('status'    =>  'err','err'=>$js->errorCode,'errmsg'=>'Ошибка в работе сервера-обработчика. Сервер вернул код: '.$js->errorCode,'syserr'=>$js->errorMsg,'errServCode'=>$js->errorCode));
        } 
    } elseif (isset($type) && $type=='ChangeDNS'){
        $js = json_decode(order_init($ss->url.$token.'&command=updateDNS&json=1&defaultns=0&domain='.$domain.'&'.$data));
         #return $js; exit());
        if ($js->status == 'SUCCESS'){
            return json_encode(array('status'    =>  'ok','ns1'=>$js->ns1,'ns2'=>$js->ns2));
        } else {
            return json_encode(array('status'    =>  'err','err'=>$js->errorCode,'errmsg'=>'Ошибка в работе сервера-обработчика. Сервер вернул код: '.$js->errorCode,'syserr'=>$js->errorMsg,'errServCode'=>$js->errorCode));
        }
    } elseif (isset($type) && $type=='info'){
                    $js = json_decode(order_init($ss->url.$token.'&command=getBalance&json=1'));
            if ($js->status == 'SUCCESS'){
                return json_encode(array(
                    'status'    =>  'ok',
                    'bits'      =>  $js->balance,
                    'currency'  =>  $js->currency,
                    'level'     => TRUE
                ));
            } else {
                #
                return json_encode(array(
                    'status'    =>  'err',
                    'err'       =>  $js->errorCode,
                    'errmsg'    =>  'Не удалось получить данные.',
                    'ret'   =>  $js));
            }
    } else {
        return json_encode(array('status'    =>  'err','err'=>'1','errmsg'=>'Не указана команда'));
    }
}

function is_valid_domain_name($domain_name)
{
    return (preg_match("/^([a-z\d](-*[a-z\d])*)(\.([a-z\d](-*[a-z\d])*))*$/i", $domain_name) //valid chars check
            && preg_match("/^.{1,253}$/", $domain_name) //overall length check
            && preg_match("/^[^\.]{1,63}(\.[^\.]{1,63})*$/", $domain_name)   ); //length of each label
}
?>