Задать атрибуты для параметров в SOAP-запросе PHP - PullRequest
0 голосов
/ 08 апреля 2009

Я пытаюсь использовать веб-сервис, который разрешает только SOAP-запрос

Насколько я знаю, я должен создать запрос, который выглядит следующим образом

<?xml version="1.0" encoding="utf-8"?>
<SessionCreateRQ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <POS>
    <Source PseudoCityCode="SECRET_CODE" />
  </POS>
</SessionCreateRQ>

однако при добавлении параметра в метод SessionCreateRQ я не знаю, как добавить параметр POS с именем Source, и понятия не имею, как установить атрибут для этого параметра

я пытаюсь следующее в php

  $body = array(
        'POS' => array('source' => 'PseudoCityCode:SECRET_CODE'));

    try
    {
        $result = $c->SessionCreateRQ($body);
    }

но не повезло, кто-нибудь знает, как мне правильно построить этот вызов?

спасибо!

1 Ответ

1 голос
/ 11 апреля 2009

Для начала вам нужно определение WSDL для этой службы (онлайн или в локальном файле). Любой неплохой сервис SOAP предоставляет пользователям WSDL.

Во-вторых, вам нужно перевести определение сервиса WSDL в PHP-код. Попробуйте wsdl2php генератор. Создайте файл с классами, которые делают звонки на веб-сервисы.

Ваш пример будет примерно следующим:

require_once 'GeneratedTypes.php';
$client = new SOAPService();
$res = $client->SessionCreateRQ(SECRET_CODE);

p.s. wsdl2php не идеал, но он работает:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...