Л А Б О Р А Т О Р И Я

актуальных

РЕШЕНИЙ


SOAP - client PHP for requests to ASP.NET server

Практический пример скрипта SOAP клиента на PHP для запросов к серверу ASP.NET

Основная проблема, которая вызвала затруднения при создании скрипта для интеграции с поставщиком и загрузки данных о товарах - плохое методическое описание, и отсутствие примеров на PHP у программистов поставщика.

В сети интернет, несмотря на то, что технология SOAP уже далеко не новая, количество полезной информации очень мало. На PHP.net все изложено достаточно скудно и примеры фактически отстутствуют.

Существующие примеры в сети, которые разъясняют устройство и принцип работы, больше напоминают учебные задания, которые выполнены в виде курсовых или лабораторных работ. Причем сервер и клиент реализованы на PHP.

В нашем случае, не было возможности тестировать поступающую на сервер поставщика информацию, и не было никаких примеров удачно работающих с сервером поставщика сриптов. А это сильно усложнило задачу, заставив экспериментировать с различными операторами и функциями PHP, которые позволяют создавать SOAP запросы к серверу.

При создании объекта данных для запроса к серверу используется объект XMLWriter (см. строки скрипта 4-32). Структура объекта данных должна была соответствовать заданной поставщиком схеме:

Text wsdl

В схеме, к сожалению, не было учтено, что требуется обертка "Request" (см. строка скрипта 7) для параметров данных, что также вызвало определенную проблему в разработке.

Несмотря на то, что в мануале PHP.net указано использование функции __soapCall в режиме отличном от WSDL, в нашем случае, использование именно этой функции в режиме WSDL позволило создать работоспособное обращение к серверу (см. строка скрипта 39).

Значение параметра 'soapaction' (см. строка скрипта 41) было взята из соответствующего раздела файла WSDL:

Text wsdl

Скрипт запускался из консоли, туда же выводились данные запроса к серверу и ответа от него (см. строки скрипта 44-48)

Код скрипта:

Text script

Удачи в разработке!