Я давно сталкивался с похожей проблемой.
В моем случае я не сразу понял, что мне нужно использовать учетные данные .htaccess
при создании экземпляра SoapClient
, но передать учетные данные SOAP API методу login
.
Я передавал учетные данные SOAP API и получил похожую ошибку, как и вы.
Вот что у меня сработало (хотя версия 1.3.x. У меня все еще работает на сегодняшний день):
$cProxy = new SoapClient(
URL . 'index.php/api/soap/?wsdl',
array(
'login' => HTACCESS_USER,
'password' => HTACCESS_PASS
)
);
$rSessionId = $cProxy->login(
SOAP_USER,
SOAP_PASS
);
Просто для того, чтобы сыграть, за исключением того, что вы не попали в ловушку опечатки: вы передаете $GLOABLS["magento_api_password"]
в качестве второго параметра методу login
, который должен быть $GLOBALS["magento_api_password"]
.
Наконец, вы передаете 3-й аргумент методу login
, который, я считаю, устарел, поскольку afaik определен только для двух параметров:
<message name="login">
<part name="username" type="xsd:string" />
<part name="apiKey" type="xsd:string" />
</message>