使用customer.update 方法 ,magento 1.7.0.2 soap api bug
来源:互联网 发布:qq号采集软件 编辑:程序博客网 时间:2024/05/22 03:14
使用 magento(1.7.0.2) 的soap api 更新用户信息的时候发现不能够更新用户的密码。
我们首先看一下 如何调用api 更新用户信息(参考自:magentocommerce)
<?php$api_url_v1 = "http://192.168.1.162/trunk/index.php/api/soap/?wsdl";$username = 'moshi';$password = 'moshiPass';//连接 SOAP$client = new SoapClient($api_url_v1);//获取登入后的 Session ID$session_id = $client->login($username, $password);//调用 API 中的方法$result = $client->call( $session_id, 'customer.update', array( 'customerId' => '70', 'customerData' => array('firstname' => 'mo', 'lastname' => 'shi', 'email' => 'moshi@moshi.com', 'group_id' => '10', 'password' => '123456')));var_dump ($result);?>
但是仅仅这么做更新不了用户的密码。
网上的做法:
找到文件
app\code\core\Mage\Customer\Model\Customer\Api.php
修改 update 方法 在 代码
$customer->save(); 上面添加代码:
if(isset($customerData['password'])){ $customer->setPassword($customerData['password']);}
当然最好重写这个模块。
我采用的方法是:
修改 调用api 的 call 函数
把其中的 password 修改为 password_hash 数据即可(当然是加密后的)
我们 可以在 api 调用magento 的update 方法中 找到代码:
foreach ($this->getAllowedAttributes($customer) as $attributeCode=>$attribute) { if (isset($customerData[$attributeCode])) { $customer->setData($attributeCode, $customerData[$attributeCode]); } }
这里其实就是根据 被允许的属性来决定哪些属性的值是可以被修改的。
打印 $attributeCode 发现 并没有password 所以直接传送 password 数据这么做是不可行的。
但是我们可以看到 我们是可以修改 pasword_hash 这个值的
当然修改这个值,你首先需要知道 你的magento 系统 加密方式是怎样的。
假设没有更改过,默认的加密方式是 md5(key+password)
所以 你只要在 调用 $client->call() 之前得出 password_hash 值即可。
0 0
- 使用customer.update 方法 ,magento 1.7.0.2 soap api bug
- magento soap api 列出所有的方法
- Magento WebServices SOAP API 创建和使用
- Magento SOAP API基础知识
- magento soap api 调用
- magento soap api
- magento 添加customer attribute的方法
- magento api新增方法
- Magento SOAP API V2 开放接口修改订单状态
- magento bug
- Create Magento SOAP account
- [原创]Magento customer eav属性静态化
- Magento 给用户customer ,添加一个属性
- magento 出生日期下拉框 customer dob
- 使用 Salesforce.com SOAP API 新建用户
- Magento中直接使用SQL语句 select insert update
- magento soap server 响应慢
- 实践杂谈(2)-- 图解 Google Customer Search API 使用全流程
- apache + mod_cluster 1.2.0 + jboss-5.1.0.GA
- Linux内核的整体架构
- javaMail发送邮件
- js正则表达式总结
- 经验分享之二:单片机懵懂的入门
- 使用customer.update 方法 ,magento 1.7.0.2 soap api bug
- 深入理解Java对象序列化
- hibernate与数据库连接步骤
- CSS3:不可思议的border属性
- 【菜鸟站长成长记】CuteFTP9 初步使用心得
- 黑马程序员——java基础——IO流跟缓冲的理解
- 如何用wget下载整个网站
- struts一个简单的登录拦截
- Linux vmstat命令实战详解