对magento soap api的调用立即过期

对magento soap api的调用立即过期,api,magento,session,soap,Api,Magento,Session,Soap,我正在尝试调用MagentoAPI以获取特定客户的详细信息。当我打这个电话时,总是会出现以下错误: PHP Fatal error: Uncaught SoapFault exception: [5] Session expired. Try to relogin. in /var/www/magento-client/magento-customer.php:12 Stack trace: /var/www/magento-client/magento-customer.php(12

我正在尝试调用MagentoAPI以获取特定客户的详细信息。当我打这个电话时,总是会出现以下错误:

PHP Fatal error:  Uncaught SoapFault exception: [5] Session expired. Try to relogin. in     /var/www/magento-client/magento-customer.php:12
Stack trace:
/var/www/magento-client/magento-customer.php(12): SoapClient->__call('call', Array)
/var/www/magento-client/magento-customer.php(12): SoapClient->call('a1a6863c7dadd95...', 'customer.info', 3)
{main}
  thrown in /var/www/magento-client/magento-customer.php on line 12
我在后端有一个有效的api用户,后端的api会话超时设置为999999999999,我甚至尝试在magento核心代码中覆盖isSessionExpired函数,但没有任何效果

代码如下:

$url = 'http://magentourl/api/soap/?wsdl';
$apiUser = "user";
$apiPass = "password";

$proxy = new SoapClient($url);

$sessionId = $proxy->login($apiUser, $apiPass);

// Get new customer info
var_dump($sessionId);
var_dump($proxy->call($sessionId, 'customer.info', 3));
die();

有人知道问题出在哪里吗?

也许您应该尝试截断mysql数据库中的api_会话表

如果您随请求发送头,请检查是否发送了头。

检查您的服务器时间设置。请确保其设置正确并且位于正确的时区。请尝试:它可能会帮助您。请看@jw01您解决过这个问题吗?服务器或客户端的时区应该无关紧要。@baash05如果您能够解决同一问题,那么api_会话表似乎总是空的。也许这就是问题所在?请注意,这是导致我出错的原因,但问题不在于HTTP头。问题在于,如果SOAP请求中有一个标头,例如visual studio会在debugmode中添加一个标头,如下所示: