/** * make domain registration api call * * @param array $params call params with domain details * * @return mixed array containig error message will return if error was ocurred, 'success' string in other case */ function stregistry_RegisterDomain($params) { // init connection if (($status = __initConnectionAndAuthorize($params)) !== true) { return __errorArray($status); } $domain = new Domain($params['domainname']); // create domain contacts $contactIds = array(); foreach (array('registrant', 'admin', 'tech', 'billing') as $contactType) { $contact = new Contact(); $contact->setEmail($params['email'])->setPhoneNumber($params['phonenumberformatted'] ?: '')->setName($params['fullname'])->setOrganization($params['companyname'])->setAddress($params['address1'], $params['address1'] ?: '')->setCity($params['city'])->setState($params['fullstate'])->setPostalCode($params['postcode'])->setCountryCode($params['countrycode']); $json = STRegistry::Contacts()->create($contact); if (!ResponseHelper::isSuccess($json)) { return __errorArray(ResponseHelper::fromJSON($json)->message); } $contactIds[$contactType] = ResponseHelper::fromJSON($json, 'creData')->result['id']; } $domain->setContacts($contactIds['registrant'], $contactIds['admin'], $contactIds['tech'], $contactIds['billing']); if ($params['idprotection']) { $domain->setPrivacyContacts(STRegistryPrivacyContact::getRegistrantId(), STRegistryPrivacyContact::getAdminId(), STRegistryPrivacyContact::getTechId(), STRegistryPrivacyContact::getBillingId()); } // add nameservers foreach (array('ns1', 'ns2', 'ns3', 'ns4', 'ns5') as $nsKey) { if (!empty($params[$nsKey])) { $domain->addNameServer($params[$nsKey]); } } // creating domain $json = STRegistry::Domains()->create($domain, $params['regperiod']); if (!ResponseHelper::isSuccess($json)) { return __errorArray(ResponseHelper::fromJSON($json)->message); } return 'success'; }
/** * Create Domain object from json string * * @param str $json json string representing domain state * * @return Domain */ public static function fromJSON($json) { $data = CommonFunctions::fromJSON($json, 'info')->result; $domain = new Domain($data['name']); $domain->setContacts($data['contacts'][Domain::CONTACT_TYPE_REGISTRANT], $data['contacts'][Domain::CONTACT_TYPE_ADMIN], $data['contacts'][Domain::CONTACT_TYPE_TECH], $data['contacts'][Domain::CONTACT_TYPE_BILLING])->setPrivacyContacts(@$data['contacts'][Domain::CONTACT_TYPE_REGISTRANT_PRIVACY], @$data['contacts'][Domain::CONTACT_TYPE_ADMIN_PRIVACY], @$data['contacts'][Domain::CONTACT_TYPE_TECH_PRIVACY], @$data['contacts'][Domain::CONTACT_TYPE_BILLING_PRIVACY])->setDateCreated($data['crDate'])->setDateExpire($data['exDate'])->setAuthCode($data['authInfo']['pw']); if (isset($data['ns']) && count($data['ns'])) { foreach ($data['ns'] as $nameserver) { $domain->addNameServer($nameserver); } } foreach ($data['status'] as $status) { $domain->addStatus($status); } return $domain; }