powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Почему не работает SOAP запрос?
2 сообщений из 2, страница 1 из 1
Почему не работает SOAP запрос?
    #40032417
VaneS Ri_lax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, сделать SOAP запрос,
Вот адрес сервиса
В документации говорится следующее:
1.2 Синхронный сервис сообщений
Синхронный сервис сообщений предоставляет 1 метод:
1. GetMessage - метод получения сообщения
1.2.1 Метод получения сообщения (GetMessage)
Метод получения сообщения предназначен для синхронной отправки и получения XML-сообщения в соответствии с определенной для конкретного сервиса схемой.
Сигнатура метода выглядит следующим образом:
GetMessageResponse GetMessage(GetMessageRequest request), где
GetMessageRequest – запрос, содержащий единственный элемент Message – сообщение, позволяющее содержать любой xml с обязательным указанием схемы. Например,
Код: xml
1.
2.
3.
4.
5.
<tns:AuthRequest xmlns:tns="urn://x-artefacts-gnivc-ru/ais3/kkt/AuthService/types/1.0">
  <tns:AuthAppInfo>
    <tns:MasterToken>MASTER_TOKEN_ISSUED_BY_FNS</tns:MasterToken>
  </tns:AuthAppInfo>
</tns:AuthRequest>


GetMessageResponse – ответ, содержащий единственный элемент Message – сообщение, позволяющее содержать любой xml с обязательным указанием схемы. Например,
Код: xml
1.
2.
3.
4.
5.
6.
<tns:AuthResponse xmlns:tns="urn://x-artefacts-gnivc-ru/ais3/kkt/AuthService/types/1.0" >
  <tns:Result>
    <tns:Token>TEMPORARY_TOKEN_ISSUED_BY_FNS</tns:Token>
    <tns:ExpireTime>2001-12-17T09:30:47Z</tns:ExpireTime>
  </tns:Result>
</tns:AuthResponse>


Я написал простой код запроса на PHP:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
try{
        $options = array(
        'soap_version' => SOAP_1_1,
        'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP,
        'encoding' => 'UTF-8',
        'trace' => 1,
        'exceptions' => true,
        'cache_wsdl' => WSDL_CACHE_NONE,
        'features' => SOAP_SINGLE_ELEMENT_ARRAYS
    );
        $service_Url = 'https://openapi.nalog.ru:8090/open-api/AuthService/0.1?wsdl';
        $SoapClient = new SoapClient($service_Url, $options);
 
        $daraArray = array('Message' => '
 
           <AuthRequest xmlns="urn://x-artefacts-gnivc-ru/ais3/kkt/AuthService/types/1.0" xsi:schemaLocation="urn://x-artefacts-gnivc-ru/ais3/kkt/AuthService/types/1.0 schema.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
               <AuthAppInfo>
                   <MasterToken>'.$modx->getOption('MASTER_TOKEN_ISSUED_BY_FNS').'</MasterToken>
               </AuthAppInfo>
           </AuthRequest>
       ');
       
        $result = $SoapClient->GetMessage($daraArray);
    }catch(Exception $e){
        echo($e);
    }


В результате получаю ответ:
Код: php
1.
SoapFault exception: [soap:Client] Unmarshalling Error: cvc-complex-type.2.4.b: The content of element 'ns1:Message' is not complete. One of '{WC[##other:"urn://x-artefacts-gnivc-ru/inplat/servin/OpenApiMessageConsumerService/types/1.0"]}' is expected.  in


Что я делаю не так?
...
Рейтинг: 0 / 0
Почему не работает SOAP запрос?
    #40032565
irbis_al
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VaneS Ri_lax,
Ну Вам же отвечает
Код: plsql
1.
 cvc-complex-type.2.4.b: The content of element 'ns1:Message' is not complete.


Вы не совсем верно составили тело запроса в часности объект Message...чего то там не хватает..
Ожидается какой-то там urn://x-artefacts-gnivc-ru/inplat/servin/OpenApiMessageConsumerService/types/1.0
Код: sql
1.
One of '{WC[##other:"urn://x-artefacts-gnivc-ru/inplat/servin/OpenApiMessageConsumerService/types/1.0"]}' is expected. 


Вообще soap...по идее для всех языков одна парадигма (тех.философия)...Должна быть утилита ,которая по wsdl построит сама объектную модель...классы там и т.д(java и С# так делают)...И Вы сами ручками не пишите этот xml...Хотя в php может быть иначе...
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Почему не работает SOAP запрос?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]