我已经尝试了一段时间,但我无法弄清楚如何将PHP SoapCLient与WSDL结合使用以形成复杂的标题(也就是说,比我能找到的任何教程都复杂得多).我需要发送的信封如下所示:
(001) <?xml version='1.0' encoding='UTF-8'?>
(002) <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xlink="http://www.w3.org/1999/xlink">
(003) <SOAP-ENV:Header>
(004) <eb:MessageHeader xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" eb:version="2.0" SOAP-ENV:mustUnderstand="1">
(005) <eb:From>
(006) <eb:PartyId>webservices.example.com</eb:PartyId>
(007) </eb:From>
(008) <eb:To>
(009) <eb:PartyId>clientURL</eb:PartyId>
(010) </eb:To>
(011) <eb:CPAId>IPCC</eb:CPAId>
(012) <eb:ConversationId>ABC123@clientURL.com</eb:ConversationId>
(013) <eb:Service eb:type="XML">Session</eb:Service>
(014) <eb:Action>SessionCreateRS</eb:Action>
(015) <eb:MessageData>
(016) <eb:MessageId>mid:20030707-12545-1369@webservices.sabre.com</eb:MessageId>
(017) <eb:Timestamp>2001-02-15T11:25:12Z</eb:Timestamp>
(018) </eb:MessageData>
(019) <RefToMessageId>mid:20001209-133003-2333@clientURL</RefToMessageId>
(020) </eb:MessageHeader>
(021) <wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext">
(022) <wsse:BinarySecurityToken xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/12/utility" wsu:Id="SabreSecurityToken" valueType="String" EncodingType="wsse:Base64Binary">Shared/IDL:IceSess\/SessMgr:1\.0.IDL/Common/!ICESMS\/RESC!ICESMSLB\/RES.LB!-4954987477210575357!252506!0</wsse:BinarySecurityToken>
(023) </wsse:Security>
(024) </SOAP-ENV:Header>
(025) <SOAP-ENV:Body>
(026) <eb:Manifest xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" eb:version="2.0">
(027) <eb:Reference eb:id="SessionCreateRS" xlink:type="simple" xlink:href="cid:SessionCreateRS"
(028) <eb:Description xml:lang="en-US">Response Message</eb:Description>"/>
(029) </eb:Reference> …Run Code Online (Sandbox Code Playgroud)