1.如果页面跳转的URL不是本weiphp应用的模块的话,只会触发微信服务器通过事件推送的形式通知到开发者在开发者中心处设置的服务器地址,从而开发者可以获取到该信息。
如下是微信post给开发者中心设置的服务器地址的URL,其中会带有
$_GET参数[signature],[timestamp],[nonce]。
[ 2016-02-21T17:33:54+08:00 ] 127.0.0.1 /weiphp/index.php?s=/home/weixin/index/id/1.html&signature=6194f1753068381d51d5318c6f09ec8deb937bbd×tamp=1456047235&nonce=1871791058
通过php://input获取原始数据。
<xml><ToUserName><![CDATA[gh_ca0a76200d18]]></ToUserName>
<FromUserName><![CDATA[oVHvEwC3PC3-qv1GhPmf918QEUsU]]></FromUserName>
<CreateTime>1456047235</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[VIEW]]></Event>
<EventKey><![CDATA[http://www.gainwinsoft.com]]></EventKey>
<MenuId>401665081</MenuId>
</xml>
然后执行控制器Application/Home/Controller/WeixinController.index()。index里回复数据后调用exit()退出。reply里解析微信服务器发送过来的数据,遍历Addons里看有没有匹配的Model,如果有的话,执行匹配的Addons/XXXX/Model/WeixinAddonModel。(每个微信插件的模型都会有一个WeixinAddonModel.class.php文件,这是这个插件之所以存在的灵魂文件!因为它是负责与微信交互的窗口。一般来说,微信请求WeiPHP时,在Application/Home/Controller/WeixinController.class.php这个微信交互中心里进行数据加工和功能分发,其中数据加工就是把微信传过来的xml转成数组(数组变量为$dataArr),并获取相关的关键词数据(如果有关键词的话,其数组变量为$keywordArr);而功能分发就是根据相关规则(见下图的分发规则)找到相应的插件,最后加载这个插件下面的WeixinAddonModel.class.php文件,并调用里面的replay方法进行业务需要的加工处理)如果没有的话,就扔给Addons/Robot/Model/WeixinAddonModel的,执行Robot的reply方法。方法里面再调用WeixinModel基类的reply方法,回应微信服务器过来的post请求的回复。
1.如果页面跳转的URL是本weiphp应用的模块的话,会根据这个URL,先触发URL要跳转到的那个模块的Controller。
[ 2016-02-21T18:04:13+08:00 ] 127.0.0.1 /weiphp/index.php?s=/addon/WeiSite/WeiSite/index/publicid/1.html
然后再触发微信服务器通过事件的post请求(同第一步)。
微信服务器Post过来的请求,给开发者中心处设置的服务器地址,其实相当于微信端是client。我们自己的服务器就变成了要响应post来做出相应的处理。一般的web开发,client端submit了一段数据到服务器后,服务器要么ajaxReturn一个json数据还给client,要么display一个新的模板显示。WeixinModel其实就是把微信各消息类型需要的XML数据包返回给微信服务器,然后微信才能显示到微信画面里。(直接echo)
具体XML数据包格式参照微信公众号开发者文档。
相关推荐
weiphp
WeiPHP2.0 + WeiPHP3.0 两个版本的初始压缩包(官方纯净版) 压缩包内包括两个压缩文件,一个是weiphp2.0的版本,一个是weiphp3.0的版本 WeiPHP2.0说明: 本包为2.0稳定版本 最低系统要求: PHP 5.3.0+ MySQL 5.0+ ...
weiphp的目的是最大化的简化微信开发的流程,使用开发者能把最好的精力放到微信具体业务开发,并能以最快的时间完成。把一些常规而频繁的工作交由weiphp来处理即可。 为此weiphp提供了详细的二次开发文档,关键代码...
weiphp微信开发开源框架
4. 良好的扩展性:WeiPhp框架支持自定义类和功能扩展,这使得开发者可以根据自己的需求来扩展框架的功能。 二、使用WeiPhp框架进行后台开发 1. 环境配置:在使用WeiPhp框架之前,需要先配置好开发环境。这包括安装...
weiphp的目的是最大化的简化微信开发的流程,使用开发者能把最好的精力放到微信具体业务开发,并能以最快的时间完成。把一些常规而频繁的工作交由weiphp来处理即可。为此weiphp提供了详细的二次开发文档,关键代码里...
weiphp3.0_892-内测包 建议不要商用,只用测试
weiphp安装包,微信公众号开发包
weiphp是一个开源,高效,简洁的微信开发平台.doc
Weiphp5.0 CMS审计之EXP表达式注入漏洞 Weiphp5.0 CMS是中国知名的开源内容管理系统,然而,最近发现了一个EXP表达式注入漏洞,该漏洞存在于Weiphp5.0 CMS的Index控制器的bind_follow方法中。该方法使用了ThinkPHP...
weiphp是一个开源,高效,简洁的微信开发平台,它是基于oneThink这个简单而强大的内容管理框架实现的!内有二次开发手册~
基于新浪SAE云平台weiphp2.0,不需要修改代码,即可使用
强大的微信开源后台框架,在此基础上省去繁琐的微信对接
weiphp后台使用设置 实现在用户授权时候显示公众号的名字以及分享使用该...8:打开基础插件-自定义菜单-新增 如果新增成功, 则保存成功,如果失败, 他会自动报响应的错误,例如: 9如成功,就会显示绿色框框提示成功, 然后
首先,WeiPhp框架的轻量级特点,有助于提升后台处理请求的效率,同时保证了代码的清晰易读,这在开发过程中尤其重要,能够有效地加快开发进度,减少bug的发生。其次,WeiPhp提供了很多针对微信小程序开发的便利工具...
weiphp2.0.1202 商业级别weiphp开源插件
WeiPHP是一个不错的开源的微信公众平台开发框架(已经含有大部分功能的实现了),可以在其基础上进行插件开发,设计自己的业务模块。 官方论坛: http://bbs.weiphp.cn/forum.php 由于SAE环境下没有文件的本地写...
6. **扩展性**:WeiPHP支持插件机制,可以轻松添加自定义功能,满足不同项目需求。 现在,我们以校园资讯发布平台为例,看看如何利用WeiPHP框架进行开发: 1. **项目初始化**:首先,你需要在服务器上安装并配置好...
本项目是一款基于ThinkPHP6.0框架重构的WeiPHP5.1版本设计源码,包含5628个文件,涵盖1906个PNG图片、1646个PHP...相较于WeiPHP5.0版本,该系统在功能上保持一致,但底层框架已升级至ThinkPHP6.0,以提升性能和安全性。
weiphp是一个开源,高效,简洁的微信开发平台,它是基于oneThink这个简单而强大的内容管理框架实现的。