Witam,
Przygotowałem sobie połączenie do API CEiDG i próbuję odebrać od nich dane.
Wszystko skonfigurowałem jak w opisie - link
Mój kod:
try { $url = 'https://datastoretest.ceidg.gov.pl/CEIDG.DataStore/services/DataStoreProvider.svc?wsdl'; $api_key = 'tajny klucz który otrzymałem po zalogowaniu'; $nip = '7121848951 '; $client = new SoapClient($url, array("trace" => 1, "exception" => 0)); $xml = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/" xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays"><soapenv:Header/><soapenv:Body><tem:GetMigrationDataExtendedInfo><tem:AuthToken>'.$api_key.'</tem:AuthToken><tem:NIP><arr:string>'.$nip.'</arr:string></tem:NIP></tem:GetMigrationDataExtendedInfo></soapenv:Body></soapenv:Envelope>'; $soapBody = new \SoapVar($xml, \XSD_ANYXML); $result = $client->__soapCall('GetMigrationDataExtendedInfo', array($soapBody)); var_dump($result, $client->__getFunctions(), $soapBody); } catch (SoapFault $exception) { echo $exception->getMessage(); }
W rezultacie dostaje taki komunikat:
Serwer nie mógł przetworzyć żądania z powodu błędu wewnętrznego. Aby uzyskać więcej informacji dotyczących tego błędu, włącz parametr IncludeExceptionDetailInFaults (w atrybucie ServiceBehaviorAttribute lub zachowaniu konfiguracji ) na serwerze w celu odsyłania informacji o wyjątkach do klienta albo włącz śledzenie, tak jak opisano w dokumentacji zestawu Microsoft .NET Framework SDK i przejrzyj dzienniki śledzenia serwera.
Samo połączenie działa. Mogę wyświetlić listę dostępnych funkcji w API.
Nie wiem skąd taki błąd.
Dodam ze skrypt odpalam na WAMPP'ie.