Przykład połączenia z użyciem kodu php:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | class HRDConfig { public $uid = "__uid_partnera__"; public $pass = "__zakodowane_nrCSP_i_haslo partnera__"; // np. "csp123haslo" const NS = "https://www.hrd.pl/partnerAPI/"; const PARTNER = "https://www.hrd.pl/partnerAPI/Partner.php?wsdl"; const DOMAIN = "https://www.hrd.pl/partnerAPI/Domain.php?wsdl"; const CERTIFICATE = "https://www.hrd.pl/partnerAPI/Certificate.php?wsdl"; const CLIENT = "https://www.hrd.pl/partnerAPI/Client.php?wsdl"; const POLL = "https://www.hrd.pl/partnerAPI/Poll.php?wsdl"; const INVOICE = "https://www.hrd.pl/partnerAPI/Invoice.php?wsdl";} ini_set("soap.wsdl_cache_enabled", "1"); //Włączenie pamięci cache dla plików wsdl$soap = new SoapClient(HRDConfig::DOMAIN, array("encoding"=>"UTF-8", "exceptions" => true));$soap->__setSoapHeaders(array(new SoapHeader(HRDConfig::NS, "AuthHeader", new HRDConfig()))); |
Przykładowa odpowiedź dla podania błędnych danych autoryzacyjnych:
1 | {"status":false,"errorCode":"1032","error":"Auth Error"} |
Po otrzymaniu odpowiedzi na wysłaną komendę w przypadku php należy dokonać jej konwersji na tablicę za pomocą funkcji json_decode().
1 2 3 | $response = '{"status":true,"domains":{"hrd.pl":{"status":"0"}}}';$result = json_decode($response);echo var_dump($result); |
Przy implementacjach w innych językach ważne jest wysłanie dodatkowego pola nagłówka AuthHeader z klasą HRDConfig zawierajacą uid i pass
uid: otrzymuje się w panelu po zalogowaniu pass: to zakodowane połączenie numeru CSP i hasła, np. (md5(‚cspxxxhaslo’)
Dodatkowy kod javy do kodu wygenerowanego z wsdl’a dla modulu Domain
1 2 3 4 5 6 7 8 9 | DomainServiceLocator locator = new DomainServiceLocator();DomainPortType conn = locator.getDomainPort(); SOAPHeaderElement header = new SOAPHeaderElement("https://www.hrd.pl/partnerAPI/", "AuthHeader");SOAPElement node = header.addChildElement("uid");node.addTextNode("__uid__");node = header.addChildElement("pass");node.addTextNode("__pass__");((Stub) conn).setHeader(header); |
Ważne uwagi
Standardem kodowania w API HRD jest utf-8. Wszelkie parametry oraz zwracane dane przekazywane są zgodnie z podanym formatowaniem.
Dla wszystkich komend jako pierwszy parametr zwracany jest status wykonania komendy – true lub false.
W przypadku, jeżeli oprócz powyższej informacji zwracane są również inne parametry, status wykonania komendy nie jest wymieniany w tabeli Zwracane dane.