Получить данные из вызова SOAP

Я получил API от веб-службы wsdl, которую пытаюсь вызвать. Я получаю только return NULL в массивах при вводе информации. Вот как выглядит wsdl:

<xs:element name="Amount">
<xs:complexType>
    <xs:sequence>
        <xs:element minOccurs="0" name="securityToken" nillable="true" type="xs:string"/>
        <xs:element minOccurs="0" name="testNo" nillable="true" type="xs:string"/>
        <xs:element minOccurs="0" name="testCode" nillable="true" type="xs:string"/>
    </xs:sequence>
</xs:complexType>

And heres my PHP Soap code:

 <?php
    //Create the client object
    $soapclient = new SoapClient('https://example.com/Web.svc?singleWsdl');

    //Use the functions of the client, the params of the function are in 
    //the associative array
    $testNo = 'ABC123';

    $params = array('testNo' => $testNo);
    $response = $soapclient->GetPackagePrice($params);

    var_dump($response);
?>

person Community    schedule 12.04.2018    source источник


Ответы (1)


Ваша функция SOAP не принимает никаких классов. Отправлять только массив с содержимым

<?php
/* Initialize webservice with your WSDL */
$client = new SoapClient("http://example.com/PublicWeb.svc?singleWsdl");

/* Set your parameters for the request */
$params = array(
    "securityToken" => "aString",
    "testNo" => "aString",
    "testCode" => "aString"
);

/* Invoke webservice method with your parameters, in this case: GetPackageAmount */
$response = $client->GetPackageAmount($params);

/* Print webservice response */
var_dump($response);
person Cyperghost    schedule 12.04.2018
comment
Пробовал, но он по-прежнему возвращает NULL как данные значения из массива. Обновил php-код, если вы хотите взглянуть - person ; 12.04.2018
comment
Есть ли у вас какие-либо документы об этой конечной точке SOAP? Или это личное? А когда вам не нужны никакие элементы (securityToken, testCode), удалите их из массива. - person Cyperghost; 12.04.2018
comment
Извините, это личное. Но в основном я должен был отправить число в качестве данных значения в функцию GetPackageAmount для получения данных. - person ; 13.04.2018
comment
Если в результате вы получаете null, значит, конечная точка не понимает запрос. Это означает, что ваш запрос недействителен. Можете ли вы распечатать результат из print_r($client->__getFunctions()); и print_r($client->__getTypes());? - person Cyperghost; 13.04.2018