Мастер-Web:Дополнительный модуль Сервис TourML Ответы на часто задаваемые вопросы
Вопрос
У нас стоит веб-сервис, но мы не можем воспользоваться методом GetValidTourList. Как мы можем получать данные?
Ответ
Для доступа к сервис необходимо использовать авторизацию посредством логина и пароля. Веб-сервис поддерживает различные виды авторизации (виды авторизации зависят от настроек веб-сервиса на стороне оператора). По умолчанию всегда поддерживается WSE авторизация
Вопрос
Получили пример работы, но мы не используем .net при разработке. У нас PHP. Если у вас есть примеры на PHP?
Ответ
В настоящий момент примеров на PHP нет. Но в коде на C# не очень сложно разобраться как воспользоваться альтернативными методами аутентификации (кроме WSE, который для реализации на PHP слишком сложен). Более подробно об альтернативных методах можно ознакомиться в разделе ”Авторизация без использования WSE”.
Вопрос
При обращении к сервису у нас возникает ошибка: System.Data.SqlClient.SqlException: При установлении соединения с SQL Server произошла ошибка, связанная с сетью или с определенным экземпляром. Сервер не найден или недоступен. Убедитесь, что имя экземпляра указано правильно и что на SQL Server разрешены удаленные соединения (provider: Поставщик именованных каналов, error: 40 - Не удалось открыть подключение к SQL Server).
Ответ
Проблема в настройках веб-сервиса. Оператор должен исправить строку подключения к базе данных в файле настроек сервиса web.config. В данной строке указывается адрес сервера, база данных, логин и пароль учетной записи, под которой работает веб-сервис.
Вопрос
На все запросы мы получаем такую вот ошибку:
System.Data.SqlClient.SqlException: Login failed for user 'user1'. Reason: The account is disabled.
Ответ
Проблема связана с настройками SQL сервера на стороне оператора. Обратитесь к техническим специалистам оператора с просьбой решить проблему.
Вопрос
При попытке получить список спецпредложения сервис возвращает ошибку - 500 - внутренняя ошибка сервера.
Ответ
Если Вы используете браузер Internet Explorer, то при возникновении любой ошибки на этапе авторизации возвращается HTTP 500 - Внутренняя ошибка сервера. Internet Explorer скрывает текст возникшей ошибки. В данном случае стоит воспользоваться каким-либо альтернативным браузером (Opera, Mozilla), где сообщение от сервера выведется на экран. Также текст ошибок можно получать, воспользовавшись логгерами Http, которые отслеживают запросы\ответы по этому протоколу.
Вопрос
Мы — компания ООО”*****”. Продлите, пожалуйста, нам пароль для доступа к сервису TourML оператора *******.
Ответ
Продление логинов осуществляется компанией Мегатек только по запросу по электронной почте со стороны ответственных сотрудников туроператора. Для решения вопросам обратитесь к представителем оператора.
Вопрос
Пытаемся получить ответ на запрос AgreementsByNumber сервиса компании *****. В ответе возвращается сообщение об ошибке System.Web.Services.Protocols.SoapException: You are not allowed to use this function
Ответ
Используемый Вами логин не позволяет получить доступ к этой функции. Обратитесь к оператору для получения другого логина или для разрешения на использование функции для текущего логина.
Вопрос
У меня возникает ошибка при обращении к методу GetPriceListByTour: Server did not recognize the value of HTTP Header SOAPAction: http://tourml.ru/service/2004-08-13/products/GetPriceListByTour.
Ответ
Дело в том что в последних версиях сервиса этот метод (GetPriceListByTour) не доступен. В место него нужно использовать метод GetSPOPageByKey.
Вопрос
У вас на сервисе стоит ограничение длин страниц СПО в 5000 прайсов. Есть ли возможность увеличить этот лимит?
Ответ
Такое ограничение было введено в целях защиты серверов операторов от излишней нагрузки. В некоторых случаях даже 5000 является большим значением (в случае многоотельных туров с большим количеством размещений). В большинстве случаев на выгрузку с ограничением 5000 требуется порядка нескольких секунд. Увеличение лимита невозможно.
Вопрос
Нам на сайт нужно вывести информацию о туре. Согласно описанием методов и все работает автоматически, все подгружается и выводиться на экран.
Ответ
Сервис автоматически ничего не выкладывает. Для того чтобы сервис вернул данные нужно вызвать тот или иной метод. То есть нужен именно какой-то код на странице, который будет эти методы вызывать. В качестве ответа сервис возвращает XML (TourML), в котором описаны, например, СПО. Затем, имея такую информацию в виде XML, Вы можете сформировать нужную Вам страницу самостоятельно.
Вопрос
При работе с веб-сервисом возникает ошибка: reasonLat="Инициализатор типа "Megatec.Common.BusinessRules.Users" выдал исключение в Megatec.Common.BusinessRules.Users..ctor(DataContainer dataCache)....
Ответ
Скорее всего, веб-сервис работает от имени пользователя “sa”. Программный комплекс мастер-тур не позволяет работать под таким пользователем. Необходимо указать другого пользователя, под которым может работать веб-сервис. Для этого необходимо в строке подлкючения заменить логин/пароль пользователя в конфигурационном файле веб-сервиса
Вопрос
В документации указано, что при использовании авторизации через GET строку необходимо передавать зашифрованный хеш-пароля, а не пароль в явном виде. Как нам получить хеш-пароля.
Ответ
Существуют различные методы получения хеша в разных средствах разработки. Для более детальной информации обратитесь к соответствующей документации к средству разработки.
Также Вы может воспользоваться возможностью, которая есть в примере работы с
веб-сервисом (данный пример входит в состав дистрибутива и поставляется в виде архивного файла ServiceClient.zip). Распакуйте все содержимое архива в любой рабочий каталог и запустите программу ServiceClient.exe
На экране появится окно примера работы с веб-сервисом:
Введите в поле пароль Ваш пароль, используемый для доступа к web-сервису. При этом в поле base64(SHA-1) отображается хеш пароля.