私はカール使用してMagentoののSOAPのWebサービスへの呼び出しを行う場合には、セッションIDを返します。PHP Magentoの石鹸ログイン呼び出しが戻る空のセッションID
コール:
curl -vkS --data-binary @login.xml https://environment.dev/index.php/api/v2_soap/index
マイlogin.xml:
を<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<loginParam xmlns="urn:Magento">
<username xmlns="">test</username>
<apiKey xmlns="">123456</apiKey>
</loginParam>
</soap:Body>
</soap:Envelope>
結果:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:Magento">
<SOAP-ENV:Body>
<ns1:loginResponseParam>
<result>da8a07fb2b28edfdcfd1e6436aba6a8a</result>
</ns1:loginResponseParam>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
の結果の文字列はセッションIDです。今
、私はプログラム的にセッションIDを取得しようとした場合:
$login = Mage::getModel('api/user')->login('test', '123456');
そして結果var_dump($login)
:NULL
あるsessid
以外満たさすべてのデータを持っている
protected $_data => array(13) {
'user_id' =>
string(1) "3"
'firstname' =>
string(4) "test"
'lastname' =>
string(4) "test"
'email' =>
string(17) "[email protected]"
'username' =>
string(4) "test"
'api_key' =>
string(65) "54a919b24f9bbaba5aa6b93c22705b7c:l53rKBtY57W42aCMbXfUi9SPNNIiLf4G"
'created' =>
string(19) "2017-06-06 13:08:36"
'modified' =>
string(19) "2017-06-06 13:10:53"
'lognum' =>
string(2) "16"
'reload_acl_flag' =>
string(1) "0"
'is_active' =>
string(1) "1"
'sessid' =>
NULL
'logdate' =>
string(19) "2017-06-08 14:25:15"
。
なぜカールで動作するのですが、マゼンタのメソッド呼び出しでは動作しないというヒント?
いいね!ありがとう! =) – deChristo