我是Magento Web服務的新手,必須對其進行擴展。 Webservice shell能夠登錄客戶,將會話cookie返回給我,以便我可以重定向到一個文件,該文件再次設置cookie,重定向我,我可以看到我的購物車並繼續在Magento商店結帳。PHP - > SOAP - > Magento Webservice:獲取由Magento設置的Cookie
問題: Magento創建一個cookie(包含會話ID或任何其他內容,我試圖設置這個cookie手冊,他們即時登錄),而不是客戶登錄時設置會話。 我試過現在需要幾個小時才能得到這個由magento在我的magento網絡服務中設置的cookie。看來cookie不會設置我的呼喚
$session = Mage::getSingleton('customer/session');
return $session->getCookie()->get('frontend');
我的繼承人完整的代碼: Magento的web服務API:
<?php
class Customapi_Model_Core_Api
{
public function __construct()
{
}
public function checkout($user, $cart)
{
$ret['cookie'] = $this->login($user);
//$coreCookie = Mage::getSingleton('core/cookie');
//$ret['cookie'] = $_COOKIE['frontend'];
return $ret;
}
function login($user)
{
Mage::getSingleton('core/session', array('name'=>'frontend'));
$session = Mage::getSingleton('customer/session');
try
{
$session->loginById($user['id']);
}
catch (Exception $e)
{
}
return $session->getCookie()->get('frontend');
}
}
?>
我的繼承人API調用在PHP中:
<?php
$teambook_path = 'http://localhost/magento/';
$soap = new SoapClient('http://localhost/magento/api/?wsdl');
$soap->startSession();
$sessionId = $soap->login('ApiUser', 'ApiKey');
$userSession = $soap->call(
$sessionId,
'customapi.checkout',
array(
array(
'id' => 1,
'username' => '[email protected]',
'password' => '***'
),
array(
)
)
);
echo '<pre>';
var_dump($userSession)."\n";
if(isset($userSession['sid']))
echo '<a href="'.$teambook_path.'session.php?sid='.$userSession['sid'].'" target="_blank">'.$userSession['sid'].'</a>'."\n";
echo '</pre>';
$soap->endSession($sessionId);
?>
謝謝爲每一個幫助! MRU
對不起,我正在寫一個答案,但評論框拒絕了我寫的多...字母。
我試過你發佈的兩個代碼,所有我得到的是一個空數組或布爾假。 我寫了一個靜態函數:
private static $cookie = array();
public static function cookie($key, $value)
{
if($key == 'frontend') {
self::$cookie['key'] = $key;
self::$cookie['value'] = $value;
}
}
,被稱作Mage_Core_Model_Session_Abstract_Varien ::開始,我得到了前端cookie值:
Customapi_Model_Core_Api::cookie($sessionName, $this->getSessionId());
在管線125
但是,didnt解決我的基本問題: 在Api調用中創建的會話無法恢復,儘管它設置爲正確的值。
感謝您的幫助!
你好@MRU,我是新的magento與同樣的任務,請你指導我如何創建web服務的客戶登錄magento一步一步? – Deep 2015-04-24 14:22:12