Определить WS-адресацию по запросу PHP SOAP API - PullRequest
0 голосов
/ 12 июня 2018

Я могу получить успешный ответ от wsdl, если я включу WS-Addressing на SOAP UI.Хотите знать, как сделать это с помощью PHP.Вот мой текущий запрос XML:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:bses="http://bsestarmf.in/">
   <soap:Header/>
   <soap:Body>
      <bses:getPassword>
         <!--Optional:-->
         <bses:UserId>12345</bses:UserId>
         <!--Optional:-->
         <bses:Password>somepassword</bses:Password>
         <!--Optional:-->
         <bses:PassKey>somekey</bses:PassKey>
      </bses:getPassword>
   </soap:Body>
</soap:Envelope>

Вот мой wsdl: http://bsestarmfdemo.bseindia.com/MFOrderEntry/MFOrder.svc?wsdl

Я получаю этот ответ об ошибке без включения WS-Addressing:

<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">
   <s:Header>
      <a:Action s:mustUnderstand="1">http://www.w3.org/2005/08/addressing/fault</a:Action>
   </s:Header>
   <s:Body>
      <s:Fault>
         <s:Code>
            <s:Value>s:Sender</s:Value>
            <s:Subcode>
               <s:Value>a:ActionMismatch</s:Value>
            </s:Subcode>
         </s:Code>
         <s:Reason>
            <s:Text xml:lang="en-US">The SOAP action specified on the message, '', does not match the HTTP SOAP Action, 'http://bsestarmf.in/MFOrderEntry/getPassword'.</s:Text>
         </s:Reason>
         <s:Detail>
            <a:ProblemHeaderQName>a:Action</a:ProblemHeaderQName>
         </s:Detail>
      </s:Fault>
   </s:Body>
</s:Envelope>
...