Помогите разобраться SOAP WSDL

Автор Mr.Sen, 13 февраля 2018, 18:11:42

« назад - далее »

Mr.Sen

Нужно получить данные от поставщика и сохранить в prestashop. У поставщика сервис реализованный через WSDL. Документации нет. Поэтому встал вопрос, как вытащить информацию по работе с этим сервисом?
Такой вариант не проходит
$client = new SoapClient(...);
var_dump($client->__getFunctions());

mAgency

URL сервиса вам дали? Откройте в браузере, часто на первой странице сервиса есть ссылка на документацию.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.

PrestaMan

Пример приведите, тогда можно что-то посоветывать.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!

Mr.Sen

Дали только ссылку
https://wsi.mouzenidis.com/xmlgate/xmlgate.svc?singleWsdl
Мне оттуда нужно только отели выбрать, с описанием, фото и полной информацией по датам, ценам.

Adik

<xs:element name="GetHotels">
  <xs:complexType
    <xs:sequence
      <xs:element minOccurs="0" name="CountryKey" type="xs:int"/
      <xs:element minOccurs="0" name="RegionKey" type="xs:int"/
      <xs:element minOccurs="0" name="CityKey" type="xs:int"/
      <xs:element minOccurs="0" name="HotelCategory" type="xs:int"/
    </xs:sequence
  </xs:complexType
</xs:element>

Метод GetHotels со свойствами CountryKey, RegionKey, CityKey, HotelCategory вернет список отелей.

Mr.Sen

Спасибо за желение помочь.
Но вопрос не в названиии метода. Я на wsdltophp сгенерировал все классы. Название функций, переменные классов, все это у меня есть.
Вопрос какие значения подствлять? Если ничего не указываю, то ответ пустой или ошибка.

mAgency

Пробуйте подбирать значения, раз нет документации.
$CountryKey =  (0 or -1);
$RegionKey = (0 or -1);
$CityKey" type =  (0 or -1);
$HotelCategory = (0 or -1);
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.

Mr.Sen

Цитата: mAgency от 18 февраля 2018, 17:43:56
Пробуйте подбирать значения, раз нет документации.
$CountryKey =  (0 or -1);
$RegionKey = (0 or -1);
$CityKey" type =  (0 or -1);
$HotelCategory = (0 or -1);

Спасибо, то что нужно. "-1" для получения всех данных. "0" - пустой запрос возращает.

Может еще подскажите, как соединить в один запрос список отелей, описание, фото?
Почему-то в ответе нет описания и ссылок на фото. Выдает только назание и адрес.

SanSanych

Цитата: Mr.Sen от 19 февраля 2018, 14:05:37
Почему-то в ответе нет описания и ссылок на фото. Выдает только назание и адрес.
Отдельно запрашивать надо через HotelDescriptionsRequest
Здесь посмотреть можно: https://www.wsdltophp.com/Wsdls/6d3ac7f8a2f9d7229a88d22d5395d5d8/Musenidis-1-0-1-1-1-1-0-0-0-0

Adik

Создайте структуру, например можно файл XML.
$xml = simplexml_load_file("file.xml");
Для каждого узла получаете данные и сохраняете.

mAgency

Найдите блок с фильтрами
<xs:element name="GetFilter">....
С помощью фильтров можно составить запрос по нужным параметрам.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.

Mr.Sen

Всем спасибо, пошел пробывать, еще бы получилось решить.
Описания нет, менеджер посылает на главную страницу сервиса, типо по wsdl можно все понять, дурдом.

coder

Цитата: Mr.Sen от 18 февраля 2018, 15:11:27
Я на wsdltophp сгенерировал все классы. Название функций, переменные классов, все это у меня есть.
Для одного запроса? Там же классов нагенерило до ...
<?php
// включаем показ ошибок
ini_set('display_errors', 1);
error_reporting(E_ALL & ~E_NOTICE);

// отключаем кеширование для тестирования
ini_set('soap.wsdl_cache_enabled', '0');

$url        = '...';
$login      = '...';
$password   = '...';
// ....

try {
   
// Создание SOAP-клиента
   
$client = new SoapClient($url);
   
print_r($client -> __getFunctions());
   
// ...
   //$client->Connect(array('Login' => $login,'Password' => $password));
   // ...

}
catch (
SoapFault $exception) {
   
print_r($exception->getMessage());
}