| 39 | | Usługa jest zabezpieczona rozszerzeniem WSSecurity protokołu SOAP i wymaga |
| 40 | | podania w nagłówkach wywołania XML nazwy użytkownika i hasła. |
| | 39 | |
| | 40 | Dodatkowo od wersji systemu 3.3 autentykacja nie wymaga nadpisania klienta Soap. Wystarczy do url z adresem serwisu dodać parametry GET w postaci |
| | 41 | {{{ |
| | 42 | #!php |
| | 43 | <?php |
| | 44 | // a1 - login, |
| | 45 | // a2 - hasło, |
| | 46 | // a3 - symbol jednostki |
| | 47 | /* |
| | 48 | $ops = array( |
| | 49 | 'location' => 'http://{host}:{port}eDokumentyApi.php?a1='.EDOK_API_LOGIN.'&a2='.md5(md5(EDOK_API_PASSWORD).'_SOAP_eDok_api').'&a3='.DEFAULT_ENTITY_SYMBOL.'', |
| | 50 | "uri" => "eDokumentyAPI", |
| | 51 | 'encoding'=>'UTF-8' |
| | 52 | ); |
| | 53 | ?> |
| | 54 | }}} |
| | 55 | |
| | 56 | Przykład wywołania serwisu oraz funkcji dodającej kontrahenta: |
| | 57 | |
| | 58 | {{{ |
| | 59 | #!php |
| | 60 | |
| | 61 | // Plik MyService.php umieszczony w apps/edokumenty. |
| | 62 | // MyService.php |
| | 63 | <?php |
| | 64 | // stałe są w confing.inc i są to dane potrzebne do autentykacji usługi |
| | 65 | require_once('./../../framework/lib/util/Translator/Translator.inc'); |
| | 66 | require_once('./config.inc'); |
| | 67 | |
| | 68 | // klient SOAP systemu eDokumenty wysyłający nagłówki WSSecurity zmienić na |
| | 69 | // odpowiednią ścieżkę w zależności od lokalizacji pliku MyService.php |
| | 70 | require_once('./classes/eDokumentyApi/EDokApiClient.inc'); |
| | 71 | |
| | 72 | // wartość {host}:{port} zmienić na odpowiednią dla serwera |
| | 73 | $ops = array( |
| | 74 | 'location' => 'http://{host}:{port}eDokumentyApi.php', |
| | 75 | "uri" => "eDokumentyAPI", |
| | 76 | 'encoding'=>'UTF-8' |
| | 77 | ); |
| | 78 | |
| | 79 | |
| | 80 | // Dodatkowo od wersji 3.3 autentykacja nie wymaga nadpisania klienta Soap. Wystarczy do url z adresem serwisu dodać parametry GET w postaci |
| | 81 | // a1 - login, |
| | 82 | // a2 - hasło, |
| | 83 | // a3 - symbol jednostki |
| | 84 | /* |
| | 85 | $ops = array( |
| | 86 | 'location' => 'http://{host}:{port}eDokumentyApi.php?a1='.EDOK_API_LOGIN.'&a2='.md5(md5(EDOK_API_PASSWORD).'_SOAP_eDok_api').'&a3='.DEFAULT_ENTITY_SYMBOL.'', |
| | 87 | "uri" => "eDokumentyAPI", |
| | 88 | 'encoding'=>'UTF-8' |
| | 89 | ); |
| | 90 | |
| | 91 | // bezpośrednie wywołanie klienta Soap |
| | 92 | $client = new SoapClient(NULL, $ops); |
| | 93 | */ |
| | 94 | $client = new EDokApiClient(null, $ops); |
| | 95 | $client->setUser(EDOK_API_LOGIN); // ten sam co w config.inc |
| | 96 | $client->setPass(md5(EDOK_API_PASSWORD)); // to samo co w config.inc |
| | 97 | |
| | 98 | $header = new SoapHeader('eDokumentyAPI', 'entity_symbol', DEFAULT_ENTITY_SYMBOL); |
| | 99 | $client->__setSoapHeaders($header); |
| | 100 | |
| | 101 | // Tworzy kontakt |
| | 102 | $contid = NULL; |
| | 103 | |
| | 104 | try { |
| | 105 | $data = array( |
| | 106 | 'name_1' => 'SOAP TEST'.date('d H:m:s'), |
| | 107 | 'name_2' => 'SOAPTEST', |
| | 108 | 'nip___' => 1111111111, |
| | 109 | 'street' => 'Główna', |
| | 110 | 'symbol' => 'FGH99' |
| | 111 | ); |
| | 112 | $contid = $client->createContact($data); |
| | 113 | var_dump($contid); |
| | 114 | |
| | 115 | } catch(SoapFault $fault) { |
| | 116 | |
| | 117 | var_dump($fault); |
| | 118 | |
| | 119 | if ($fault->faultcode < 100) { |
| | 120 | trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR); |
| | 121 | } |
| | 122 | } |
| | 123 | |
| | 124 | ?> |
| | 125 | }}} |
| | 126 | |
| | 127 | '''WAŻNE Hasło powinno być zakodowane przy użyciu funkcji md5'''. |