LaneWeChat

PHP微信开发框架,高效开发微信公众号应用。简洁而又轻量

GitHub下载 查看手册

流程分析

Visits: 26848 Date: 2014-08-20 17:22:40 Power By 李轩Lane

    

流程分析:


    1、我们给微信服务器发送了一条“hello world”的文本消息。


    2、微信服务器收到我们的消息后,查找该公众账号所配置的服务器信息中的URL(如何安装部分 - 第5步)。


    3、微信服务器向第二步获取的URL发送请求,参数是微信服务器自己拼接过的XML格式。


    4、根目录下的wechat.php,引入了我们的配置文件和所需的类后,进入了类WeChat的方法run()。该类位于core/wechat.lib.php。微信的XML数据此时已经被解析为数组,变量名为$request。


    5、然后,我们进入了类WechatRequest的方法switchType(),根据不同的消息类型,给予不同的响应。比如用户发送文本消息和关注事件,给出的返回应该是不同的。当然,你要给出同样的提示也不能说是错的。


    6、在第5步中的方法中,是一个switch,根据消息类型(此时是文本类型,微信服务器给我的是text)选择了一个处理文本消息的方法,类WechatRequest中的方法text()。该方法的功能是发送文本消息,文本内容是“收到文本”。


    7、此时,我们return了一个数据返回给了上层调用,层层return,就到了我们根目录的下的唯一入口文件wechat.php,此时我们返回的数据被echo出来了。


    8、微信服务器拿到了输出的数据,微信服务器进行分析和处理,将文本发送给了用户的微信客户端。我们就在手机上看到了微信输出的“收到文本”。


    9、流程结束,这就是发送“hello world”,然后返回给用户“收到文本”。


Reply: jujumao On 2015-05-11 17:27:58

二维码扫描关注返回的是查找公众号关注,发送位置弹出位置选择器返回的位置,不知道这两个是不是BUG

回复

Reply: bingo On 2015-07-21 13:37:28

请问 如果我绑定了有赞商城 乐外卖这样的系统 如何再二次开发微信功能了?

回复

Reply: Carlos Huang On 2015-08-07 10:18:58

hello everyone!

回复

Reply: Carlos Huang On 2015-08-07 10:20:59

public static function text($fromusername, $tousername, $content, $funcFlag=0){ $template = <<<XML <xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[%s]]></Content> <FuncFlag>%s</FuncFlag> </xml> XML; return sprintf($template, $fromusername, $tousername, time(), $content, $funcFlag); } 这段代码里为什么在XML里和sprintf里 ---$fromusername, $tousername--对应的位置相反了?为什么?

回复

Add Comment
©2014~time() lanewechat.lanecn.com , All rights reserved. Power By LaneWeChat 微信PHP开发框架.  京ICP备14005030号-1