Веб-служба WSDL API Magento WS-I, совместимая с v2 SOAP-ОШИБКА: Кодировка: у объекта нет свойства 'sessionId' - PullRequest
6 голосов
/ 15 января 2012

Я использую веб-сервис Magento v2 в режиме, совместимом с WS-I

, когда пытаюсь перечислить продукт, я получаю исключение

SOAP-ERROR: Encoding: object has no 'sessionId' property

мой код указан ниже

$proxy = new SoapClient('http://127.0.0.1/Magento1620/index.php/api/v2_soap?wsdl', array('trace' => 1, 'connection_timeout' => 120));

    $sessionId = $proxy->login(array(
        'username' => "zzc000",
        'apiKey' => "zzc000"
    ));

    $filters = array(
        'sku' => array('like'=>'zol%')
    );

    $products = $proxy->catalogProductList($sessionId, $filters);

Пожалуйста, помогите, спасибо

1 Ответ

19 голосов
/ 15 января 2012

В режиме WS-I есть некоторые незначительные различия в использовании API.

  1. Результат $ proxy-> login ()это объект.Вам нужно извлечь sessionId.
  2. При вызове $ proxy-> catalogProductList () вам необходимо предоставить параметры в ассоциативном массиве (как вы это делали с $ proxy-> login ()).*

Пожалуйста, попробуйте это:

<code><?php

try {
    error_reporting(E_ALL | E_STRICT);
    ini_set('display_errors', 1);
    $proxy = new SoapClient('http://127.0.0.1/Magento1620/index.php/api/v2_soap?wsdl', array('trace' => 1, 'connection_timeout' => 120));

    $session = $proxy->login(array(
        'username' => "zzc000",
        'apiKey' => "zzc000"
    ));
    $sessionId = $session->result;

    $filters = array(
       'sku' => array('like'=>'zol%')
    );

    $products = $proxy->catalogProductList(array("sessionId" => $sessionId, "filters" => $filters));

    echo '<h1>Result</h1>';
    echo '<pre>';
    var_dump($products);
    echo '
';} catch (Exception $ e) {echo '

Error

';echo '

'.$ e-> getMessage ().'

';}

То же самое относится и к другим вызовам методов для API SOAP v2, совместимого с WS-I.

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