ini_set('soap.wsdl_cache_enabled', 0);
// Создание клиента
$client = new SoapClient (
'http://url/soap.xml',
array(
'trace'=> 1,
'exceptions' => 0,
'encoding' => 'UTF-8',
'login' => 'lxlxlxlx',
'password' => 'xxx',
'cache_wsdl' => WSDL_CACHE_NONE,
'soap_version' => SOAP_1_2,
)
);
// Загружаем данные
$client->__soapCall("Load",
array(
"ProjectCode" => null, //$GLOBALS["ProjectCode_SOAP"],
"SiteCode" => "000008",
"ProposalType" => null,
"ClientName" => "Name",
"Email" => "email@email.com",
...
...
Но echo $client->__getLastRequest(); возвращает вот что (показано только начало):
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://url/crm">
<env:Body>
<ns1:Load/>
<param1>000008</param1>
<param2/>
<param3>Name</param3>
<param4>email@email.com</param4>
Во-первых, нормально ли, что , а не ?
Во-вторых, неважно, ProjectCode равен null, или иному, в lastrequest он никогда не появится. Почему? Что я делаю не так? Подозреваю, что именно поэтому получаю ошибку "soap:Sender Неизвестная ошибка. Недостаточно параметров операции по причине: Недостаточно параметров операции".
В WSDL ProjectCode есть:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xs1="http://v8.1c.ru/8.1/data/core" xmlns:xs2="http://url/crm" targetNamespace="http://url/crm" elementFormDefault="qualified">
<xs:import namespace="http://v8.1c.ru/8.1/data/core"/>
<xs:element name="Load">
<xs:complexType>
<xs:sequence>
<xs:element name="ProjectCode" type="xs:string" nillable="true"/>
<xs:element name="SiteCode" type="xs:string"/>
<xs:element name="ProposalType" type="xs:string"/>
<xs:element name="ClientName" type="xs:string"/>
<xs:element name="Email" type="xs:string" nillable="true"/>
<xs:element name="Mobile" type="xs:string"/>
<xs:element name="Message" type="xs:string" nillable="true"/>
<xs:element name="AppCode" type="xs:string" nillable="true"/>
<xs:element name="SitePrice" type="xs:double" nillable="true"/>
<xs:element name="Urls" type="xs:string" nillable="true"/>
<xs:element name="Subscribe" type="xs:boolean" nillable="true"/>
<xs:element name="RSource" type="xs:string" nillable="true"/>
<xs:element name="ManagerID" type="xs:string" nillable="true"/>
<xs:element name="SessionID" type="xs:string" nillable="true"/>
<xs:element name="Agent" type="xs:string" nillable="true"/>
<xs:element name="Agent_email" type="xs:string" nillable="true"/>
</xs:sequence>
</xs:complexType>
</xs:element>