• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Łączenie się ze śledzeniem paczek Poczty Polskiej w PHP (WSDL, SOAP)

Object Storage Arubacloud
0 głosów
747 wizyt
pytanie zadane 20 stycznia 2020 w PHP przez TeslaX93 Gaduła (3,600 p.)

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ąć.

komentarz 20 stycznia 2020 przez Tomek Sochacki Ekspert (227,510 p.)
Jestem na mobile więc nie będę teraz szperał po tej dokumentacji ale z tego co widzę to masz info w tym błędzie:

"Incoming message does not contain required Security header"

jest wprost napisane, że nie podałeś jakiegoś wymaganego nagłówka, przeczytaj może jeszcze raz dokładnie dokumentację bo pewnie o czymś zapomniałeś.

1 odpowiedź

0 głosów
odpowiedź 22 stycznia 2020 przez olekjs Gaduła (4,540 p.)

Jeśli jeszcze nie znalazłeś rozwiązania, a jest to możliwe bo sam siedziałem parę dobrych dni nad podobnym błędem. Brakuje nagłówka wsse security header. W dokumentacji masz przykład jak taki nagłówek musi wyglądać. Są dwie bardzo pomocne paczki, które możesz pobrać i one zajmą się generowaniem nagłówka.

Popełniłem o tym cały artykuł tutaj: https://olekkaim.pl/soap-php-garsc-przykladow-i-teorii/

w artykule piszę o certyfikacie ale nie zwracaj na niego uwagi. Przydatne paczki znajdziesz pod koniec tekstu. Powodzenia ;) 

Podobne pytania

0 głosów
0 odpowiedzi 247 wizyt
pytanie zadane 12 listopada 2018 w PHP przez vanowikv13 Bywalec (2,740 p.)
0 głosów
0 odpowiedzi 146 wizyt
pytanie zadane 4 października 2018 w PHP przez garris Użytkownik (660 p.)
0 głosów
0 odpowiedzi 97 wizyt
pytanie zadane 4 grudnia 2018 w Java przez maly93 Użytkownik (640 p.)

92,573 zapytań

141,423 odpowiedzi

319,647 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...