SoapClient dont pass parametrs

Moric

Новичок
День добрый.
Пытаюсь использовать стандартный SoapClient, но не могу разобраться как передавать с запросом параметры:

PHP:
$client = new SoapClient("some_url_to_wsdl");
$out = $client->__soapCall('getUsersInfo',
	array('getUsersInfo' => array('userId'=>array("some_user_id")))
);
$this->out($client->__getLastRequest());
$this->out($client->__getLastResponse());
Должен получится запрос
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:app="app_url">
<soapenv:Header/>
<soapenv:Body>
<app:getUsersInfo>
<userId>test@test-company</userId>
</app:getUsersInfo>
</soapenv:Body>
</soapenv:Envelope>
Но получается:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="app_url">
<SOAP-ENV:Body>
<ns1:getUsersInfo/>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Перепробовал все возможные варианты передачи параметров в запрос:
PHP:
array('getUsersInfo' => array('userId'=>array("some_user_id")))
array('getUsersInfo' => array('userId'=>"some_user_id"))
array('userId'=>"some_user_id")
Реакции никакой.

Как передать в SoapClient параметры?
 

Moric

Новичок
Нашёл ответ.
Нужно было посмотреть на вывод функций __getFunctions() и __getTypes():
__getFunctions():
...
getUsersInfoResponse getUsersInfo(getUsersInfo $parameters)
...
Где жирным выделен тип передаваемых параметров
__getTypes():
...
string(64) "struct getUsersInfo {
string applicationId;
string userUids;
}"
...
В итоге вызов должен быть такой:
PHP:
$out = $client->__soapCall('getUsersInfo',
    array('getUsersInfo' => array('applicationId'=>'some_app_uuid','userUids'=>"some_user_id"))
);
А бумажная документация по сервису устарела :(

Вопрос закрыт
 
Сверху