Как сделать SOAP-запрос с использованием cURL в PHP (Drupal) - PullRequest
0 голосов
/ 04 марта 2019

Я пытался получить SOAP-запрос для работы в пользовательском модуле для Drupal 7. Я использую cURL для выполнения запроса внутри функции.На данный момент страница, которую я использую, говорит нам о поддержке сайта, когда я активирую функцию.Ниже приведен фрагмент функции.У меня вопрос, как я могу получить значение электронной почты, предоставленной ответом SOAP, и поместить его в переменную PHP?Ниже мой вариант использования SimpleXML.

$xml = simplexml_load_string($response);
$namespace = 'http://exacttarget.com/wsdl/partnerAPI';
$soap = $xml->children($namespace);
$subscriber_email = $soap->Body->RetrieveResponseMsg->Results->Properties->Property[2]->Value;

Это результат запроса SOAP сам по себе с использованием интерфейса SOAP, который я пытаюсь проанализировать:


<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
   <soap:Header>
      <wsa:Action>RetrieveResponse</wsa:Action>
      <wsa:MessageID>[REMOVED]</wsa:MessageID>
      <wsa:RelatesTo>[REMOVED]</wsa:RelatesTo>
      <wsa:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:To>
      <wsse:Security>
         <wsu:Timestamp wsu:Id="Timestamp-715a4a7e-4657-48c7-8b01-612580d331ce">
            <wsu:Created>2019-03-04T12:41:08Z</wsu:Created>
            <wsu:Expires>2019-03-04T12:46:08Z</wsu:Expires>
         </wsu:Timestamp>
      </wsse:Security>
   </soap:Header>
   <soap:Body>
      <RetrieveResponseMsg xmlns="http://exacttarget.com/wsdl/partnerAPI">
         <OverallStatus>OK</OverallStatus>
         <RequestID>[REMOVED]</RequestID>
         <Results xsi:type="DataExtensionObject">
            <PartnerKey xsi:nil="true"/>
            <ObjectID xsi:nil="true"/>
            <Type>DataExtensionObject</Type>
            <Properties>
               <Property>
                  <Name>SubscriberID</Name>
                  <Value>[REMOVED]</Value>
               </Property>
               <Property>
                  <Name>FirstName</Name>
                  <Value>[REMOVED]</Value>
               </Property>
               <Property>
                  <Name>Email</Name>
                  <Value>[REMOVED]</Value>
               </Property>
            </Properties>
         </Results>
      </RetrieveResponseMsg>
   </soap:Body>
</soap:Envelope>

...