Приветствую! Может кто сталкивался с SOAP веб сервисами. Есть работающий сервис на PHP. Использует SOAP протокол. Используется стандартное SOAP-расширение для PHP - http://php.ru/manual/book.soap.html Есть клиент. Есть сервер. Вот пример сообщения, отправляемого клиентом серверу: Код (Text): <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://smev.gosuslugi.ru/rev120315" xmlns:ns2="http://samara.webservice.namespace"> <SOAP-ENV:Body> <ns2:createRequestResponse> <ns1:Message> <ns1:Sender> <ns1:Code>MNPR00063</ns1:Code> </ns1:Sender> </ns1:Message> <ns1:MessageData> <ns1:AppData> <ns2:response> <ns2:Status>1</ns2:Status> </ns2:response> </ns1:AppData> </ns1:MessageData> </ns2:createRequestResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Особенность работы расширения - при отправке soap сообщения префиксы (ns1 и ns2 в примере) для пространства имён генерируются автоматически. Никак немогу найти способ их назвать так как мне надо. В таком виде хоть и работает, но не проходит ФЛК(форматно-логический контроль). А надо. На клиентской стороне этот вопрос решаем, т.к. есть у объекта SoapClient метод __doRequest - http://php.ru/manual/soapclient.dorequest.html В нем можно перехватить запрос к серверу и модифицировать xml'ку. А вот у объекта SoapServer на серверной стороне аналогичный метод отсутствует - http://php.ru/manual/class.soapserver.html. И ответы сервера уже не отредактировать аналогичным образом. Пока что приохожу к выводу что у данного расширения такой функционал отсутствует. Может что посоветуете. Вот здесь http://phpclub.ru/detail/article/soap еще список реализаций SOAP для PHP: PEAR::SOAP NuSOAP eZ SOAP Может пользовался кто? Есть ли там решение для вопроса?
не понял, что именно у тебя генерируется само? тебе должно быть пофигу какие именно байты шлются между клиентом и сервером. слава аллаху, процесс строго формализован и достаточно указать верный wsdl и подсунуть данные правильного типа.
Сорри за задержку с ответом. Само у меня генерируется вот что: префиксы ns1 и ns2 а надо чтобы они назывались, например prefix1 и prefix2 Можно возразить: "Да какая разница.Главное чтобы данные доходили и всё работало" Но вот надо и всё тут, потому что На самом деле этот вопрос хоть и не решён, но уже не актуален. Заработало и так. (хотя все равно интересно, уже чисто торетически, возможно ли эти префиксы по-своему назвать) Теперь другой вопрос(ниже) Добавлено спустя 9 минут 10 секунд: Теперь вопрос про модификацию тэга body в soap-сообщении. (Нужно для добавления ЭЦП) Сейчас body выглядит так Код (Text): <SOAP-ENV:Body> а нужно чтобы вот так Код (Text): <SOAP-ENV:Body wsu:Id="body"> Много инфы о том ЧТО надо сделать для добавления подписи в SOAP сообщение, но вот КАК это сделать... Такое ощущение что на PHP этим мало кто занимается.