Nawiązanie połączenia


 

Lista plików wsdl:

  • https://www.hrd.pl/partnerAPI/Partner.php?wsdl
  • https://www.hrd.pl/partnerAPI/Domain.php?wsdl
  • https://www.hrd.pl/partnerAPI/Client.php?wsdl
  • https://www.hrd.pl/partnerAPI/Poll.php?wsdl
  • https://www.hrd.pl/partnerAPI/Invoice.php?wsdl

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/";
}
 
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!
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.