Dzień dobry, nie znalazłem gotowca, więc piszę tutaj :P
Otóż chciałem sobie napisać prostego klienta, łączącego się z serwisem śledzenia Poczty Polskiej. Według dokumentacji stąd: https://www.poczta-polska.pl/webservices/ powinienem połączyć się z tym adresem: https://tt.poczta-polska.pl/Sledzenie/services/Sledzenie?wsdl oraz podać odpowiedni login i hasło. Rzecz w tym, że nie bardzo wiem jak to zrobić, a porady na StackOverflow są dla mnie troszeczkę niejasne (pierwszy raz robię coś podobnego, bo zwykła metoda "połącz się ze stroną PP, podstaw numer paczki i pobierz jej zawartość curlem" nie działa).
Po przeszukaniu kawałka internetu, mam coś takiego:
$params = ['Username' => 'SledzeniePP', 'Password' => 'PPSA'];
$client = new SoapClient("https://".urlencode($params['Username']).":".urlencode($params['Password'])."@tt.poczta-polska.pl/Sledzenie/services/Sledzenie?wsdl",$params);
var_dump($client->__getFunctions());
echo "<br /><br /><br />";
var_dump($client->__getTypes());
który wypluwa mi to:
array(9) { [0]=> string(23) "wersjaResponse wersja()" [1]=> string(77) "sprawdzPrzesylkiPlResponse sprawdzPrzesylkiPl(sprawdzPrzesylkiPl $parameters)" [2]=> string(77) "sprawdzPrzesylkePlResponse sprawdzPrzesylkePl(sprawdzPrzesylkePl $parameters)" [3]=> string(83) "sprawdzPrzesylkiOdDoResponse sprawdzPrzesylkiOdDo(sprawdzPrzesylkiOdDo $parameters)" [4]=> string(61) "maksymalnaLiczbaPrzesylekResponse maksymalnaLiczbaPrzesylek()" [5]=> string(71) "sprawdzPrzesylkeResponse sprawdzPrzesylke(sprawdzPrzesylke $parameters)" [6]=> string(89) "sprawdzPrzesylkiOdDoPlResponse sprawdzPrzesylkiOdDoPl(sprawdzPrzesylkiOdDoPl $parameters)" [7]=> string(38) "witajResponse witaj(witaj $parameters)" [8]=> string(71) "sprawdzPrzesylkiResponse sprawdzPrzesylki(sprawdzPrzesylki $parameters)" }
Szkopuł w tym, że nawet nie wiem, czy mam to uznać za objaw poprawnego połączenia się z tym serwisem, bo pierwsza lepsza z brzegu funkcja $client->wersja(); wyrzuca błąd:
Fatal error: Uncaught SoapFault exception: [soapenv:Server] WSDoAllReceiver: Incoming message does not contain required Security header
Proszę o jakąś podpowiedź, co mogę robić nie tak, i jakieś wskazówki jak to w ogóle ogarnąć.