Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [XML][PHP]Enadawca/PocztaPolskaWebApi
Kobietakoala
post 16.09.2020, 08:57:32
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 10.09.2020

Ostrzeżenie: (0%)
-----


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?

Go to the top of the page
+Quote Post
SmokAnalog
post 16.09.2020, 17:24:03
Post #2





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Nigdy nie używałem tego API, ale może wymaga ono podania wersji API, której chcesz użyć?
Go to the top of the page
+Quote Post
Kobietakoala
post 17.09.2020, 11:04:17
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 10.09.2020

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
trueblue
post 17.09.2020, 11:16:12
Post #4





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Na pewno do API prowadzi taki URL jak w Twoim kodzie?


--------------------
Go to the top of the page
+Quote Post
Kobietakoala
post 24.09.2020, 12:41:15
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 10.09.2020

Ostrzeżenie: (0%)
-----


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ć

Ten post edytował Kobietakoala 24.09.2020, 12:42:20
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 23:38