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.
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:
public function createEN($login, $password,$testMode = false) {
$wsdl = 'https://en-testwebapi.poczta-polska.pl/websrv/en.wsdl';
$api = 'https://en-testwebapi.poczta-polska.pl/';
$options["login"] = $login;
$options["password"] = $password;
$options["location"] = "https://en-testwebapi.poczta-polska.pl/websrv/en.wsdl";
$options['trace'] = 1;
$this->e = new \ElektronicznyNadawca($wsdl, $options, $api);
try {
} catch(\Exception $e) {
echo "---------------0----------------\n"; var_dump($this->e->__getLastRequestHeaders
() ); echo "---------------1----------------\n"; var_dump($this->e->__getLastRequest
() ); echo "---------------2----------------\n"; var_dump($this->e->__getLastResponseHeaders
() ); echo "---------------3----------------\n"; var_dump($e->getMessage(),$e->getCode()); echo "---------------4----------------\n"; }
}
4. Wywołuje wszystko z loginem i hasłem na testowe api
5. Odpowiedź:
---------------0----------------
string(313) "POST /websrv/en.wsdl HTTP/1.1
Host: en-testwebapi.poczta-polska.pl
Connection: Keep-Alive
User-Agent: PHP-SOAP/7.4.9
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://e-nadawca.poczta-polska.pl/hello"
Content-Length: 243
Authorization: Basic a29iaWV0YWtvYWxhQGdtYWlsLmNvbTpLb2JpZXRha29hbGEyMA==
"
---------------1----------------
string(243) "<?xml version="1.0" encoding="UTF-8"?>
<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>
"
---------------2----------------
string(379) "HTTP/1.1 200 OK
Date: Wed, 16 Sep 2020 07:44:21 GMT
Server: Apache
X-Frame-Options: SAMEORIGIN
Last-Modified: Wed, 05 Aug 2020 04:08:49 GMT
ETag: "33b23-5ac19876a2165"
Accept-Ranges: bytes
Content-Length: 211747
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: application/wsdl+xml
"
---------------3----------------
string(13) "Wrong Version"
int(0)
---------------4----------------
string(382) "#0 C:\xampp\htdocs\pocztapolska\Elektroniczny_Nadawca.php(2901): SoapClient->__soapCall('hello', Array, Array)
#1 C:\xampp\htdocs\pocztapolska\index.php(41): ElektronicznyNadawca->hello(Object(hello))
#2 C:\xampp\htdocs\pocztapolska\index.php(14): client->createEN("login", "haslo")
#3 C:\xampp\htdocs\pocztapolska\index.php(193): client->makeTests()
#4 {main}"
(4a.Czym jest owe magiczne "Wrong Version" ?)
5. Ten sam kod, dla produkcji zwraca hello. Czyli
$wsdl = 'https://e-nadawca.poczta-polska.pl/websrv/en.wsdl';
$api = 'https://e-nadawca.poczta-polska.pl/';
i odpowiedź:
<pre>let test beginobject(helloResponse)#4 (1) {
["out"]=>
string(6) "Hello "
}
</pre>
Czyli dostaję oczekiwaną odpowiedź. Jakieś porady w stosunku do testowego api?