大齐玩转微信公众账号系列(四):微信公众账号开发入门(原理)
本系列属作者原创,请尊重作者的劳动成果,转载请注明出处,谢谢!
我的博客地址:http://blog.csdn.net/qicong7
免费的专业微信开发教程&源码:www.weixinpy.com
前3篇文字主要介绍了通过微信公众平台中的微信公众账号如何添加消息、菜单等;描述的比较简单,相信很多朋友看着觉得太基础;但是只有了解微信公众平台提供的基本功能,我们再进行公众账号接口进行开发才能更得心应手;
从这篇文章开始,我们就开始详细的介绍微信开发者,以及提供一些设计思路、开发源码等。今天主要介绍开发入门一些知识。
一、微信公众账号消息原理图
如果一个用户关注了公众账号,那么当给公众账号发送消息的时候,公众账号就会回复一条消息,原理如上图,这个是通过微信公众平台服务器实现的,对于收到的消息的详情页面也是由微信公众平台提供的;
详细的流程是这样的:
1、当用户给公众账号发送一条消息的时候,微信公众平台会根据公众账号定义的消息规则回复用户一条消息;
2、用户接收到消息后,查看消息详情,详情页面由微信公众平台服务器提供;
那么开发者公众账号的原理是什么样的呢?
二、微信公众账号开发者原理图
从上图可以看出,对于开发者账号来说,消息的回复、消息详情页面都是由开发者服务器提供的;
详细的流程是这样的:
1、当用户给公众账号发送一条消息的时候,微信公众平台会判断该账号是否是开发者账号,并且是否开通了开发者模式,
2、如果不是开发者账号或者使用的编辑模式,那么微信公众平台就会回复用户一条消息;消息的详情页面也是由微信公众平台提供;
3、如果是开发者账号并开通了开发者模式,那么微信公众平台会把用户发送过来的消息转发给开发者服务器url(成为开发者时需要提供url和tocken);开发者服务器这时候根据用户发送的消息,准备消息回复给用户,也就是说开发者可以根据自己的业务准备消息,可以是图文、文本、图片、视频等等格式,也可以是多条消息;消息准备完毕后,将消息发送给微信公众平台,微信公众平台再返回给用户;用户收到消息后,查看消息详情的时候,消息详情页面由开发者服务器提供;
三、成为开发者账号需要什么?
这也是很多朋友经常问的,现在在这里做一下解释:
从上图可以看出如果成为开发者账号需要有自己的服务器,那么还需要哪些必须的条件呢?
1、开发者服务器;
此服务器要求可以在外网访问到,主要是微信公众平台需要调用开发者服务器的url,
2、开发者当然要会编码(IT从业人员);
针对用户发送的消息,公众账号需要准备回复消息,此消息需要通过调用微信公众平台的接口实现,所以开发者需要懂编程技术,调用微信公众平台消息接口,回复给用户;
3、部属开发者账号应用;
此应用主要是和微信公众接口对接,实现消息接收、回复、菜单创建、获取订阅用户信息、auth2.0认证、支付等等;并且此应用需要提供一个网页,展现消息的详细信息;
四、URL和Tocken
关于url和tocken,很多朋友都问这个到底是什么?
url:开发者服务器应用提供的一个网址,微信公众平台可以访问到这个网址,这样微信公众平台服务器和开发者服务器才可以通信;此url必须是外网可以访问到;
tocken:我们只给微信公众平台提供了一个url还是不够的,还需要一个标记(tocken),此tocken和url代表唯一的公众账号;
当我们提供给了微信公众平台url和tocken之后,公众平台会请求这个url,并发送一些数据(echostr、signature、timestamp、nonce),开发者服务器收到微信公众平台发送的数据后,进行处理加密核对数据(signature),然后将echostr发送给微信平台公众,微信公众平台进行校验,如果正确,那么就成功成为开发者了;
关于url和tocken的详细设计,我们下一篇进行详细描述;敬请期待