Здравствуйте. С SOAP не работал. Почитал теорию, примерно понял, что к чему. Помогите составить запрос.
wsdl:
<xsd:element name="ZfmCrmLoyMshInf">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="IsCrd" type="tns:ZstCrdCrmLoyMshInfIn" minOccurs="0"/>
<xsd:element name="IsStore" type="tns:ZstStore" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ZfmCrmLoyMshInfResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="EsCrd" type="tns:ZstCrdCrmLoyMshInfOut"/>
<xsd:element name="EsDynAttr" type="tns:ZstDynAttr"/>
<xsd:element name="EsLp" type="tns:ZstLp"/>
<xsd:element name="EsMemb" type="tns:ZstMemb"/>
<xsd:element name="EsMsh" type="tns:ZstMshCrmLoyMshInfOut"/>
<xsd:element name="EtCampList" type="tns:ZttChar24"/>
<xsd:element name="EtErrorList" type="tns:ZttErrorList"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Подскажите "с самого начала", как составить запрос на wsdl и после получить ответ?
P.S. соединение создаю, оно работает.
UPD*!
Спасибо большое! Код работает, ноя не получаю ответа, из-за своей тупости, видимо. Нашел нужную мне функцию.
Подскажите, как понять, какие параметры она принимает, чтобы ей их передать?
UPD*2
<xsd:element name="ZfmCrmLoyMshInf">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="IsCrd" type="tns:ZstCrdCrmLoyMshInfIn" minOccurs="0"/>
<xsd:element name="IsStore" type="tns:ZstStore" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ZfmCrmLoyMshInfResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="EsCrd" type="tns:ZstCrdCrmLoyMshInfOut"/>
<xsd:element name="EsDynAttr" type="tns:ZstDynAttr"/>
<xsd:element name="EsLp" type="tns:ZstLp"/>
<xsd:element name="EsMemb" type="tns:ZstMemb"/>
<xsd:element name="EsMsh" type="tns:ZstMshCrmLoyMshInfOut"/>
<xsd:element name="EtCampList" type="tns:ZttChar24"/>
<xsd:element name="EtErrorList" type="tns:ZttErrorList"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<wsdl:operation name="ZfmCrmLoyMshInf">
<wsdl:input message="tns:ZfmCrmLoyMshInf"/>
<wsdl:output message="tns:ZfmCrmLoyMshInfResponse"/>
</wsdl:operation>
<wsdl:message name="ZfmCrmLoyMshInf">
<wsdl:part name="parameters" element="tns:ZfmCrmLoyMshInf"/>
</wsdl:message>
<wsdl:message name="ZfmCrmLoyMshInfResponse">
<wsdl:part name="parameter" element="tns:ZfmCrmLoyMshInfResponse"/>
</wsdl:message>
UPD*3
Вот такой запрос в SOAPUI работает:
Т.е. я передаю 1120000000001530, 0003
<soapenv:Body>
<urn:ZfmCrmLoyMshInf>
<!--Optional:-->
<IsCrd>
<ExtId>1120000000001530</ExtId>
</IsCrd>
<!--Optional:-->
<IsStore>
<Id>0003</Id>
</IsStore>
</urn:ZfmCrmLoyMshInf>
</soapenv:Body>
</soapenv:Envelope>
Возвращает мне:
<soap-env:Header/>
<soap-env:Body>
<n0:ZfmCrmLoyMshInfResponse xmlns:n0="urn:sap-com:soap:functions:mc-style">
<EsCrd>
<ExtId>1120000000001530</ExtId>
<Status>Активно</Status>
<Estat>E0003</Estat>
<CardValidFrom>2013-11-07</CardValidFrom>
<CardValidTo>9999-12-31</CardValidTo>
</EsCrd>
<EsDynAttr>
<Zsumofpurch>0</Zsumofpurch>
</EsDynAttr>
<EsLp>
<Id>Zaratustra</Id>
<Name>Программа</Name>
<LoyType>B</LoyType>
</EsLp>
<EsMemb>
<Id>3000023950</Id>
<Birthdt>2013-02-29</Birthdt>
</EsMemb>
<EsMsh>
<Guid>ACFanIPNHtOR9rGVA2en1Q==</Guid>
<Status>Активно</Status>
<Estat>E0002</Estat>
<Tier>Базовый</Tier>
<Etier>GBT0_BASE</Etier>
<Balance>4000.0</Balance>
<EmemsType>STDMEM</EmemsType>
<MemsType>Участие в программе</MemsType>
</EsMsh>
<EtCampList/>
<EtErrorList>
<item>
<RType>S</RType>
<RId>ZCRM_LOY_MSH_INF</RId>
<RNum>000</RNum>
<RMessage>Информация успешно получена</RMessage>
</item>
</EtErrorList>
</n0:ZfmCrmLoyMshInfResponse>
</soap-env:Body>
</soap-env:Envelope>
В php выглядит так:
...
$request = $client->ZfmCrmLoyMshInf(1120000000001530, 0002);
echo $request->ZfmCrmLoyMshInfResponse->EsCrd;
...
Получаю:
Fatal error: Uncaught SoapFault exception
Я неправильно передаю параметры?! Подскажите, пожалуйста.