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.