[PHP/SOAP] eWUS - info o pacjencie |
[PHP/SOAP] eWUS - info o pacjencie |
2.01.2013, 13:48:58
Post
#1
|
|
Grupa: Zarejestrowani Postów: 251 Pomógł: 2 Dołączył: 24.08.2005 Ostrzeżenie: (0%) |
Witam,
Probuje przy wykorzystaniu: Cytat Definicję testowej usługi autoryzacji można znaleźć pod adresem: https://ewus.nfz.gov.pl/ws-broker-server-ew...vices/Auth?wsdl Definicję testowej usługi ServiceBroker można znaleźć pod adresem: https://ewus.nfz.gov.pl/ws-broker-server-ew...viceBroker?wsdl pobrac info o pacjencie. Analizujac xml'e: Kod <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:auth="http://xml.kamsoft.pl/ws/kaas/login_types"> <soapenv:Header/> <soapenv:Body> <auth:login> <auth:credentials> <auth:item> <auth:name>domain</auth:name> <auth:value><auth:stringValue>01</auth:stringValue></auth:value> </auth:item> <auth:item> <auth:name>type</auth:name> <auth:value><auth:stringValue>SWD</auth:stringValue></auth:value> </auth:item> <auth:item> <auth:name>idntSwd</auth:name> <auth:value><auth:stringValue>123456789</auth:stringValue></auth:value> </auth:item> <auth:item> <auth:name>login</auth:name> <auth:value><auth:stringValue>TEST</auth:stringValue></auth:value> </auth:item> </auth:credentials> <auth:password>qwerty!@#</auth:password> </auth:login> </soapenv:Body> </soapenv:Envelope> Kod <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header> <ns1:session id="6F3FE3EA6BE54C5630F4F08E6FD0B803" xmlns:ns1="http://xml.kamsoft.pl/ws/common"/> <ns1:authToken id="BSbgyPBVy9Ww0B6al0DFuf" xmlns:ns1="http://xml.kamsoft.pl/ws/common"/> </soapenv:Header> <soapenv:Body> <ns1:loginReturn xmlns:ns1="http://xml.kamsoft.pl/ws/kaas/login_types">3</ns1:loginReturn> </soapenv:Body> </soapenv:Envelope> udalo mi sie zalogowac za pomoca stworzonego skrypyu: Kod <? $client=new SoapClient('https://ewus.nfz.gov.pl/ws-broker-server-ewus-auth-test/services/Auth?wsdl'); $responce=$client->login(['credentials'=>[['name'=>'domain','value'=>['stringValue'=>'01']],['name'=>'type','value'=>['stringValue'=>'SWD']],['name'=>'idntSwd','value'=>['stringValue'=>'123456789']],['name'=>'login','value'=>['stringValue'=>'TEST']]],'password'=>'qwerty!@#']); print($responce); ?> Pytanie co dalej .......jak odebrac stringi session i authToken w naglowka odpowiedzi? Sa one potrzebne w kolejnym zapytaniu zwracajacym dane pacjenta. |
|
|
3.01.2013, 15:23:19
Post
#2
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 1 Dołączył: 1.04.2012 Skąd: Świętokrzyskie Ostrzeżenie: (0%) |
Nie zauważyłem, że założyłeś nowy wątek...
rozwiązanie tkwi chyba w samej definicji __soapCall; zgodnie z opisem z php.net: Kod public mixed SoapClient::__soapCall ( string $function_name , array $arguments [, array $options [, mixed $input_headers [, array &$output_headers ]]] ) output_headers - If supplied, this array will be filled with the headers from the SOAP response tylko jak to zapisać? gdy dla kodu:
działa:
nie działa:
zgłaszając błąd: Kod Uncaught SoapFault exception: [Client] SOAP-ERROR: Encoding: object has no 'credentials' property in... no i rozwiązanie:
dalej juz dasz radę? ja nie daję... jak wyciągnąć te dwie wartości? var_dump: Kod HEADER: array(2) { ["session"]=> object(stdClass)#2 (1) { ["id"]=> string(32) "96208C312BB6A5D38C11D7293B4D4F9B" } ["authToken"]=> object(stdClass)#3 (1) { ["id"]=> string(22) "BSoFd_Jmu9iR6wtvx14Dvf" } }
Ten post edytował eMCeH 3.01.2013, 18:20:42 |
|
|
5.01.2013, 15:55:07
Post
#3
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 5.01.2013 Ostrzeżenie: (0%) |
A rozgryzł już ktoś jak po zalogowaniu sprawdzić ubezpieczenie pacjenta?
Logowanie już opanowane:
Ten post edytował marekpulawy 5.01.2013, 18:35:49 |
|
|
5.01.2013, 18:50:39
Post
#4
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 1 Dołączył: 1.04.2012 Skąd: Świętokrzyskie Ostrzeżenie: (0%) |
logowanie mamy ale jak się wylogować?
status_cwu sprawdzasz na innym adresie www |
|
|
5.01.2013, 19:06:31
Post
#5
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 5.01.2013 Ostrzeżenie: (0%) |
|
|
|
5.01.2013, 19:11:18
Post
#6
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 1 Dołączył: 1.04.2012 Skąd: Świętokrzyskie Ostrzeżenie: (0%) |
próbowałem:
ale wywala błędy status_cwu sprawdzasz na innym adresie www: Kod https://ewus.nfz.gov.pl/ws-broker-server-ewus-auth-test/services/ServiceBroker?wsdl cały czas nad tym siedzę (z przerwami na sprawdzenia, rozliczenia itp... Ten post edytował eMCeH 5.01.2013, 19:11:56 |
|
|
6.01.2013, 19:35:08
Post
#7
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 2.01.2008 Ostrzeżenie: (0%) |
cześć
Też próbuję zmierzyć się z tym problemem i mam niestety cały czas problem z logowaniem. używam: $client=new SoapClient('https://ewus.nfz.gov.pl/ws-broker-server-ewus-auth-test/services/Auth?wsdl'); $user = 'TEST1'; $pass = 'qwerty!@#'; $parametry = ['credentials'=>[['name'=>'domain','value'=>['stringValue'=>'15']],['name'=>'login','value'=>['stringValue'=>$user]]],'password'=>$pass]; i wyrzuca mi błąd: Parse error: syntax error, unexpected '[' in C:\AppServ\www\victoria2\ewus.php on line 28 czyli jest to błąd w linii $parametry jak używałam wcześniejszych wywołań z forum to za każym razem mam błąd odnośnie tego nawiasu '[' czy używa ktoś php w wersji 5.2.6? może powinnam podnieść wersję? będę wdzięczna za jakiekolwiek sugestie |
|
|
6.01.2013, 20:22:10
Post
#8
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 5.01.2013 Ostrzeżenie: (0%) |
Wg mnie to jest wina starej wersji PHP. U mnie na wersji 5.4.3 nie wyrzuca tego błędu.
Na drugim serwerze mam 5.2.17 i mam taki sam błąd jak u Ciebie. |
|
|
6.01.2013, 20:47:07
Post
#9
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 1 Dołączył: 1.04.2012 Skąd: Świętokrzyskie Ostrzeżenie: (0%) |
kod logowania, który skleił ostatecznie marekpulawy jest 100% działający
logout poddałem się... próbuję dopisać do tamtego kodu
Kod DOSTĘPNE FUNKCJE:array ( 0 => 'ServiceResponse executeService(ServiceRequest $request)', ) ale wyrzuca błąd: Kod Uncaught SoapFault exception: [Client] SOAP-ERROR: Encoding: object has no 'location'
Ten post edytował eMCeH 6.01.2013, 21:09:22 |
|
|
6.01.2013, 21:12:06
Post
#10
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 5.01.2013 Ostrzeżenie: (0%) |
a co masz tym razem w zmiennej $parametry?
bo w zmiennej $header masz session i authToken? Ten post edytował marekpulawy 6.01.2013, 21:12:32 |
|
|
6.01.2013, 21:18:20
Post
#11
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 6.01.2013 Ostrzeżenie: (0%) |
Hym, wiem niewiele, ale wydaje mi się, że po zalogowaniu najpierw trzeba ustawić nagłówki z session id i authToken id
coś jak $auth = ['session'=>['id'=>$array['session']['id']], 'authToken'=>['id'=>$array['authToken']['id']]]; $hd = new SoapHeader("http://xml.kamsoft.pl/ws/common", "com", $auth, false); $return = $client->__setSoapHeaders($hd); tylko, że to zwraca FALSE a nie TRUE - czyli coś jest nie tak |
|
|
6.01.2013, 21:18:30
Post
#12
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 1 Dołączył: 1.04.2012 Skąd: Świętokrzyskie Ostrzeżenie: (0%) |
te same parametry co w przypadku logowania
błądzę po omacku na jednych forach (np. C#) mówią, iż jest bład w pliku definicji wsdl na innych iż błąd polega na tym, iż są dwie namespace... Niestety w xml raczkuję - to jest głęboka woda dla mnie i próbuję się nie utopić... nagłówek przecież wysyłam też przy wywołaniu - parametr $header Ten post edytował eMCeH 6.01.2013, 21:24:25 |
|
|
6.01.2013, 21:32:03
Post
#13
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 6.01.2013 Ostrzeżenie: (0%) |
Teraz zwraca TRUE, chyba;)
$hd = [ new SoapHeader("http://xml.kamsoft.pl/ws/common", "com", ['session'=>['id'=>$array['session']['id']]], true), new SoapHeader("http://xml.kamsoft.pl/ws/common", "com", ['authToken'=>['id'=>$array['authToken']['id']]], true), ]; $return = $client->__setSoapHeaders($hd); if ($return == TRUE) { echo "<br>TRUE"; } i to działa;) $functions = $client->__getFunctions(); var_export($functions); |
|
|
6.01.2013, 21:42:16
Post
#14
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 1 Dołączył: 1.04.2012 Skąd: Świętokrzyskie Ostrzeżenie: (0%) |
$client =
Auth czy ServiceBroker? Ten post edytował eMCeH 6.01.2013, 21:42:35 |
|
|
6.01.2013, 21:52:27
Post
#15
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 6.01.2013 Ostrzeżenie: (0%) |
Auth
Nie znam się, ale wydaje mi się, że teraz $response = $client->__doRequest( "checkCWU", "https://ewus.nfz.gov.pl/ws-broker-server-ewus-auth-test/services/ServiceBroker?wsdl", "executeService", "1.0"); tylko, że to nie działa;) var_export($response); daje takie coś 'http://www.w3.org/2005/08/addressing/soap/faultcom.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character \'c\' (code 99) in prolog; expected \'<\' at [row,col {unknown-source}]: [1,1] |
|
|
6.01.2013, 22:11:48
Post
#16
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 1 Dołączył: 1.04.2012 Skąd: Świętokrzyskie Ostrzeżenie: (0%) |
w zapytaniu checkCWU musisz przesłać pesel oraz równolegle nazwę i wersję swojego systemu
|
|
|
6.01.2013, 22:31:31
Post
#17
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 6.01.2013 Ostrzeżenie: (0%) |
Może po
$client->__setSoapHeaders($hd); trzeba: $clientBroker = new SoapClient('https://ewus.nfz.gov.pl/ws-broker-server-ewus/services/ServiceBroker?wsdl'); $response = $clientBroker->__soapCall('executeService', ['status_cwu_pyt'=>['numer_pesel'=>49091480757],['system_swiad'=>['nazwa'=>"eWUS", 'wersja'=>"2.0"]]]); Wprawdzie wywala mi to z błędem: Fatal error: Uncaught SoapFault exception: [Client] SOAP-ERROR: Encoding: object has no 'location' property in index.php:49 Stack trace: #0 index.php(49): SoapClient->__soapCall('executeService', Array) #1 {main} thrown in index.php on line 49 ale wydaje mi się że nie podałem wszystkich parametrów jako drugi argument |
|
|
6.01.2013, 22:38:58
Post
#18
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 5.01.2013 Ostrzeżenie: (0%) |
|
|
|
6.01.2013, 23:09:22
Post
#19
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 1 Dołączył: 1.04.2012 Skąd: Świętokrzyskie Ostrzeżenie: (0%) |
|
|
|
6.01.2013, 23:26:02
Post
#20
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 6.01.2013 Ostrzeżenie: (0%) |
Tamte błędy znikły - pojawia się: Fatal error: Uncaught SoapFault exception: [soapenv:Server] unknown in index.php |
|
|
Wersja Lo-Fi | Aktualny czas: 20.04.2024 - 02:21 |