微信开发数据收发原理及消息数据格式
来源:互联网 发布:淘宝卖眼药水 编辑:程序博客网 时间:2024/05/20 08:21
开发模式成为开发者时的消息校验原理
在开发者首次提交验证申请时,微信服务器将发送GET请求到填写的URL上,并且带上四个参数(signature、timestamp、nonce、echostr),开发者通过对签名(即signature)的效验,来判断此条消息的真实性。
此后,每次开发者接收用户消息的时候,微信也都会带上前面三个参数(signature、timestamp、nonce)访问开发者设置的URL,开发者依然通过对签名的效验判断此条消息的真实性。效验方式与首次提交验证申请一致。
开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。
加密/校验流程如下:1. 将token、timestamp、nonce三个参数进行字典序排序2. 将三个参数字符串拼接成一个字符串进行sha1加密3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
启用接口是由代码中的checkSignature()函数来实现校验的。如果对这一原理难以理解,可以暂时不用深究,继续看下面。
成为开发者后消息收发时的原理
上一章节中图,当用户发送一个“?”时,系统回复了一个时间
这一原理的消息流程图如下所示。
从上图可以看出,用户在发送一个?后,微信服务器将组装一个消息发送给我们自己的服务器,自己的服务器然后回复一个时间,并且将该时间也按一定的规则组装,回复给公众账号,公众账号再回复给用户,在这个收发过程中,发送方和接收方进行了调换(ToUserName和FromUserName值互换),收发都是以xml格式在后台进行传输的,
所以掌握各种消息类型的接收回复就是进行微信公众平台开发的基础!
下面对前面所述的各种消息类型讲解其XML数据包的格式。
0 0
- 微信开发数据收发原理及消息数据格式
- 微信开发(从申请微信到注册上线的一整套流程)第三章 数据收发原理及消息数据格式
- 微信开发(四)收发消息
- 微信公众号开发自动收发消息
- 微信公众号开发笔记之收发消息
- 环信收发文本消息
- 浅析 微信公共平台消息 开发原理
- java编写微信公众账号收发消息
- 使用 CocoaPods 给微信集成 SDK 打印收发消息
- 使用 CocoaPods 给微信集成 SDK 打印收发消息
- 使用 CocoaPods 给微信集成 SDK 打印收发消息
- 微信开发 模板消息
- 微信开发:接收消息
- 微信模版消息开发
- asp.net微信公众平台开发(3)微信消息封装及反射赋值
- C#开发微信门户及应用(2)--微信消息的处理和应答
- 微信公众帐号开发教程第4篇-消息及消息处理工具的封装
- 微信公众帐号开发教程第4篇-消息及消息处理工具的封装
- SpringMVC配置及初级入门11_30
- 自己实现的一个list双链表
- 在中间件维护的时候应该注意tns的地方 -------运维日志7
- UI第十四天:UI⾼级可视化设计
- 【Android】RecyclerView的OnItemClickListener点击事件处理
- 微信开发数据收发原理及消息数据格式
- C++ 友元应用
- 【C#】窗体透明度、ListBox的增删改查
- scala并发编程第二章习题
- 奇异值分解的几何解释及其应用
- 【项目经验】——文本框限制输入字符长度
- 用户角色权限管理系统-----java web 脚手架搭建(一)
- 转载AFNetworking源码解析(一)
- 一切过去,皆为序章-------十一月总结