Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [XML][PHP]Enadawca/PocztaPolskaWebApi
Forum PHP.pl > Forum > Przedszkole
Kobietakoala
Witam,
mam problem z przełączeniem się na testowe api poczty polskiej.
Co ciekawe odpytywanie hello na ich produkcji działa poprawnie i zwraca wyniki. facepalmxd.gif

Schemat moich działań:
1. Posiadam konto na testowym api
2. Wygenerowałam klase php z tego linku : "https://en-testwebapi.poczta-polska.pl/websrv/en.wsdl"
3. W innych wątkach związanych z pocztą polską znalazłam metodę żeby wywołać zapytania:
  1. public function createEN($login, $password,$testMode = false) {
  2. $wsdl = 'https://en-testwebapi.poczta-polska.pl/websrv/en.wsdl';
  3. $api = 'https://en-testwebapi.poczta-polska.pl/';
  4.  
  5. $options = array();
  6. $options["login"] = $login;
  7. $options["password"] = $password;
  8. $options["location"] = "https://en-testwebapi.poczta-polska.pl/websrv/en.wsdl";
  9. $options['trace'] = 1;
  10.  
  11. $this->e = new \ElektronicznyNadawca($wsdl, $options, $api);
  12. try {
  13. var_dump($this->e->hello(new \hello));
  14. } catch(\Exception $e) {
  15. echo "---------------0----------------\n";
  16. var_dump($this->e->__getLastRequestHeaders() );
  17. echo "---------------1----------------\n";
  18. var_dump($this->e->__getLastRequest() );
  19. echo "---------------2----------------\n";
  20. var_dump($this->e->__getLastResponseHeaders() );
  21. echo "---------------3----------------\n";
  22. var_dump($e->getMessage(),$e->getCode());
  23. echo "---------------4----------------\n";
  24. var_dump($e->getTraceAsString());
  25. }
  26. }


4. Wywołuje wszystko z loginem i hasłem na testowe api
5. Odpowiedź:
  1. ---------------0----------------
  2. string(313) "POST /websrv/en.wsdl HTTP/1.1
  3. Host: en-testwebapi.poczta-polska.pl
  4. Connection: Keep-Alive
  5. User-Agent: PHP-SOAP/7.4.9
  6. Content-Type: text/xml; charset=utf-8
  7. SOAPAction: "http://e-nadawca.poczta-polska.pl/hello"
  8. Content-Length: 243
  9. Authorization: Basic a29iaWV0YWtvYWxhQGdtYWlsLmNvbTpLb2JpZXRha29hbGEyMA==
  10.  
  11. "
  12. ---------------1----------------
  13. string(243) "<?xml version="1.0" encoding="UTF-8"?>
  14. <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://e-nadawca.poczta-polska.pl"><SOAP-ENV:Body><ns1:hello><in/></ns1:hello></SOAP-ENV:Body></SOAP-ENV:Envelope>
  15. "
  16. ---------------2----------------
  17. string(379) "HTTP/1.1 200 OK
  18. Date: Wed, 16 Sep 2020 07:44:21 GMT
  19. Server: Apache
  20. X-Frame-Options: SAMEORIGIN
  21. Last-Modified: Wed, 05 Aug 2020 04:08:49 GMT
  22. ETag: "33b23-5ac19876a2165"
  23. Accept-Ranges: bytes
  24. Content-Length: 211747
  25. X-XSS-Protection: 1; mode=block
  26. X-Content-Type-Options: nosniff
  27. Keep-Alive: timeout=15, max=100
  28. Connection: Keep-Alive
  29. Content-Type: application/wsdl+xml
  30. "
  31. ---------------3----------------
  32. string(13) "Wrong Version"
  33. int(0)
  34. ---------------4----------------
  35. string(382) "#0 C:\xampp\htdocs\pocztapolska\Elektroniczny_Nadawca.php(2901): SoapClient->__soapCall('hello', Array, Array)
  36. #1 C:\xampp\htdocs\pocztapolska\index.php(41): ElektronicznyNadawca->hello(Object(hello))
  37. #2 C:\xampp\htdocs\pocztapolska\index.php(14): client->createEN("login", "haslo")
  38. #3 C:\xampp\htdocs\pocztapolska\index.php(193): client->makeTests()
  39. #4 {main}"


(4a.Czym jest owe magiczne "Wrong Version" ?)

5. Ten sam kod, dla produkcji zwraca hello. Czyli
  1. $wsdl = 'https://e-nadawca.poczta-polska.pl/websrv/en.wsdl';
  2. $api = 'https://e-nadawca.poczta-polska.pl/';


i odpowiedź:

  1. <pre>let test beginobject(helloResponse)#4 (1) {
  2. ["out"]=>
  3. string(6) "Hello "
  4. }
  5. </pre>


Czyli dostaję oczekiwaną odpowiedź. Jakieś porady w stosunku do testowego api?

SmokAnalog
Nigdy nie używałem tego API, ale może wymaga ono podania wersji API, której chcesz użyć?
Kobietakoala
Niezbyt pomogło. Na moje nieszczęście, przerzuciłam wszystko na pythona, żeby się upewnić czy wgl to testowe działa, czy dane są poprawne, etc - no i niestety działa. Nistety bo potrzebuje tego na phpie :/ Ktoś coś, jakieś porady?
trueblue
Na pewno do API prowadzi taki URL jak w Twoim kodzie?
Kobietakoala
Cytat
Tak. Dokumentacja tak twierdzi i z autoryzacją nie ma problemów



Edit:
Dla kiedyś poszukujących: Do testowego api najlepiej jest pobrać całego wsdl'a do pliku, niestety z linku nie działa. Na produkcji można korzystać z linku do wsdl.

I link, który pomógł mi rozwiązać problem : http://rozkodowany.blogspot.com/2014/11/wi...ny-zostaem.html

Jeżeli zamyka się tu tematy, to można to zrobić
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.