首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用soap更改magento密码

使用soap更改magento密码
EN

Stack Overflow用户
提问于 2014-08-22 16:53:46
回答 1查看 1.6K关注 0票数 1

我正在连接另一个应用程序,以使用SOAP在Magento 1.9中创建和更新客户。因为我希望密码保持完全相同,客户将被迫在另一个应用程序中更改密码。更改后,我希望通过SOAP连接在Magento中更改密码,但我无法使其正常工作。在请求之后,我得到了"bool(true)“,但似乎什么都没有改变。

是我做错了什么,还是Magento有限制。

我的代码:

代码语言:javascript
运行
复制
<?php
//ensure you are getting error output for debug
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors',1);

$client = new SoapClient('http://www.mymagentosite.com/api/v2_soap/?wsdl');

// If some stuff requires api authentification,
// then get a session token
$session = $client->login('apiuser', 'apikey');

// CustomerID search
$params = array('complex_filter'=>
    array(
        array('key'=>'email','value'=>array('key' =>'eq','value' => $email)),

    ),

);
$result = $client->customerCustomerList($session, $params);

var_dump ($result);

$customerID = $result[0]->customer_id;
// echo $customerID;

// Update Customer
$result2 = $client->customerCustomerUpdate($session, $customerID, array('password' => 'newpassword'));

var_dump ($result2);
EN

回答 1

Stack Overflow用户

发布于 2015-07-30 18:19:36

这很奇怪。文档(和wsdl)希望您传递password参数。我试着在代码中进行研究(Magento 1.7系列)。在设置通过接口调用传入的值之前,在app/code/core/Mage/Customer/Model/Customer/Api.php文件的对应update()函数中,有以下代码:

代码语言:javascript
运行
复制
foreach ($this->getAllowedAttributes($customer) as $attributeCode=>$attribute) {
        if (isset($customerData[$attributeCode])) {
            $customer->setData($attributeCode, $customerData[$attributeCode]);
        }   
    }

因此,我尝试打印允许的属性,但password不存在。存在的是password_hash,但该字段不存在于文档中,更重要的是,它不存在于wsdl中。

为了进行测试,我尝试将密码的md5值作为password参数传递,然后,在update函数中调用的_prepareData函数中,我添加了下面这行代码:

代码语言:javascript
运行
复制
$data['password_hash'] = $data['password'];

结果是成功更改了密码,我可以使用新密码登录。

现在,当然这不是继续下去的方式。首先,我要更改一个核心文件。然后,可能可以更新允许的属性列表,添加password属性,但您必须记住构建密码的md5版本,而不是“明文”版本,并在任何情况下将其重命名为password_hash。另一种解决方案是自定义(同样不是在core/中)与复杂类型customerCustomerEntityToCreate相关的wsdl参数,添加password_hash

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25443119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档