powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / SOAP Клиент (отправка запроса) PHP
20 сообщений из 20, страница 1 из 1
SOAP Клиент (отправка запроса) PHP
    #38163326
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не подскажите как отправить "конверт" с помощью PHP. Т.е. есть сервис http://vfc.russianpost.ru:8080/FederalClient/ItemDataService?wsdl. С помощью, например, SOAPUI понятно добавляем wsdl он с сервиса тащит в моем случае два метода "тыкаем" в один получаем два окошка в одно вставляем содержимое xml файла в виде

<soapenv:Envelope xmlns:soapenv=" http://schemas.xmlsoap.org/soap/envelope/" xmlns:pos=" http://fclient.russianpost.org/postserver" xmlns:fcl=" http://fclient.russianpost.org">
<soapenv:Header/>
<soapenv:Body>
<pos:ticketRequest>
<request FileName="1" FileTypeID="1" FileNumber="1" SenderID="1" RecipientID="1" DatePreparation="20130215">
<!--1 or more repetitions:-->
<fcl:Item Barcode="39297253622124">
</fcl:Item>
<fcl:Item Barcode="">
</fcl:Item>
</request>
<login>User</login>
<password>pass</password>
<!--Optional:-->
<language>RUS</language>
</pos:ticketRequest>
</soapenv:Body>
</soapenv:Envelope>

во второе получаем ответ.
А как это реализовать на PHP т.е. отправить содержимое xml.
...
Рейтинг: 0 / 0
SOAP Клиент (отправка запроса) PHP
    #38163330
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
SOAP Клиент (отправка запроса) PHP
    #38163340
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не совсем понятно, я в PHP не очень, а про SOAP вообще три дня назад узнал, но задачу "нарезали".
Мне нужно что-то типа этого?
Код: php
1.
2.
3.
4.
<?php 
    $client = new SoapClient("https://example.com/AppWs/Service?WSDL"); 
    $response = $client->__soapCall("MyMethod", array("param1" => $value1)); 
?> 


т.е. создаю нового клиента он "тащит" от туда методы мне нужно одному из них передать содержимое xml. Например getTicket>Recuest1 содержимое файла xml. (У меня готовые пакеты xml).
...
Рейтинг: 0 / 0
SOAP Клиент (отправка запроса) PHP
    #38163347
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или мне нужно присвоить все параметры (такие как FileName,... Barcode,... login...) переменным и передать методу, но тогда мне придется распарсить xml.
...
Рейтинг: 0 / 0
SOAP Клиент (отправка запроса) PHP
    #38163484
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин на серваке FreeBSD стоит PHP 5.1.6 при выполнении php-скрипта ругается на строку
Код: php
1.
$client= new SoapClient("urlwsdl");


Class SoapClient not found.... предположил что он отключен поискал строку php_soap.so в php.ini и файл php_soap.so. Ни того ни другого нет. Значит пакет не установлен? Можно как-нибудь без установки обойтись или придется ставить. На рабочий сервак что-то боязно не слетит ли при этом что либо (настройки Апачь+MySQL+PHP останутся прежними?) установка данного пакета ни на что не повлияет?
...
Рейтинг: 0 / 0
SOAP Клиент (отправка запроса) PHP
    #38163486
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя строки
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
[soap]
; Enables or disables WSDL caching feature.
soap.wsdl_cache_enabled=1
; Sets the directory name where SOAP extension will put cache files.
soap.wsdl_cache_dir="/tmp"
; (time to live) Sets the number of second while cached file will be used
; instead of original one.
soap.wsdl_cache_ttl=86400


в php.ini присутствуют
...
Рейтинг: 0 / 0
SOAP Клиент (отправка запроса) PHP
    #38163520
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторInstallation

To enable SOAP support, configure PHP with --enable-soap .
...
Рейтинг: 0 / 0
SOAP Клиент (отправка запроса) PHP
    #38163524
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зы... попробовал на домашнем компе где у меня "тройка" стоит выполнить тестовый код.
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<?
$module = 'soap'; 
$functions = get_extension_funcs($module); 
echo "Functions available in the test extension:<br>\n"; 
foreach($functions as $func) { 
    echo $func."\n"; 
} 


 $sc =  new SoapClient ("http://vfc.russianpost.ru:8080/FederalClient/ItemDataService?wsdl"); 

 var_dump($sc); 

 $methods = get_class_methods($sc); 
 var_dump($methods);
