Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> SOAP doAuth
winiar789
post 7.05.2018, 09:24:11
Post #1





Grupa: Zarejestrowani
Postów: 130
Pomógł: 0
Dołączył: 15.11.2011

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


Witam mistrzów kodowania smile.gif

Temat wydaje się dość prosty jednak nie dla mnie.

SOAP - korzystam z biblioteki nusoap... Aby pobrać jakiekolwiek dane najpierw logowania i mam sobie metodę : doAuth.

  1.  
  2.  
  3. POST /_admin/Api/connector.asmx HTTP/1.1
  4. Content-Type: application/soap+xml; charset=utf-8
  5. Content-Length: length
  6.  
  7. <?xml version="1.0" encoding="utf-8"?>
  8. <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  9. <soap12:Body>
  10. <doAuth xmlns="http://api.xxxxx.pl">
  11. <uid>string</uid>
  12. <password>string</password>
  13. </doAuth>
  14. </soap12:Body>
  15. </soap12:Envelope>
  16.  
  17.  


  1.  
  2. HTTP/1.1 200 OK
  3. Content-Type: application/soap+xml; charset=utf-8
  4. Content-Length: length
  5.  
  6. <?xml version="1.0" encoding="utf-8"?>
  7. <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  8. <soap12:Header>
  9. <ConnectorAuth xmlns="http://api.xxxxxxx.pl">
  10. <Hash>string</Hash>
  11. <Create>dateTime</Create>
  12. </ConnectorAuth>
  13. </soap12:Header>
  14. <soap12:Body>
  15. <doAuthResponse xmlns="http://api.xxxxxx.pl">
  16. <doAuthResult>boolean</doAuthResult>
  17. </doAuthResponse>
  18. </soap12:Body>
  19. </soap12:Envelope>
  20.  




KOD


  1.  
  2. require_once('lib/nusoap.php');
  3.  
  4. $wsdl = 'https://xxxxxxxxxx.pl/_admin/Api/connector.asmx?WSDL';
  5. $client = new nusoap_client($wsdl, 'wsdl');
  6.  
  7. $params = array('uid' => 'abcd123455', 'password' => "abc1234567");
  8. $response = $client->call('doAuth', $params);
  9.  
  10. var_dump($response);



Zwrotnie dostaje że jest ok - ale w czym rzecz że jak próbuje pod spodem wywołać inną metodę to mówi że nie zalogowany.
np:

  1.  
  2. <?xml version="1.0" encoding="utf-8"?>
  3. <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  4. <soap:Header>
  5. <ConnectorAuth xmlns="http://xxxxxxxxxxxxxx.pl">
  6. <Hash>string</Hash>
  7. <Create>dateTime</Create>
  8. </ConnectorAuth>
  9. </soap:Header>
  10. <soap:Body>
  11. <getOrderList xmlns="http://api.xxxxxxxxxxx.pl">
  12. <addedBefore>dateTime</addedBefore>
  13. <orderState>int</orderState>
  14. <page>int</page>
  15. <pageSize>int</pageSize>
  16. </getOrderList>
  17. </soap:Body>
  18. </soap:Envelope>
  19.  



Problem jest w tym: ConnectorAuth gdzie nie potrafię przenieść do następnej metody Hash który został wygenerowany przy metodzie doAuth jako zalogowany.

A może jeszcze inaczej jak mogę pobrać HEADER z Hash i Data aby poźniej je wykorzystać do innych metod

Podbije temat - bo nie dostałem żadnej odpowiedzi a nie ukrywam potrzebuję waszej pomocy sad.gif

Ten post edytował winiar789 2.05.2018, 09:08:18
Go to the top of the page
+Quote Post
LowiczakPL
post 8.05.2018, 07:11:22
Post #2





Grupa: Zarejestrowani
Postów: 531
Pomógł: 55
Dołączył: 3.01.2016
Skąd: Łowicz

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


A czy przekazujesz HASH, ID sesji w kolejnym zapytaniu

  1. require_once('lib/nusoap.php');
  2.  
  3. $wsdl = 'https://xxxxxxxxxx.pl/_admin/Api/connector.asmx?WSDL';
  4. $client = new nusoap_client($wsdl, 'wsdl');
  5.  
  6. $params = array('uid' => 'abcd123455', 'password' => "abc1234567");
  7. $login_result = $client->call('doAuth', $params);
  8.  
  9. $sessionId = $login_result['Hash'];
  10.  
  11. $params2 = array('Hash' => $sessionId, 'inne_paramety' => "inne parametry");
  12. $entry_result = $client->call('jakasMetoda', $params2);
  13.  


Ten post edytował LowiczakPL 8.05.2018, 07:12:12


--------------------
Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
Go to the top of the page
+Quote Post
winiar789
post 8.05.2018, 08:07:10
Post #3





Grupa: Zarejestrowani
Postów: 130
Pomógł: 0
Dołączył: 15.11.2011

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


Jej - jako jedyny odpisałeś smile.gif

Tak naprawdę sobie poradziłem już ... Na początku odwołanie do metody doAuth i pobranie odpowiedniego Header
Hash i Data.

Następnie zapytanie o kolejną metodę podając Hash i Data ze wcześniejszego zapytania.

Użyłem następujących funkcji nuSoap

  1.  
  2. getHeader();
  3. setHeaders();
  4.  
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 - 00:19