Magento WS-I 兼容 v2 API WSDL Web service SOAP-ERROR: 编码: 对象没有'sessionId'属性



我正在WS-I兼容模式中使用Magento v2 web服务

当尝试列出产品时,我得到了异常

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);

请帮忙,谢谢

WS-I模式中,在使用API方面存在一些细微差异

  1. $proxy->login()的结果是一个对象。您需要提取sessionId
  2. 调用$proxy->catalogProductList()时,需要在关联数组中提供参数(就像使用$proxy->login()一样)

请尝试这个:

<?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 '</pre>';
} catch (Exception $e) {
    echo '<h1>Error</h1>';
    echo '<p>' . $e->getMessage() . '</p>';
}

这同样适用于对符合WS-I的v2 SOAP API的其他方法调用。

最新更新