?>


выдал

Functions available in the test extension:
use_soap_error_handler is_soap_fault object(SoapClient)#1 (2) { ["_soap_version"]=> int(1) ["sdl"]=> resource(6) of type (Unknown) } array(13) { [0]=> string(10) "SoapClient" [1]=> string(6) "__call" [2]=> string(10) "__soapCall" [3]=> string(16) "__getLastRequest" [4]=> string(17) "__getLastResponse" [5]=> string(23) "__getLastRequestHeaders" [6]=> string(24) "__getLastResponseHeaders" [7]=> string(14) "__getFunctions" [8]=> string(10) "__getTypes" [9]=> string(11) "__doRequest" [10]=> string(11) "__setCookie" [11]=> string(13) "__setLocation" [12]=> string(16) "__setSoapHeaders" }

Это нормально? Если да, то какие мои дальнейшие действия передать запросы в виде xml их получается под 30 штук так как сервис ограничен количеством передаваемых параметров (barcode в первом сообщении). У меня еще одни сутки и пипец.
...
Рейтинг: 0 / 0
SOAP Клиент (отправка запроса) PHP
    #38163526
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
готовь три письма.
...
Рейтинг: 0 / 0
SOAP Клиент (отправка запроса) PHP
    #38163535
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowготовь три письма.
то-есть, файлы xml? как отправлять "конверты" и получать ответы?
...
Рейтинг: 0 / 0
SOAP Клиент (отправка запроса) PHP
    #38163685
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин ни фига не врублюсь как запрос отправить.
...
Рейтинг: 0 / 0
SOAP Клиент (отправка запроса) PHP
    #38163801
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В интернете всего много по этому поводу написано но что-то не могу переварить все это.
Пытаюсь сделать следующее
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
//сам xml который исправно отправляется с помощью того-же SOAPUI 
$query="<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:pos=\"http://fclient.russianpost.org/postserver\" xmlns:fcl=\"http://fclient.russianpost.org\">
    <soapenv:Header/>
    <soapenv:Body>
    <pos:ticketRequest>
    <request FileName=\"1\" FileTypeID=\"1\" FileNumber=\"1\" SenderID=\"1\" RecipientID=\"1\" DatePreparation=\"20130224\">
	<fcl:Item Barcode=\"39297257113368\"></fcl:Item>
	<fcl:Item Barcode=\"39297256328992\"></fcl:Item>
    </request>
    <login>User</login>
    <password>Pass</password>
    <language>RUS</language>
    </pos:ticketRequest>
    </soapenv:Body>
    </soapenv:Envelope>";
//создаю клиента
 $sc =  new SoapWSDL ("http://vfc.russianpost.ru:8080/FederalClient/ItemDataService?wsdl"); 
//Пытаюсь отправить запрос
$result = $sc->getTicket($query);
//Тут фик ее знает типа ответ чтобы вывел
var_dump($result); 


Но что то абракатабра какая-то чего не так-то

object(stdClass)#2 (1) { ["error"]=> object(stdClass)#3 (2) { ["ErrorTypeID"]=> int(3) ["ErrorName"]=> string(175) "Неуспешная авторизация ФК для передачи запроса компоненту получения запросов и выдачи ответов" } }
...
Рейтинг: 0 / 0
SOAP Клиент (отправка запроса) PHP
    #38163802
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибочка вместо
Код: php
1.
 new SoapWSDL


у меня
Код: php
1.
 $sc =  new SoapClient
