大齐玩转微信公众账号系列(四):微信公众账号开发入门(原理)
本系列属作者原创,请尊重作者的劳动成果,转载请注明出处 , 谢谢!
我的博客地址:[url]http://blog.csdn.net/qicong7[/url]
[b][color=red][size=large]免费的专业微信开发教程&源码: [url]www.weixinpy.com[/url][/size][/color][/b]
前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 的详细设计,我们下一篇进行详细描述;敬请期待
大齐玩转微信公众账号系列(四):微信公众账号开发入门(原理)相关推荐
- 【微信小程序系列】微信小程序超简单教程,基本语法,获取用户基本数据信息,实现对云数据库的增删改查及小程序外部api的引用示例(附源码)
[微信小程序系列]微信小程序超简单教程 小程序项目结构 静态页面的构成 HTML:结构 css:样式 js:行为 小程序 页面全部存放在pages, 而且pages目录只能存放页面 页面包括4个文件, ...
- java微信支付v3系列——6.微信支付查询订单API
目录 java微信支付v3系列--1.微信支付准备工作 java微信支付v3系列--2.微信支付基本配置 java微信支付v3系列--3.订单创建准备操作 java微信支付v3系列--4.创建订单的封 ...
- java微信支付v3系列——1.微信支付准备工作
目录 java微信支付v3系列--1.微信支付准备工作 java微信支付v3系列--2.微信支付基本配置 java微信支付v3系列--3.订单创建准备操作 java微信支付v3系列--4.创建订单的封 ...
- java微信支付v3系列——7.微信支付之申请退款
目录 java微信支付v3系列--1.微信支付准备工作 java微信支付v3系列--2.微信支付基本配置 java微信支付v3系列--3.订单创建准备操作 java微信支付v3系列--4.创建订单的封 ...
- java微信支付v3系列——5.微信支付成功回调
目录 java微信支付v3系列--1.微信支付准备工作 java微信支付v3系列--2.微信支付基本配置 java微信支付v3系列--3.订单创建准备操作 java微信支付v3系列--4.创建订单的封 ...
- 【微信小程序系列】微信小程序连接后端数据库(SSM)案例
[微信小程序系列]微信小程序连接后端数据库(SSM)案例 登录页面 login.wxml <view class="page"><loading hidden=& ...
- java微信支付v3系列——8.微信支付之退款成功回调
目录 java微信支付v3系列--1.微信支付准备工作 java微信支付v3系列--2.微信支付基本配置 java微信支付v3系列--3.订单创建准备操作 java微信支付v3系列--4.创建订单的封 ...
- 【微信小程序系列】微信小程序简单的实现发送订阅信息
[微信小程序系列]微信小程序简单的实现发送订阅信息 项目结构 两个云函数一个页面 获取模板 注:详细内容中的参数很重要,一会要在云函数里用 代码 app.js // app.js App({onLau ...
- 学习成长之路 (初章 三个月建成微信 小程序商城、ArcEngine C# GIS开发入门)
学习 成长之路(初章 ) 三个月 建成微信小程序商城 .ArcEngine C# GIS开发入门 自我简介 先简单介绍一下,我是Domen,是一个彻彻底底的新手 . 大一 大学大一没好好学习,搞这搞那 ...
最新文章
- 创建Cocoapods私有库
- 和sexy_“纸片人”没曲线?Mark这三招,H型身材也能驾驭sexy
- Android开发过程中的部分经验总结
- 浏览器插件:一款解决谷歌浏览器吃内存神器插件,你值得试一试!
- openGL与openGL ES 的区别
- matlab 安装(2018a图解版)
- Linux系统基本操作(二)—设置本地光盘为yum源
- 圈点2006年的省级卫视
- PS制作加载GIF图片教程
- rtmp推流工具_EV录屏推流抖音直播教程——墨涩网
- 随便说说字符集和编码
- gateway笔记TODO
- 2021年最佳Selenium替代品
- 查看/修改git用户名密码
- [RFID]IC卡克隆(四)Proxmark3全卡克隆已解密的IC卡
- HZ服务器装系统速度变慢,360Hz刷新率有些什么厉害的地方?响应时间系统延迟测试...
- 微信公共号---LBS的开发
- Java8--20道关于Stream流的题目练习
- Ubuntu20.04安装cuda10.1
- C1实训-Java薪资转换(适合初学者)
热门文章
- git报错fatal: unable to access ‘https://github.com/stephaniedurand/SeisTomoPy_V3.git/‘: gnutls_handsha
- Linux编程基础:第2章命令与开发工具 课后习题
- jsp教学网站百度文库_动态网站技术(JSP)教学大纲
- 基于51单片机智能家居电路控制仿真
- Github代码在线阅读神器! 程序员必备
- office2003 下载地址 及密码
- java 端口扫描_java端口扫描(原创)
- Linux系统查看mysql redo日志的位置
- 用友uap开发 nc65中的参照开发
- 全球30米分辨率森林覆盖及变化数据分享