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