【问题标题】:call to magento soap api expires immediately对 magento soap api 的调用立即过期
【发布时间】:2012-04-13 02:46:37
【问题描述】:

我正在尝试调用 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();

有人知道问题可能是什么吗?

【问题讨论】:

  • 检查您的服务器时间设置。确保其设置正确且位于正确的时区。
  • 请尝试:gadgets.in/api/v2_soap/?wsdl';而不是 $url = 'magentourl/api/soap/?wsdl'; ?> 它可以帮助你。并查看stackoverflow.com/questions/14746359/…
  • @jw01 你解决过这个问题吗?
  • 服务器或客户端的时区无关紧要。
  • @baash05 你能在同一个问题中解决它吗

标签: api magento session soap


【解决方案1】:

也许你应该尝试截断mysql数据库中的api_session表

【讨论】:

  • 嗯,api_session 表好像总是空的。也许这就是问题所在?
【解决方案2】:

如果您在请求中发送标头,则会发生这种情况,请检查标头是否已发送。

【讨论】:

  • 请注意,这对我来说是错误的原因,但问题不是 HTTP 标头。问题是您的 SOAP 请求中是否有标头,例如,Visual Studio 在调试模式中添加了一个标头,如下所示: schemas.microsoft.com/vstudio/diagnostics/…> that made my request failed
猜你喜欢
  • 2013-01-17
  • 2020-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多