Společnost Subreg se dostupností svého API rozhraní poměrně výrazně chlubí, a proto když jsem začal řešit automatické ověření domény s libovolnou koncovkou, byla má volba vcelku jasná. Pakliže si i vy chcete ušetřit práci a určitou proceduru svěřit aplikaci, můžete celou záležitost zrealizovat podobně, jako jsem to učinil já. Nedílnou součást API od Subregu tvoří i dokumentace, nechcete-li však ztrácet čas jejím studováním, patrně postačí, když se podíváte na moji hotovou ukázku zdrojového kódu v PHP. Napsaní vlastní funkce patrně díky ní mnoho času nezabere.
Přihlášení a odeslání požadavku
Nejprve si vytvořte proměnou, která v sobě bude obsahovat znění dané domény. Učinit tak lze mnoha rozdílnými způsoby, a proto níže uvedený příklad zobrazuje jen samotné ověření. Ať už potřebná data získáte z formuláře, databáze či CSV souboru, vždy bude následující postup shodný. Po lehké modifikaci proto snadno zpracování aplikujete u odlišných projektů.
<?php $domena = "szj.cz"; $client = new SoapClient( null, array( "location" => "https://soap.subreg.cz/cmd.php", "uri" => "http://soap.subreg.cz/soap" ) ); $params = array ( "data" => array ( "login" => "jmeno", "password" => "heslo", ) ); $response = $client->__call("Login",$params); $token = $response["data"]["ssid"]; unset($params); $params = array ( "data" => array ( "ssid" => $token, "domain" => $domena, ) ); $response = $client->__call("Check_Domain",$params); echo 'Doména '.$domena.' je '; if ($response["data"]["avail"] == 0) { echo '<span style="color:#FF0000">Obsazená</span>'; } else if($response["data"]["avail"] == 1) { echo '<span style="color:#00FF00">Volná</span>'; } ?>
Základ zdrojového kódu se pochopitelně shoduje s nastíněným použitím prezentovaným na stránkách Subregu v sekci API. Několik drobných obměn však naleznete. Především je nutno specifikovat používané komunikační kanály. Protože jsme běžní uživatelé, zaměníme původní PRODUCTION za soap.subreg.cz. Nyní přistoupíme k samotnému přihlášení. Pole musí obsahovat platné uživatelské jméno a heslo. Jde o údaje, které zadáváte na hlavní stránce Subregu, když potřebujete učinit prostřednictvím svého účtu libovolnou objednávku. V odpovědi na nás čeká ssid, s jehož pomocí vznikne platný dotaz. Opět se neobejdeme bez příslušného pole. V něm se přitom již bude objevovat jako řetězec požadovaná doména specifikovaná na začátku skriptu.
Nyní bych rád napsal, že odpověď API serveru na sebe nenechá dlouho čekat, během testování se mi však stalo, že vykonání trvalo i déle než deset vteřin. Patrně však nešlo o standardní stav, protože nyní získávám žádaná data bez dlouhých prodlev.
Poslední úkol představuje zpracování výsledku. Pakliže se na indexu avail nachází 0, znamená to, že doména není volná. Jak již jistě tušíte, opačný stav signalizuje 1.