Php Soap нет-ошибка отправки параметра тела wsdl

#xml #laravel #web-services #soap

#xml #ларавель #веб-сервисы #мыло

Вопрос:

У меня возникли проблемы с моим запросом на мыло none-wsdl. Я могу выполнять операции без параметров тела, но я не могу выполнять операции с параметрами в теле.

XML-запрос:

 lt;soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"gt;  lt;soap12:Headergt;  lt;AuthHeader xmlns="http://tempuri.org/"gt;  lt;UserNamegt;usernamelt;/UserNamegt;  lt;Passwordgt;passwordlt;/Passwordgt;  lt;/AuthHeadergt;  lt;/soap12:Headergt;  lt;soap12:Bodygt;  lt;GetPaymentTypes xmlns="http://tempuri.org/" /gt;  lt;/soap12:Bodygt; lt;/soap12:Envelopegt;  

Мой запрос на выполнение мыла:

 public function GetPaymentTypes($username,$password){  $client = new SoapClient(null, array('location' =gt; $this-gt;location, 'uri'=gt; $this-gt;uri,'trace' =gt; 1,'soap_version' =gt; SOAP_1_2));  $auth = array();  $auth['UserName'] = new SOAPVar($username, XSD_STRING, null, null, null, $this-gt;uri);  $auth['Password'] = new SOAPVar($password, XSD_STRING, null, null, null, $this-gt;uri);  $headerBody = new SOAPVar($auth, SOAP_ENC_OBJECT);  $header = new SOAPHeader($this-gt;uri, 'AuthHeader', $headerBody);  $client-gt;__setSOAPHeaders(array($header));  $data = $client-gt;__soapCall('GetPaymentTypes',array());  $filter = $data-gt;diffgram;  return self::filter_array($filter,false); }  

Вышеуказанная функция работает нормально, но я не смог создать функцию приведенного ниже XML — запроса.

XML-запрос

 lt;?xml version="1.0" encoding="utf-8"?gt; lt;soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"gt;  lt;soap12:Headergt;  lt;AuthHeader xmlns="http://tempuri.org/"gt;  lt;UserNamegt;usernamelt;/UserNamegt;  lt;Passwordgt;passwordlt;/Passwordgt;  lt;/AuthHeadergt;  lt;/soap12:Headergt;  lt;soap12:Bodygt;  lt;GetRestaurantStatus xmlns="http://tempuri.org/"gt;  lt;catalogNamegt;catalog_namelt;/catalogNamegt;  lt;categoryNamegt;category_namelt;/categoryNamegt;  lt;/GetRestaurantStatusgt;  lt;/soap12:Bodygt; lt;/soap12:Envelopegt;  

неработающая функция

 public function GetRestaurantStatusCurl($username,$password,$catalogName,$categoryName){  $client = new SoapClient(null, array('location' =gt; $this-gt;location, 'uri'=gt; $this-gt;uri,'trace' =gt; 1,'soap_version' =gt; SOAP_1_2));  $auth = array();  $auth['UserName'] = new SOAPVar($username, XSD_STRING, null, null, null, $this-gt;uri);  $auth['Password'] = new SOAPVar($password, XSD_STRING, null, null, null, $this-gt;uri);  $headerBody = new SOAPVar($auth, SOAP_ENC_OBJECT);  $header = new SOAPHeader($this-gt;uri, 'AuthHeader', $headerBody);  $client-gt;__setSOAPHeaders(array($header));  $params[] = new SOAPVar($catalogName,XSD_STRING,null,null,"catalogName",null);  $params[] = new SOAPVar($categoryName,XSD_STRING,null,null,"categoryName",null);   $bodyParams = array(  new SoapParam($catalogName, 'catalogName'),  new SoapParam($categoryName, 'categoryName')  );  $data = $client-gt;__soapCall('GetRestaurantStatus', $bodyParams);  $filter = $data;  return self::filter_array($filter,false);  }  

Я не знаю, как добавить параметры в тело. Я предполагаю, что проблема в этой причине. Я был бы очень рад, если бы вы могли помочь с этим.