Как правильно подключиться через PHP SOAP к API booking-manager?

PGSky

Новичок
Здравствуйте. Решил подключить вывод яхт через API Booking-Manager.com. Необходимо использовать SOAP.
Сам сайт находится на Wordpress, а хостинг Beget, но это не важно, т.к. прежде чем подключать все это, решил хотя бы попробовать протестировать как работает, через тестовый файл, код такой (как в документации с небольшими добавлениями):

PHP:
ini_set('default_socket_timeout', 500);
ini_set('display_errors', '1');
error_reporting(E_ALL);

/**
* MMKStruct  object with MMK call parameters,
* simple Array to in0,in1 etc. Object properties as of definitions
*/
class MMKStruct {
/**
* Constructor
*
* @param $a  array of parameters
* @ret void
*/
     public function __construct($a) {
         $i = 0;
         foreach ($a as $var => $val) {
             $varName = 'in' . $i;
             $this->$varName = $val;
             $i++;
         }
     }
}
// Specify url
$wsdl = 'https://www.booking-manager.com/cbm_web_service2/services/CBM?wsdl';
$arrContextOptions=array("ssl"=>array( "verify_peer"=>false, "verify_peer_name"=>false,'crypto_method' => STREAM_CRYPTO_METHOD_TLS_CLIENT));
$options = array(
        'exceptions'=>true,
        'trace'=>1,
        'cache_wsdl'=>WSDL_CACHE_NONE,
        'stream_context' => stream_context_create($arrContextOptions),
        'keep_alive' => false,
);
$soapClient = new SoapClient($wsdl, $options);

try {
    $struct = new MMKStruct(array(Здесь ID,'Здесь E-mail'','Здесь пароль','635','2019', 'true',0));
    $result = $soapClient->__soapCall('getAvailabilityInfo',array($struct));
    if(isset($result->out)) {
        $xml = $result->out;
        echo $xml;
    }
    var_dump($result);
    echo 'ok';
}
catch (Exception $e) {
    print_r($e->getMessage());
    print_r($soapClient->__getLastRequest());
    print_r($soapClient->__getLastResponse());
}
В итоге я получил ошибку 500 (на функции getResources, в коде здесь его нет) в браузере. Заменил функцию (т.к. все равно тестирую и момент с ошибкой 500 можно исправить потом, посчитал, что слишком много данных получает, но может не понимаю как конкретно работает SOAP) на getAvailabilityInfo (в коде видно). Ошибки 500 нет, но за то появилась ошибка "soap:ServerIllegal access to entity"

Подскажите, пожалуйста, решение или направление куда смотреть (по ошибке "soap:ServerIllegal access to entity" и если можно по ошибке 500).
 
Последнее редактирование:

AnrDaemon

Продвинутый новичок
Потому что не надо руками вызывать магические методы.
Возьмите нормальную документацию.
 
Сверху