Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.
Внимание! Некоторое время письма не доходят до аккаунтов MAIL RU GROUP, не доходят на все почтовые ящики mail.ru, inbox.ru, bk.ru. Пишите им жалобы, чтобы быстрее восстановили получение писем, регистрируйтесь через яндекс почту и gmail, туда письма с активизацией доходят.

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 04.12.2018, 19:56   #1
Ko$
Форумчанин
 
Регистрация: 21.12.2010
Сообщений: 91
Репутация: 1
По умолчанию SOAP WSDL и Авторизация

Добрый день!
Помогите разобраться с авторизацией в SOAP.
Есть WSDL файл в блоке types есть блок следующего содержания:
Код:

      <xsd:element name="CheckStatus">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="P_USER" type="xsd:string">
                <xsd:annotation>
                    <xsd:documentation>
                User name
                </xsd:documentation>
                </xsd:annotation></xsd:element>
            <xsd:element name="P_PASSWORD" type="xsd:string">
                <xsd:annotation>
                    <xsd:documentation>
                User password
                </xsd:documentation>
                </xsd:annotation></xsd:element>
            <xsd:element name="P_APPL_NUM" type="xsd:string">
                <xsd:annotation>
                    <xsd:documentation>
                APPL_NUM
                </xsd:documentation>
                </xsd:annotation></xsd:element>
          </xsd:sequence>
          </xsd:complexType>
      </xsd:element>

а так же есть блок:

Код:

  <wsdl:message name="CheckStatusRequest">
    <wsdl:part element="tns:CheckStatus" name="parameters"/>
  </wsdl:message>

т.е. как я понимаю сервер принимает только один параметр т.е. передать\получить я его могу так:
Код:

$client = new SoapClient("https://САЙТ/file.wsdl");
var_dump($client->CheckStatus('0'));

сервер выдает ошибку аутентификации. Я немогу сообразить как мне передать логин и пароль.

Через программу SoapUI открыл wsdl, запрос получился следующего вида и он работает:
Код:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:form="http://САЙТ/Form/">
   <soapenv:Header/>
   <soapenv:Body>
      <form:CheckStatus>
         <P_USER>USER_1879</P_USER>
         <P_PASSWORD>5555</P_PASSWORD>
         <P_APPL_NUM>0</P_APPL_NUM>
      </form:CheckStatus>
   </soapenv:Body>
</soapenv:Envelope>

Как правильно составить запрос на PHP ?
Ko$ вне форума   Ответить с цитированием
Старый 04.12.2018, 20:46   #2
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 12,826
Репутация: 2143
По умолчанию

Цитата:
Сообщение от Ko$ Посмотреть сообщение
т.е. как я понимаю сервер принимает только один параметр т.е. передать\получить я его могу так:
А ничего, что параметр типа CheckStatus? Какого вы 0 пихаете то?

Цитата:
Сообщение от Ko$ Посмотреть сообщение
Через программу SoapUI открыл wsdl, запрос получился следующего вида и он работает:
Вот же ж сюрприз...

Цитата:
Сообщение от Ko$ Посмотреть сообщение
Как правильно составить запрос на PHP ?
Отправить правильные значения.
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Старый 05.12.2018, 18:49   #3
Ko$
Форумчанин
 
Регистрация: 21.12.2010
Сообщений: 91
Репутация: 1
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Вот же ж сюрприз...
яснопонятно
p/s: p51x, сделайте хоть что то полезное, не отвечайте на мои темы, я писал на тематический форум чтобы получить помощь в решении возникшей ситуации с которой я был не в силах разобраться самостоятельно, а не за гнилым тролингом, хотя возможно вы перепутали данный форум с каким-нибудь развлекательным порталом ...

если кому то понадобится решение подобной задачи, то вот так я его решил:

Код:

$client = new SoapClient("https://САЙТ/file.wsdl");

$response = $client->CheckStatus(array(
        "P_USER" => 'USER_1879',
        "P_PASSWORD" => "5555",
        "P_APPL_NUM" => "0"
    ));

var_dump($response);

Ko$ вне форума   Ответить с цитированием
Старый 05.12.2018, 18:52   #4
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 12,826
Репутация: 2143
По умолчанию

Как только вы перестанете создавать темы или это появится в правилах. То, что вы не осилили в мое ответе первое предложение
Цитата:
Сообщение от p51x Посмотреть сообщение
А ничего, что параметр типа CheckStatus?
это ваши проблемы... А так да, решили.
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Веб-сервис SOAP на PHP, WSDL MonyaVitevna PHP 2 21.03.2017 16:21
Ошибка после импорта WSDL (SOAP Почты России) Smagulov85 Работа с сетью в Delphi 7 17.06.2015 15:22
WSDL и SOAP, Отправка запросов к удаленному серверу. Алориан PHP 2 22.06.2009 12:57
soap wsdl nimf Общие вопросы Delphi 0 22.08.2008 16:10
Помогите разобраться со связкой PHP+SOAP+WSDL bobadd PHP 9 03.11.2007 13:58


10:10.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru