Wysyłanie danych wejściowych XML do WSDL za pomocą SoapClient
Mam ten WSDL:https://secure.softwarekey.com/solo/webservices/XmlCustomerService.asmx?WSDL
Próbuję użyć SoapClient do wysłania żądania doCustomerSearch metoda.
Kod, którego używam, wygląda następująco:
$url = 'https://secure.softwarekey.com/solo/webservices/XmlCustomerService.asmx?WSDL';
$client = new SoapClient($url);
$CustomerSearch = array(
'AuthorID' => $authorID,
'UserID' => $userID,
'UserPassword' => $userPassword,
'Email' => $customerEmail
);
$xml = array('CustomerSearch' => $CustomerSearch);
$result = $client->CustomerSearch(array('xml' => $xml));
Po uruchomieniu kodu otrzymuję następujący wyjątek PHP:
Fatal error: Uncaught SoapFault exception: [Client] SOAP-ERROR: Encoding: object has no 'any' property
Wypróbowałem to także dla XML:
$xml = "
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<CustomerSearch>
<AuthorID>$authorID</AuthorID>
<UserID>$userID</UserID>
<UserPassword>$userPassword</UserPassword>
<Email>$customerEmail</Email>
</CustomerSearch>
";
Co daje mi następujące wyniki (z print_r):
object(stdClass)#4 (1) { ["CustomerSearchResult"]=> object(stdClass)#5 (1) { ["any"]=> string(108) "-2Invalid Xml Document" } }
Thedokumentacja mówi, że wejściowy XML powinien wyglądać mniej więcej tak:
<CustomerSearch>
<AuthorID></AuthorID>
<UserID></UserID>
<UserPassword></UserPassword>
<SearchField></SearchField>
<SearchField></SearchField>
<!-- ...additional SearchField elements -->
</CustomerSearch>
Jestem całkiem nowy w Soap i próbowałem bawić się (przekazując surowy, wpisany XML) i nie wydaje mi się, żeby to działało. Każdy wgląd w to, co robię źle, zostanie bardzo doceniony.