...
Рейтинг: 0 / 0
SOAP Клиент (отправка запроса) PHP
    #38163826
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зыы.. Tут по русски мне написали "Неудачная авторизация" Как анестезироваться куда вбить пароль и логин в xml он есть но не прокатывает.
...
Рейтинг: 0 / 0
SOAP Клиент (отправка запроса) PHP
    #38163981
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, я в панике что передавать то, значение параметров, сам xml? Хоть примерчик какой нибудь.
...
Рейтинг: 0 / 0
SOAP Клиент (отправка запроса) PHP
    #38164017
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я дико извиняюсь за треп (наверное нервы) но не могу понять почему не хочет авторизоваться.
Итак я создал клиента
Код: php
1.
$client =  new SoapClient ("http://vfc.russianpost.ru:8080/FederalClient/ItemDataService?wsdl");


Передал запрос getTicket'у (обрезал его дальше некуда)
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
$query="<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:pos=\"http://fclient.russianpost.org/postserver\" xmlns:fcl=\"http://fclient.russianpost.org\">
    <soapenv:Header/>
    <soapenv:Body>
    <pos:ticketRequest>
     <login>User</login>
     <password>Pass</password>
    </pos:ticketRequest>
    </soapenv:Body>
    </soapenv:Envelope>";
 $result = $client->getTicket($query);
 var_dump($result);


получаю ответ, что авторизация не увенчалась успехом. Причем на русском, стандартный ответ от сервиса (SOAPUI выдает такой в случае неправильного пароля, логина). Вывод: т.к. ответ получен от сервиса значит до него дошли данные он их обработал но не смог принять пароль, логин. Что я упустил?
...
Рейтинг: 0 / 0
SOAP Клиент (отправка запроса) PHP
    #38164081
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Твою тулюсю сдвинулся с мертвой точки... Внимательно посмотрел на вывод
Код: php
1.
2.
var_dump($client->__getTypes());
var_dump($client->__getFunctions());


И о чудо, почти получилось. Передаем массив состоящий из параметров функции, а не сам xml.. который я пытаюсь со вчерашнего вечера ей засунуть.
Ура. Можно немного поспать.
...
Рейтинг: 0 / 0
SOAP Клиент (отправка запроса) PHP
    #38164086
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Позвольте еще один вопросик. Типу
Код: php
1.
struct ticketRequest { file request; string login; string password; string language; }


нужно передать три параметра с этим string login; string password; string language; понятно, а в каком виде передавать file request если в xml он выглядит так
Код: xml
1.
2.
3.
<request>
	<fcl:Item Barcode="39297255302306"/>
</request>


Спасибо.
...
Рейтинг: 0 / 0
SOAP Клиент (отправка запроса) PHP
    #38164087
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Список функций и типов

типы
array(15) { [0]=> string(15) "string fileName" [1]=> string(24) "positiveInteger fileType" [2]=> string(14) "string barcode" [3]=> string(11) "string date" [4]=> string(12) "string index" [5]=> string(178) "struct file { item Item; fileName FileName; fileType FileTypeID; positiveInteger FileNumber; positiveInteger SenderID; positiveInteger RecipientID; date DatePreparation; }" [6]=> string(69) "struct item { operation Operation; error Error; barcode Barcode; }" [7]=> string(132) "struct operation { positiveInteger OperTypeID; nonNegativeInteger OperCtgID; string OperName; date DateOper; index IndexOper; }" [8]=> string(65) "struct error { positiveInteger ErrorTypeID; string ErrorName; }" [9]=> string(90) "struct ticketRequest { file request; string login; string password; string language; }" [10]=> string(43) "struct LanguageData { Language Language; }" [11]=> string(47) "struct Language { string name; string code; }" [12]=> string(54) "struct ticketResponse { string value; error error; }" [13]=> string(81) "struct answerByTicketRequest { string ticket; string login; string password; }" [14]=> string(60) "struct answerByTicketResponse { file value; error error; }" }
функции
array(2) { [0]=> string(51) "ticketResponse getTicket(ticketRequest $parameters)" [1]=> string(77) "answerByTicketResponse getResponseByTicket(answerByTicketRequest $parameters)" }
...
Рейтинг: 0 / 0
SOAP Клиент (отправка запроса) PHP
    #38169540
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не подскажите как (в каком виде) передается параметр request?
Код: php
1.
struct ticketRequest { file request; string login; string password; string language; }


вывод __getTypes() выше. Спасибо
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / SOAP Клиент (отправка запроса) PHP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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