function hook_stregistrar_ShoppingCartValidateDomainsConfig($params) { $errors = array(); foreach ($_SESSION['cart']['domains'] as $key => $domain) { // check premium domain registration if ($domain['type'] == 'register') { $config = __getSTRegistrarModuleConfig(); if (__domainIsPremium($domain['domain']) && $config['allowPremium'] !== 'on') { return $errors[] = "Registration of premium domains is disabled by server configuration"; } } if ($domain['type'] == 'transfer') { // init api connection if (($status = __initConnectionAndAuthorize(__getSTRegistrarModuleConfig())) === false) { return $errors[] = $status; } // try to query domain using specified auth code $json = STRegistry::Domains()->query($domain['domain'], $domain['eppcode']); if (!ResponseHelper::isSuccess($json)) { $status = ResponseHelper::fromJSON($json); if ($status->code == 2202) { $errors[] = sprintf('EPP Code is invalid for domain: %s', $domain['domain']); } else { $errors[] = $status->message; } } $domainObj = Domain::fromJSON($json); // check status prohibitions if (in_array(Domain::STATUS_TRANSFER_PROHIBITED, $domainObj->getStatuses()) || in_array('serverTransferProhibited', $domainObj->getStatuses())) { $errors[] = sprintf('Domain %s is not eligible for transfer. Please contact current domain registrar for assistance', $domain['domain']); } } if (!count($errors)) { __storeDomainEppCode($domain['domain'], $domain['eppcode']); } } return count($errors) ? $errors : ''; }
function stregistry_Sync($params) { // init connection if (($status = __initConnectionAndAuthorize($params)) !== true) { return __errorArray($status); } // fetch domain $json = STRegistry::Domains()->query($params['domain']); if (!ResponseHelper::isSuccess($json)) { $response = ResponseHelper::fromJSON($json); if ($response->code == 2303 || $response->code == 2203) { // domain does not already exists or not own by current registarar __markWHMCSDomainCancelled($params['domainid']); return array('active' => false, 'expired' => false); } else { return __errorArray($response->message); } } $domain = Domain::fromJSON($json); if ($domain->getDateExpire() < time()) { return array('expired' => true); } return array('active' => true, 'expired' => false, 'expirydate' => $domain->getDateExpire('Y-m-d')); }
/** * */ public function getRequestDataForUpdate(Domain $domain) { $data = array(); $json = STRegistry::Domains()->query($domain->getName()); $currentDomain = Domain::fromJSON($json); if ($currentDomain->getAuthCode() != $domain->getAuthCode()) { if (!isset($data['chg'])) { $data['chg'] = array(); } $data['chg']['authInfo'] = array('pw' => $domain->getAuthCode()); } foreach ($currentDomain->getContacts() as $type => $contact) { $newContacts = $domain->getContacts(); if ($newContacts[$type] !== false && $newContacts[$type] != $contact) { if (!isset($data['rem']['contact'])) { $data['rem']['contact'] = array(); } if (!isset($data['add']['contact'])) { $data['add']['contact'] = array(); } $data['rem']['contact'][] = array($type => $contact); if (!empty($newContacts[$type])) { $data['add']['contact'][] = array($type => $newContacts[$type]); } } } foreach ($domain->getNameServers() as $nameserver => $ips) { if (!in_array($nameserver, array_keys($currentDomain->getNameServers()))) { if (!isset($data['add']['ns'])) { $data['add']['ns'] = array(); } $upd = array('name' => $nameserver); if (count($ips)) { $upd['addr'] = array(); foreach ($ips as $ip) { $upd['addr'][] = array(CommonFunctions::detectIPType($ip) => $ip); } } $data['add']['ns'][] = $upd; } } foreach ($currentDomain->getNameServers() as $nameserver => $ips) { if (!in_array($nameserver, array_keys($domain->getNameServers()))) { if (!isset($data['rem']['ns'])) { $data['rem']['ns'] = array(); } $data['rem']['ns'][] = $nameserver; } } foreach ($domain->getStatuses() as $status) { if (!in_array($status, array(Domain::STATUS_HOLD, Domain::STATUS_DELETE_PROHIBITED, Domain::STATUS_RENEW_PROHIBITED, Domain::STATUS_TRANSFER_PROHIBITED, Domain::STATUS_UPDATE_PROHIBITED))) { continue; } if (!in_array($status, $currentDomain->getStatuses())) { if (!isset($data['add']['status'])) { $data['add']['status'] = array(); } $data['add']['status'][] = $status; } } foreach ($currentDomain->getStatuses() as $status) { if (!in_array($status, array(Domain::STATUS_HOLD, Domain::STATUS_DELETE_PROHIBITED, Domain::STATUS_RENEW_PROHIBITED, Domain::STATUS_TRANSFER_PROHIBITED, Domain::STATUS_UPDATE_PROHIBITED))) { continue; } if (!in_array($status, $domain->getStatuses())) { if (!isset($data['rem']['status'])) { $data['rem']['status'] = array(); } $data['rem']['status'][] = $status; } } return $data; }