Adobe Business Catalyst: integrar API mediante PHP

No se a cuantos les servirá esto (supongo que no a muchos). El uso del API de Adobe Business Catalyst (BC) se hace mediante SOAP, cuyas direcciones son:

Para la información del API y los métodos disponibles:

Siendo SOAP, y usando PHP, la forma de obtener los datos del método SecureZoneList_Retrieve, y cualquier otro debería ser el siguiente:

<?php
 $client = new SoapClient('https://mysite.businesscatalyst.com/CatalystWebService/CatalystCRMWebservice.asmx?WSDL');
 $result = $client->SecureZoneList_Retrieve('username@email.com', 'password', 'siteID');
 
 $print_r($result);
?>

Pero lamentablemente a veces esto no funciona, otra manera de poder conectarse al API es usando cURL y el código sería el siguiente:

<?php
 $xml = '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">';
 $xml .= '<soap:Body>';
 $xml .= '<SecureZoneList_Retrieve xmlns="http://tempuri.org/CatalystDeveloperService/CatalystCRMWebservice">';
 $xml .= '<username>username@email.com</username>';
 $xml .= '<password>password</password>';
 $xml .= '<siteId>siteID</siteId>';
 $xml .= '</SecureZoneList_Retrieve>';
 $xml .= '</soap:Body>';
 $xml .= '</soap:Envelope>';
 
 $headers[] = 'Content-Type: text/xml; charset=utf-8';
 
 $ch = curl_init('https://mysite.businesscatalyst.com/CatalystWebService/CatalystCRMWebservice.asmx');
 curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
 curl_setopt($ch, CURLOPT_HEADER, true);
 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
 curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
 curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
 
 $result = curl_exec($ch);
 curl_close($ch);
 
 print_r($result);
?>