微信公众平台开发学习--1
来源:互联网 发布:苹果应用无法连接网络 编辑:程序博客网 时间:2024/05/01 00:01
第一:验证服务器有效性。
微信需要验证服务器的有效性,通过以下方式。
注意:需要原样返回echostr参数内容,来告诉微信服务器,这个是有效的服务器
在开发者首次提交验证申请时,微信服务器将发送GET请求到填写的URL上,并且带上四个参数(signature、timestamp、nonce、echostr),开发者通过对签名(即signature)的效验,来判断此条消息的真实性。
此后,每次开发者接收用户消息的时候,微信也都会带上前面三个参数(signature、timestamp、nonce)访问开发者设置的URL,开发者依然通过对签名的效验判断此条消息的真实性。效验方式与首次提交验证申请一致。
开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。
加密/校验流程如下:1. 将token、timestamp、nonce三个参数进行字典序排序2. 将三个参数字符串拼接成一个字符串进行sha1加密3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
检验signature的PHP示例代码:
private function checkSignature() { $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; $token = TOKEN; $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr, SORT_STRING); $tmpStr = implode( $tmpArr ); $tmpStr = sha1( $tmpStr ); if( $tmpStr == $signature ){ return true; }else{ return false; } }
0 0
- 微信公众平台开发学习--1
- 微信公众平台开发学习
- 微信公众平台开发学习进程-1
- 微信公众平台开发教程1
- 微信公众平台开发(1)
- 微信公众平台开发1
- 微信公众平台开发学习--微信分享【微信公众开发者文档学习】
- 微信公众平台开发学习--微信分享【微信公众开发者文档学习】
- 微信公众平台开发
- 微信公众平台开发
- 微信公众平台开发
- 微信公众平台开发
- 微信公众平台开发
- 微信公众平台开发
- 微信公众平台开发
- 微信公众平台开发
- 微信公众平台开发
- 微信公众平台开发
- Android内存优化
- Linux 指令详解 scp 在linux主机间传输文件
- 第一篇,留着激励自己
- 网络基本功(十一):TCP窗口调整与流控
- Python 学习资源
- 微信公众平台开发学习--1
- 自定义view
- 非常规统计报表之制作按段分组报表的新办法
- 网络基本功(十二):细说Linux网络配置(上)
- php 计算脚本执行时间
- mysql decimal、numeric数据类型
- 网络基本功(十三):细说Linux网络配置(下)
- iOS所有常用证书,appID,Provisioning Profiles配置说明及制作图文教程
- 取石子游戏