Как можно отправить xml данные и получить ответ с помощью SOAP+PHP?

farrukh77

Новичок
Здравствуйте. С SOAP не работал, я чайник ((((. Помогите составить запрос.
Мне надо отправить xml Отправить запрос
<S:Envelope>
<SOAP-ENV:Header/>
<S:Body>
<ns2:updateDataResponse>
<token>6cc1447c386b4a65b3b980eaf07f7f37f680ec4496b04f1ca2c51</token>
<tabcode>12345</tabcode>
<tabname> text</tabname>
</ns2:updateDataResponse>
</S:Body>
</S:Envelope>


<S:Envelope>
<SOAP-ENV:Header/>
<S:Body>
<ns2:updateDataResponse>
<return
><resultCode>0</resultCode>
<resultMessage>OK</resultMessage>
<serviceId>185</serviceId>
<timeStamp>1458118724461</timeStamp>
<vername>2.2</vername>
</return>
</ns2:updateDataResponse>
</S:Body>
</S:Envelope>

?>
Возвращает мне примерно такие параметры:

мне надо написать это в php, нашёл пример
<?php
/*сам xml который исправно отправляется с помощью того-же SOAPUI */
$query="<code lang="xml">
<S:Envelope>
<SOAP-ENV:Header/>
<S:Body>
<ns2:updateDataResponse>
<token>6cc1447c386b4a65b3b980eaf07f7f37f680ec4496b04f1ca2c51</token>
<tabcode>kod</tabcode>
<tabname>text</tabname>
</ns2:updateDataResponse>
</S:Body>
</S:Envelope>
</code>";
/*создаю клиента*/
$client = new SoapClient ("адрес soap?wsdl", array('soap_version' => SOAP_1_2));
/*Пытаюсь отправить запрос*/
$result = $client->getTicket($query);
var_dump($result);

?>


не отправляется в браузере пишет ошибку 500 но подключения есть проверял!
как мне правильно написать php как правильно передаю параметры и получить ответ. Подскажите, пожалуйста.
Огромное спасибо !
 

WMix

герр M:)ller
Партнер клуба
ты не должен писать SOAP, его пишет SoapClient. ты только вызываешь методы
$client->getTicket(сюда чтото другое);
 

farrukh77

Новичок
как правильно написать php код поможете я особо не понимаю soap
 

AmdY

Пью пиво
Команда форума
А откуда ты взял этот метода getTicket?
У тебя скорее всего там метод
$client->updateDataResponse([
'token' => 'dasdasdas'
.....
]);
 

farrukh77

Новичок
$request = new stdClass();
$request -> token = '04e1f1aea341447b98cf70c1b5ccdf16';
$request -> tabcode = 'sasasas';
$request -> tabname = 'fdsdsdsd';

$client = new SoapClient ("адрес soap?wsdl");
$response = $client->getData($request);
print_r($response);

заработало!
ответ
stdClass Object ( [return] => stdClass Object ( [resultCode] =>999 [resultMessage] => текст. [serviceId] => 551 [timeStamp] => 1470891987152 ) )

как этот ответ мне получить на переменные

делаю

$xml = new SimpleXMLElement($response);
echo $xml->resultCode;

не принимает ответ помогите пожалуйста ответ в формате xml
 

farrukh77

Новичок
$request = new stdClass();
$request -> token = '04e1f1aea341447b98cf70c1b5ccdf16';
$request -> tabcode = 'sasasas';
$request -> tabname = 'fdsdsdsd';

$client = new SoapClient ("адрес soap?wsdl");
$response = $client->getData($request);

$std = new stdClass($response);
echo $std->resultCode;
echo "<br/>";
echo $std->resultMessage;
echo "<br/>";
echo $std->timestamp;
echo "<br/>";
echo $std->serviceId;



это я правильно принимаю ответ на переменный ? но он не выдает на экран !
 

AmdY

Пью пиво
Команда форума
У тебя ответ $response - это объект, а не xml, работай с ним как с объектом
echo $response->return->resultMessage;
 
Сверху