Задать вопрос
@wreofcccp

Почему не передается значение в параметр __soapCall()?

Возникает следующая ошибка:
Fatal error: Uncaught SoapFault exception: [Client] SOAP-ERROR: Encoding: object has no 'documentType' property

Код php:
$location = 'https://...'; 

$client = new SoapClient($location);

$RequestParameters = new SoapParam(array("EdiParameter" =>
		   array(
			  "name"  => "LastWebID",
			  "value" => "0",
		   )), "EdiParameter");
		   
$RequestIdentify = new SoapParam(array(
		"npo"  	 => $npo,
        "userName" => $userName,
        "password" => $password), "identify");	 

$Status_Order = "NEW_ORDER";

$params = array("identify" 	 => $RequestIdentify, 
                "documentType" => $Status_Order, 
                "parameters"   => $RequestParameters);

$response = $client->__soapCall('DRS', $params);

var_dump($response);


Схема:
...
<s:element name="DRS">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="identify" type="tns:Identify"/>
<s:element minOccurs="1" maxOccurs="1" name="documentType" type="tns:EdiType"/>
<s:element minOccurs="0" maxOccurs="1" name="parameters" type="tns:ArrayOfEdiParameter"/>
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="Identify">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="Npo" type="tns:Npo"/>
<s:element minOccurs="0" maxOccurs="1" name="UserName" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="Password" type="s:string"/>
</s:sequence>
</s:complexType>
<s:simpleType name="Npo">
<s:restriction base="s:string">
<s:enumeration value="LCNP"/>
</s:restriction>
</s:simpleType>
<s:simpleType name="EdiType">
<s:restriction base="s:string">
<s:enumeration value="NEW_ORDER"/>
<s:enumeration value="ORDER_REPLY"/>
</s:restriction>
</s:simpleType>
...


Не могу понять, передаю строку, подскажите пожалуйста в чем проблема.
Заранее спасибо!
  • Вопрос задан
  • 273 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Trolzen
Наверное, стоковое значение "NEW_ORDER" тоже надо обернуть в `new SoapParam()`.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы