Форматирование аргументов в мыльных клиентах

Все еще в пути над моей головой. Не будь слишком злым!

Я подключаюсь к ASP API от PHP через SoapClient и возникли проблемы при передаче аргумента одному из методов. Тем не менее, я получаю результат ошибки и могу успешно их проанализировать (спасибо @AbraCadaver!), Так что я не лаю не на то дерево — просто карабкаюсь по нему неправильно! Я также могу подтвердить, что ручной ввод ключа на странице API работает, поэтому я получил правильные данные.

Исходя из следующего WSDL, правильно ли я форматирую ключ безопасности?

Мой PHP:

$loginResult = $soapClient->Login($securityKey);

Их WSDL:

<s:element name="Login">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="SecurityKey" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>

FWIW, со своей страницы API:

Login
This function authenticates the user.

Parameters (* required):
SecurityKey*:   Security Key

0

Решение

Простой ответ, просто то, о чем я знаю 0. Две вещи:

  1. Login() функция требует массив
  2. SecurityKey элемент в WSDL выше должен присваивать значение в этом массиве через соответствующий ключ.

Это сработало для меня:

$loginResult = $soapClient->Login(array('SecurityKey' => $securityKey));
0

Другие решения

Других решений пока нет …