微信开发学习日记(八):7步看懂weiphp插件机制,核心目标是响应微信请求

又经过了几个小时的梳理、回顾,截至目前,终于对weiphp这个框架的机制搞明白了些。想要完全明白,自然还需要大把的时间。
第1步:
   配置微信公众号,http://weiphp.jiutianniao.com/ ... .html
  从上面这个配置可以看出,微信请求呗weiphp的入口文件index.php接收了,可能会被/home/weixin/index/这个action响应。
第2步:
   index.php入口文件,校验了是否是微信请求。
  /**
* 微信接入验证
* 在入口进行验证而不是放到框架里验证,主要是解决验证URL超时的问题
*/
if (! empty ( $_GET [‘echostr‘] ) && ! empty ( $_GET ["signature"] ) && ! empty ( $_GET ["nonce"] )) {
}
第3步:
  入口已经验证过了,即不是“第一次”  ,请求会被分发到home模块的WeixinController的index这个方法。
第4步:
  在index方法中, 首先获得的就是token、openid、粉丝等信息。
  最关键的处理是,回复数据。
  // 回复数据
$this->reply ( $data, $weixin );
第5步:
   在reply函数中, 就是寻找合适的插件进行消息响应。
   涉及到的问题有,安装了哪些插件、哪些启用了、哪些有权限。
    准备了可用插件之后,  根据消息的类型,事件、地理位置、订阅,寻找合适的插件,比如如果有location事件,插件就执行对应的回调方法。
    还有的情况是,消息。
   根据关键字,回复消息。
   这个时候,问题就变成了 插件定位问题。
   a.通过插件标识名、插件名或者自定义关键词来定位处理的插件
   b.通过精准关键词来定位处理的插件 token=0是插件安装时初始化的模糊关键词,所有公众号都可以用
   c.通过模糊关键词来定位处理的插件
   d.最终也无法定位到插件,终止操作
    疑问:通过代码,发现location等事件,有很多插件都会处理这个事件。而消息,只会找到一个插件。是这么个情况么?
