Example #1
0
function LogicBoxes_Domain_Register($Settings, $DomainName, $DomainZone, $Years, $Ns1Name, $Ns1IP, $Ns2Name, $Ns2IP, $Ns3Name, $Ns3IP, $Ns4Name, $Ns4IP, $IsPrivateWhoIs, $CustomerID)
{
    /****************************************************************************/
    $__args_types = array('array', 'string', 'string', 'integer', 'string', 'string', 'string', 'string', 'string', 'string', 'string', 'string', 'boolean', 'string');
    #-----------------------------------------------------------------------------
    $__args__ = Func_Get_Args();
    eval(FUNCTION_INIT);
    /****************************************************************************/
    $Wsdl = System_Element('config/Wsdl/DomContact.wsdl');
    if (Is_Error($Wsdl)) {
        return ERROR | @Trigger_Error(500);
    }
    #-----------------------------------------------------------------------------
    $CustomerInfo = new SoapClient($Wsdl, array('exceptions' => 0));
    #-----------------------------------------------------------------------------
    $Response = $CustomerInfo->listNames($Settings['Login'], $Settings['Password'], 'reseller', 'ru', $Settings['ParentID'], $CustomerID);
    #-----------------------------------------------------------------------------
    if (Is_SOAP_Fault($Response)) {
        #---------------------------------------------------------------------------
        Debug($Response->faultstring);
        #---------------------------------------------------------------------------
        return new gException('ANSWER_ERROR', 'Ошибка обращения к регистратору');
    }
    #-----------------------------------------------------------------------------
    Debug(Print_R($Response, TRUE));
    #-----------------------------------------------------------------------------
    $Contact = Next($Response);
    $ContactId = $Contact['contact.contactid'];
    #-----------------------------------------------------------------------------
    $Wsdl = System_Element('config/Wsdl/DomOrder.wsdl');
    if (Is_Error($Wsdl)) {
        return ERROR | @Trigger_Error(500);
    }
    #-----------------------------------------------------------------------------
    $ContactHash = array('registrantcontactid' => $ContactId, 'admincontactid' => $ContactId, 'technicalcontactid' => $ContactId, 'billingcontactid' => $ContactId);
    #-----------------------------------------------------------------------------
    $Domain = SPrintF('%s.%s', $DomainName, $DomainZone);
    #-----------------------------------------------------------------------------
    $DomainHash = array($Domain => $Years);
    #-----------------------------------------------------------------------------
    $NsServers = array($Ns1Name, $Ns2Name);
    #-----------------------------------------------------------------------------
    if ($Ns3Name) {
        $NsServers[] = $Ns3Name;
    }
    #-----------------------------------------------------------------------------
    if ($Ns4Name) {
        $NsServers[] = $Ns4Name;
    }
    #-----------------------------------------------------------------------------
    $Params = array('userName' => $Settings['Login'], 'password' => $Settings['Password'], 'role' => 'reseller', 'langpref' => 'ru', 'parentid' => $Settings['ParentID'], 'addParamList' => array(array('domainhash' => $DomainHash, 'contacthash' => $ContactHash)), 'nameServerList' => $NsServers, 'customerId' => $CustomerID, 'invoiceOption' => 'NoInvoice', 'enablePrivacyProtection' => $IsPrivateWhoIs, 'validate' => TRUE, 'extraInfo' => array());
    #-----------------------------------------------------------------------------
    $RegDomain = new SoapClient($Wsdl, array('exceptions' => 0));
    #-----------------------------------------------------------------------------
    Debug(Print_R($Params, TRUE));
    #-----------------------------------------------------------------------------
    $Response = $RegDomain->__SoapCall('RegisterDomain', $Params);
    #-----------------------------------------------------------------------------
    if (Is_SOAP_Fault($Response)) {
        #---------------------------------------------------------------------------
        Debug($Response->faultstring);
        #---------------------------------------------------------------------------
        return new gException('ANSWER_ERROR', 'Ошибка обращения к регистратору');
    }
    #-----------------------------------------------------------------------------
    Debug(Print_R($Response, TRUE));
    #-----------------------------------------------------------------------------
    foreach (Array_Keys($DomainHash) as $DomainID) {
        #---------------------------------------------------------------------------
        switch ($Response[$DomainID]['status']) {
            case 'error':
                #-----------------------------------------------------------------------
                Debug($Response[$DomainID]['error']);
                #-----------------------------------------------------------------------
                return new gException('REGISTRATION_ERROR', 'Ошибка регистрации домена');
            case 'Success':
                return array('TicketID' => $Domain);
            default:
                return ERROR | @Trigger_Error(101);
        }
    }
}