discuz绑定微信公众号后,微信扫二维码登录转发实现

由于微信公众号用Java开发,故discuz绑定微信公众号之后,在discuz首页进行微信二维码扫码登录时,微信处理的结果会到tomcat里面,不能转接到discuz,实现不了扫描登录。

由于本人没学过php,所以瞎折腾了很久。

1、在微信公众号平台里面,把原先设置的公众号token和url换成discuz管理员界面里微信设置中提供的token和url,这样的目的就能把微信扫码登入直接给discuz自己处理,而不经过tomcat,这样实现的情况下discuz微信用户对应的openid和微信公众号的openid是不一致。但是没事,因为这样做的目的是为了获取discuz登入扫码的数据,为下文的数据模拟做铺垫。

2、因为要获取数据,所以我就在本地部署了php环境,安装了Zend Studio编辑工具。因为没学过Php,里面流程怎么跑的还是一头雾水,用了很蠢的办法来跟踪,”file_put_contents('log.txt','111- ',FILE_APPEND);”,将信息输出到discuz项目下的log.txt文件里。接着用微信扫描discuz首页的二维码,最终跟踪到扫码成功返回的数据在wechat.lib.class.php下的accessDataPush()方法里,file_put_contents('log.txt','--0000 '.$postdata.'  0000---',FILE_APPEND);打印出扫码成功后要转发给discuz的数据

<xml>
<Ticket><![CDATA[gQH48DoAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL21UOFkwMGJsTVFGSWxlQVUtaEVPAAIEmfhhVwMECAcAAA==]]></Ticket>
<FromUserName><![CDATA[oys2GxKWgpvePu3fT69KhMBaDSqU]]></FromUserName>
<EventKey><![CDATA[189566]]></EventKey>
<Event><![CDATA[SCAN]]></Event>
<CreateTime>1466038431</CreateTime>
<ToUserName><![CDATA[gh_f3612806ef7d]]></ToUserName>
<MsgType><![CDATA[event]]></MsgType>
</xml>

3、利用FireFox火狐浏览器的RESTClient插件来模拟数据发送,目的url为discuz管理界面微信设置里的url。以post发送的时候,发现返回结果是404。在wechat.lib.class.php里面恰好有个404,对应的是signature验证失败导致的,所以注释_checkSignature()相关的处理代码。


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值