您的位置:首页 > 运维架构

支持ECSHOP 2.73手机客户端

2015-12-10 20:33 399 查看
APPCAN非常强大,开发ECSHOP非常有发展,让各位对安卓入门级别的菜鸟都能随便开发ECSHOP手机客户端,但是从去年APPCAN最后一次升级以来,已经有一年没有更新了,大家都是ECSHOP 2.73版本的都不支持,其实ECSHOP27和ECSHOP2.72版本基本都是一样的,所以要修改支持2.73很简单。

首先在安装的时候打开plugins\zywx\check.php这个文件,找到里面$current_version_is_use = $current_version == 'v2.7.2' ? 'can_use':'no_use'; 只要修改里面的2.73就能继续安装了。当然这只是第一步。。。

在我们顺利安装了服务端和生成手机客户端之后,我们在手机里安装进行登陆,你是不是发现之前的用户都登陆不了,老是提示密码错误,几经测试,原来新注册的用户可以登陆,我就断定肯定是密码加密的方式不一样,于是我查看代码,果然,2.73版本的加密方法跟2.72的密码算法不一样,2.73其实是利用了两种加密算法,也就是兼容了之前老算法,因此,只要我们将手机服务端的那2个登陆相关的算法修改一下即可,终于,终于,终于可以顺利登陆两种密码算法的用户了!!!!

对于那些不会安卓开发的新手,我告诉你一个最实用最简单的方法就能开发你自己的一些功能和界面,会玩安卓手机的,一般都知道APK文件其实就是ZIP文件格式,那么只要我们将APK文件修改ZIP进行解压,然后打开里面\assets\widget的文件件,哈哈,这里都是HTML文件,很熟悉吧,相信各位站长都知道怎么做了吧,欣喜若狂,赶快把里面的文件尽情的开发修改吧,里面的风格样式界面你想怎么弄就怎么弄。。。

你修改好了文件,那么怎么办呢,肯定不能直接打包ZIP修改APK就能安装的,说到这里,我们只要随便弄个签名的软件签名就可以了,自此,你已经是一个ECSHOP手机客户端的中级开发者了,祝贺您!

发现很多朋友问我不知道怎么修改,那我还是送佛送到西,贴出具体需要修改的地方及代码吧,

由于涉及修改的地方比较多,我也懒得发文件上传了,还是一一罗列出来:

1.打开zywx\rpc\includes\ecshop.php

找到$this->ec_salt = 'ec_salt'; 在68行,增加这个,

2.大概在109行,

$sql = "SELECT user_id, password,salt" .

" FROM " . $this->table($this->user_table).

" WHERE user_name='$post_username'";

$row = $this->db->getRow($sql);

将上面的修改为

$sql = "SELECT user_id, password, salt,ec_salt " .

" FROM " . $this->table($this->user_table).

" WHERE user_name='$post_username'";

$row = $this->db->getRow($sql);

$ec_salt=$row['ec_salt'];

3.大概在127行,增加下面这段代码

if(empty($ec_salt))

{

$ec_salt=rand(1,9999);

$new_password=md5(md5($password).$ec_salt);

$sql = "UPDATE ".$this->table($this->user_table)."SET password= '" .$new_password."',ec_salt='".$ec_s

alt."'".

" WHERE user_name='$post_username'";

$this->db->query($sql);

}

4. 打开\zywx\rpc\includes\integrate.php

大概在655行,找到下面这段代码

return $cfg['md5password'];

替换为

if(!empty($cfg['ec_salt']))

{

return md5($cfg['md5password'].$cfg['ec_salt']);

}

else

{

return $cfg['md5password'];

}

5. 打开zywx\rpc\includes\ucenter.php

大概在135行,找到下面这段

$user_exist = $this->db->getOne("SELECT user_id FROM " .

第2/4页

$GLOBALS['ecs']->table("users") . " WHERE user_name='$username' AND password = '" . MD5($passwo

rd) ."'");

$name_exist = $this->db->getOne("SELECT user_id FROM " . $GLOBALS['ecs']->table("users") . " WHER

E user_name='$username'");

替换为

//检查用户是否存在,不存在直接放入用户表

$result = $this->db->getRow("SELECT user_id,ec_salt FROM " . $GLOBALS['ecs']->table("users") . " WHE

RE user_name='$username'");

$name_exist =$result['user_id'];

if(empty($result['ec_salt']))

{

$user_exist = $this->db->getOne("SELECT user_id FROM " . $GLOBALS['ecs']->table("users") . " WHERE

user_name='$username' AND password = '" . MD5($password) ."'");

if(!empty($user_exist))

{ $ec_salt=rand(1,9999); $this->db->query('UPDATE ' . $GLOBALS['ecs']->table("users") . "SET `passwor

d`='".MD5(MD5($password). $ec_salt)."',`ec_salt`='". $ec_salt."' WHERE user_id = '" . $uid . "'");

}

}

else {

$user_exist = $this->db->getOne("SELECT user_id FROM " . $GLOBALS['ecs']->table("users") . " WHEREuser_name='$username' AND password = '" . MD5(MD5($password). $result['ec_salt'])."'"); }

6. 在166行增加下面这段

if(empty($result['ec_salt']))

{

$result['ec_salt']=0;

}

好了,修改好了就成功了,你试试安卓手机客户端,可以正常登陆所有用户了吧,哈哈,恭喜恭喜
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: