Magento SOAP 2 API致命错误:程序"登录"不存在

Man*_*noi 5 soap magento-1.7

我得到:致命错误:第832行的/chroot/home/mystore/mystore.com/html/lib/Zend/Soap/Server.php中没有程序'login'

这是错误的来源

$soap = $this->_getSoap();

    ob_start();
    if($setRequestException instanceof Exception) {
        // Send SOAP fault message if we've catched exception
        $soap->fault("Sender", $setRequestException->getMessage());
    } else {
        try {
            $soap->handle($request);
        } catch (Exception $e) {
            $fault = $this->fault($e);
            $soap->fault($fault->faultcode, $fault->faultstring);
Run Code Online (Sandbox Code Playgroud)

有关如何修复错误的任何想法?

小智 13


我有同样的问题,我做的是修复它是去System/Configuration/Magento Core API并将值WS-I Compliance设置为'No'.
我正在使用一个消耗Magento V2 API的WebService,我不记得是否使用此值生成Web引用为"是"; 我正在使用VS 2010使用WS C#.


Tom*_*sek 5

我有类似的问题,我不想更改 API 版本。删除 WSDL 缓存对我有帮助。

运行它以获取 WSDL 缓存文件夹:

php -i | grep soap
Run Code Online (Sandbox Code Playgroud)

从结果可以看到WDSL缓存是开启的,并且存储在/tmp中:

soap
soap.wsdl_cache => 1 => 1
soap.wsdl_cache_dir => /tmp => /tmp
soap.wsdl_cache_enabled => 1 => 1
soap.wsdl_cache_limit => 5 => 5
soap.wsdl_cache_ttl => 86400 => 86400
Run Code Online (Sandbox Code Playgroud)

删除缓存并再次运行它:

sudo rm -rf /tmp/*
Run Code Online (Sandbox Code Playgroud)

我在这篇文章中找到了线索 - http://artur.ejsmont.org/blog/content/php-soap-error-procedure-xxx-not-present