在ShopNC中实现微信登录,使用Detector来检测浏览器相关的流程

1、在微信客户端中实现微信登录,弹出二维码扫描层,应该取消,直接跳转至授权页面才是,如图1:

在微信客户端中实现微信登录,弹出二维码扫描层

2、在移动浏览器中,弹出二维码扫描层,扫描之后报错,如图2:

在移动浏览器中,弹出二维码扫描层,扫描之后报错

3、后台 – 平台 – 会员 – 账号同步 – 微信公众平台,如图3:
执行SQL:
INSERT INTO `trade_setting`(`name`, `value`) VALUES (‘mp_weixin_isuse’,’1′)
INSERT INTO `trade_setting`(`name`, `value`) VALUES (‘mp_weixin_appid’,’wx5c318e640e87f7e8′)
INSERT INTO `trade_setting`(`name`, `value`) VALUES (‘mp_weixin_secret’,’1f436a3aa0dbfdac1c8e1c8f72d2fbec’)

后台 – 平台 – 会员 – 账号同步 – 微信公众平台

4、使用Detector来检测浏览器,网址:http://detector.dmolsen.com/ ,其是可以自动适应新的浏览器、版本和设备对每一个浏览器使用独特的用户代理字符,基于Modernizr实现,如图4:

使用Detector来检测浏览器,网址:http://detector.dmolsen.com/

5、复制目录lib/Detector至core/framework/Detector,如图5:

且设置目录:user-agents/core/, user-agents/extended/, config 为可写;

复制目录lib/Detector至core/framework/Detector

6、规则制定如下,控制器、模板文件中代码如图6、7:

(1)pc、tablet:弹出二维码扫描层(此处微信开放平台,网站应用);

(2)mobile浏览器:隐藏;

(3)mobile客户端:直接跳转至授权页面(此处微信公众平台,服务号);

36kr.com:移动端暂不支持微信登录,请使用绑定的手机或邮箱进行登录。
dianping.com:隐藏微信登录按钮(采用此方案);

控制器文件中代码

模板文件中代码

7、在mobile客户端下,直接跳转至授权页面的代码如图8:

在mobile客户端下,直接跳转至授权页面的代码

8、在mobile客户端下,直接跳转至授权页面的网页,如图9:

在mobile客户端下,直接跳转至授权页面的网页

9、提交SVN时报错,如图10:

the working copy at

is too old(format 10) to work with client version ‘1.8.10(r1615264)’ (expects format 31).you need upgrade the working copy first.

the working copy at is too old(format 10) to work with client version ‘1.8.10(r1615264)’ (expects format 31)

10、删除core/framework/Detector下的所有.svn目录,以防止SVN冲突,提交成功,如图11、12:

删除core/framework/Detector下的所有.svn目录,以防止SVN冲突

SVN提交成功

11、在Edge浏览器下,报错,如图13:

SCRIPT16389: 未指明的错误。

在Edge浏览器下,报错:SCRIPT16389: 未指明的错误。

12、打开网址:http://detector.dmolsen.com/ ,发现也有此错误,如图14:

打开网址:http://detector.dmolsen.com/ ,发现也有此错误

13、解决方案,便是基于$_SERVER[‘HTTP_USER_AGENT’],如果为IE10、IE11、Edge,则不使用Detector来检测浏览器,如图15:

基于$_SERVER[‘HTTP_USER_AGENT’],如果为IE10、IE11、Edge,则不使用Detector来检测浏览器

永夜