SoapClient выкидывает неправильную версию - PullRequest
6 голосов
/ 14 июня 2010

Когда я отправляю запрос ниже, я получаю исключение "Неправильная версия".

<OTA_HotelGetMsgRQ xmlns="http://www.opentravel.org/OTA/2003/05"
    TimeStamp="2001-12-17T09:30:47.0Z" Version="4"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Messages>
        <Message HotelCode="123" HotelName="Test Hotel" ChainCode="321"
            ReasonForRequest="Reservation Retrieval" RequestCode="Optional"
            ChainName="Test Chain" MessageType="All" StartSeqNmbr="1"
            EndSeqNmbr="10" />
    </Messages>
</OTA_HotelGetMsgRQ>

вышеуказанный запрос преобразуется в зенд-код

$client = new zend_soap_client(null,
        array(
                'location' => 'http://url...',
                'Uri' =>"http://www.opentravel.org/OTA/2003/05"
        )
);

$request = array(
        array('Messages'=> 
                array ('Message' => 
                        array (
                                'HotelCode' => '123',
                                'HotelName' => 'Test Hotel',
                                'ChainCode' => '321',
                                'ReasonForRequest' => 'Reservation Retrieval',
                                'RequestCode' => 'Optional',
                                'ChainName' => 'Test Chain',
                                'MessageType' => 'All',
                                'StartSeqNmbr' => '1',
                                'EndSeqNmbr' => '10'
                        )
                )
        )
);

$result = $client->OTA_HotelGetMsgRQ ($request);

Над строкой выдается исключение «Неправильная версия». Кто-нибудь, помогите мне, как решить эту проблему

Ответы [ 3 ]

1 голос
/ 14 сентября 2011
$autodiscover = new Zend_Soap_AutoDiscover();
$autodiscover->setClass('Core_Soap_Test');
$autodiscover->setUri( sprintf($this->_WSDL_URI,0) );
$autodiscover->handle();

$this->_WSDL_URI = '"http://WWW.EXAMPLE.COM/soap/index/wsdl/%s/?wsdl'

попробуйте код выше. это помогло мне

1 голос
/ 14 июня 2010

звучит так, как будто вы используете не ту версию;) - вы пытались добавить 'soap_version'=>'1.2' (или 1.1, в зависимости от того, какая версия нужна) к параметрам вашего soap_client?

0 голосов
/ 28 октября 2011

У меня тоже была эта проблема.Проблема в моем случае заключалась в том, что я не передавал ожидаемый (и, следовательно, обязательный) параметр, не отбрасывая исключение SoapFault.Может быть, это кому-нибудь пригодится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...