我正在尝试调用 magento api 来获取特定客户的详细信息。当我执行此调用时,我总是收到以下错误:
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会话超时设置为9999999999999,我什至尝试覆盖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_session 表