第6步:
    插件的weixinmodel。
    /**
* Vote模型
*/
class WeixinAddonModel extends WeixinModel {
function reply($dataArr, $keywordArr = array()) {
}
  微信插件,基本都会有个WeixinModel类,如果有必要,会响应微信的请求。
第7步:
    URL响应问题。
    这个地方一直有疑惑,如果所谓的插件机制,就是根据用户发送到关键词,让不同的类-插件去响应,这也太没有“含金量” 了吧。难道微信的核心玩法就是这个东东么?
   class VoteController extends AddonsController {
   }
   每个插件,可能会有Controller,响应URL请求。比如,后台管理和前台管理(不会直接和微信进行交互) ,会有一些管理方法,设置信息之类的。
  另外,有些在weixinModel的reply 方法中,可能包含了插件内部定义的url,这个感觉才真的很有价值。
  总结:weiphp这个微信框架,简要总结起来就4点。
1.weiphp基于Thinkphp和Onethink。疑问的是,weiphp有没有对Thinkphp和Onethink的核心代码有改动。如果有改动的话,更多的应该是对Onethink改动。
2.weiphp的核心入口,就是index.php和/home/weixin/index方法,验证和响应微信请求。
3. 插件机制,感觉就是根据关键字找插件,让插件响应请求。
4.后台管理系统、用户端的前端管理、插件机制,都是为了微信框架的核心目标“响应微信请求”。
  这才是最最关键的地方呀。

时间: 2024-08-11 03:25:30

微信开发学习日记(八):7步看懂weiphp插件机制,核心目标是响应微信请求的相关文章

微信开发学习日记(六):weiphp框架

最近重点在看weiphp这个开源的第三方微信公众平台框架. 在网上找微信资料,找到了这个.很早之前,就初步学习了Thinkphp和Onethink2个开源框架,当看到weiphp是用这2个框架开发的时候,我就更愿意去学习,毕竟学习成本很低了. weiphp,目前开源版本,感觉没有重点维护了,bug不少.遇到bug,去官方论坛找找答案,很多热心网友都分享了解决办法. 但是,开源版本还是很不错的.搭建了微信平台,并且有很多现成的插件,文档还是有的. ------------------------ 

微信开发学习日记(二):3个案例

上次是调通了"消息来自微信请求"一个请求验证接口.    今天下午,正式进军微信开发,完成了3个案例的demo,测试通过. 上次,提到读了5本书,4本PHP描述的,一本Java描述的.个人专注Java开发7年了,更倾向于用Java,当然PHP也要立即着手深入学习了.今天好几个PHP的外包项目,感觉太麻烦,都拒绝了. Java的书,柳峰写的那本就非常好,至少可以用Good描述,Perfect的话,要看是否还有更多更优秀Java语言相关的微信书籍. 那本书的源码,网上都有,下载下来之后,全

微信开发学习日记(三):6点经验

1.token验证和微信请求响应token验证,用get方法. 微信请求入口,用psot方法. 一个微信公众号或者轻应用的入口,就是一个url,同一个url分为get和post. get的时候,4个参数都不为空,必须校验. post的时候,也要校验参数,只是不用输出echostr.post的时候,echostr可能为空,是否要检查echostr是否为空呢?既然不用输出,按说不需要校验.2.接口访问凭证access_token每次获得一次凭证,有一定的过期时间.也就是说,可以缓存起来.暂时还没仔细

微信开发学习日记(四):研究和部署开源产品

4月份开始,在深入研究微信开发了.   在了解了更多信息之后,发现微信这玩意,非常简单,也非常复杂. 简单,官方就提供了几十个接口,实现起来很简单嘛.网上有几套Java版的实现,PHP的就更多了. API的实现,Java方面,我是根据柳峰微信开发那本书的代码,经过大量改造弄的,目前实现了一半的接口,剩下的一半,晚点需要的时候再实现.Java的代码,看起来比较清晰. PHP方面,网上也有很多.初步了解了LaneWeChat这个SDK.更多PHP 的SDK还在研究中. 总之,尽可能用别人的,只要别人

微信开发学习日记(七):开源微商城wemall

最近嘛,不是在调研PHP和微信的行情么. 发现,微商城是非常火爆的一个领域,既然业务有搞头,那么技术这一块也有很多选择. 网上发现了wemall这个开源的PHP实现的微商城. 下载了开源版本,PHP后端.Android端. PHP端的,已经部署了,功能是跑通了,但是发现,功能太少了. 商品-订单-用户-支付,算是最精简的购物程序了. 目前只是大致喵了几眼,代码量不算大. ---------------------------------  网上还有很多开源的商城系统,还没有部署看实际的效果. 我

微信开发学习日记(五):weiphp开源框架的bug,公众号权限编辑问题

最近在研究weiphp,总体感觉还行,bug据说还挺多. 这不,我就遇到一个比较严重影响使用的.感觉不太应该出现这么严重的bug啊. weiphp的微信公众号等级,权限增加和编辑bug,看不到权限列表,只能看到"好人"和"环境"2个不正确的插件名称.[系统BUG] 用户权限无法正常显示问题描述:用户->公众号等级->编辑 出现好人与环境两个插件解决办法:后台新增加公众帐号等级错误地址http://****.com/Admin/PublicGroup/ad

微信开发学习总结(二)——微信开发入门

上一篇<微信开发学习总结(一)——微信开发环境搭建>我们已经完成了微信开发的准备工作,准备工作完成之后,就要开始步入正题了. 一.微信公众平台的基本原理 在开始做之前,先简单介绍了微信公众平台的基本原理. 微信服务器就相当于一个转发服务器,终端(手机.Pad等)发起请求至微信服务器,微信服务器然后将请求转发给我们的应用服务器.应用服务器处理完毕后,将响应数据回发给微信服务器,微信服务器再将具体响应信息回复到微信App终端. 通信协议为:HTTP 数据传输格式为:XML 具体的流程如下图所示:

微信开发学习路线

凭借大量活跃用户,微信已成为商家重要营销平台之一.商家为庞大用户群提供定制化服务的迫切需求,吸引了大量开发者/开发商投入到微信公众平台开发中.学习和掌握微信公众平台开发技术,已成为开发者淘金的另一重要选择. 在CSDN站内,拥有大量与微信开发相关的资源,包括技术博客.问题讨论.工具资源等.CSDN邀请多位微信开发专家对这些资源取其精华,按照微信开发的学习路线展示站内优质资源,从基础入门到高级开发,帮你全面掌握微信开发. 这里,我们为您推出的是微信开发的基础入门及高级进阶部分. 基础入门 认识微信

CSDN专家精选,微信开发学习路线大有看头!

1999年成立至今,CSDN积累了丰富的IT专业技术内容.现在,我们邀请了数百位各领域专家,深入挖掘CSDN站内优质资源,按照从基础到高阶的学习路径,逐步打造覆盖热门技术领域的学习路线,并结合CSDN产品家族(视频学院.技术问答.交流社区等),为广大开发者和IT从业人员提供最为便捷与专业的在线学习平台. CSDN推出的开发技术精品资源合集,按照技术领域,分为不同的学习路线.内容涵盖入门.进阶.实战三个阶段,以帮助开发者系统学习掌握专项技术,快速提升开发水平. 截止目前,已经上线了Rust开发技术