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); } } }