易信公众平台开发从入门到精通之开发验证
开发者模式
在”高级功能”页面中,我们首先要开启”开发者模式”,如下图:
点击”查看详情”按钮,打开界面如下:
这里我们需要填写URL和Token。当你填写上URL和Token后,点击“提交验证”的按钮后,易信服务器会发送GET请求到你的服务器上。如果验证无误的话,页面会生成AppID和AppSecret字符串,后面会大量用到这两个变量。
校验程序
开发者提交信息后,易信服务器将发送GET请求到填写的URL上,GET请求携带四个参数:
参数 |
描述 |
signature |
易信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。 |
timestamp |
时间戳 |
nonce |
随机数 |
echostr |
随机字符串 |
开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自易信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。
加密/校验流程如下:
1. 将token、timestamp、nonce三个参数进行字典序排序
2. 将三个参数字符串拼接成一个字符串进行sha1加密
3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于易信
校验函数如下:
1 function checkSignature()
2 {
3 $signature= $_GET["signature"];
4 $timestamp= $_GET["timestamp"];
5 $nonce= $_GET["nonce"];
6
7 $token= TOKEN;
8 $tmpArr= array($token, $timestamp, $nonce);
9 sort($tmpArr,SORT_STRING);
10 $tmpStr= implode( $tmpArr );
11 $tmpStr= sha1( $tmpStr );
12
13 if($tmpStr == $signature ){
14 returntrue;
15 }else{
16 returnfalse;
17 }
18 }
3,4,5行代码是通过get请求获取将signature、timestamp、nonce三个参数。第7行代码的TOKEN是在common/Global.php文件中进行了全局设置。第8-11行代码指将三个参数字符串进行排序,拼接成一个字符串进行sha1加密。最后加密串与signature做比较。
提交验证
$token="1234567890";
$yxchat=new yxchat();
if( $tmpStr == $signature ){
return true;
}else{
return false;
}
}
}
具体的类库我们将在后面的章节进行阐述。$result=$yxchat->run()为验证入口函数。run函数的代码,主要功能是,如果是验证请求,则具体执行valid函数,如果是其他消息请求,则执行YiXinCore类中的responseMsg的方法。valid函数,主要利用了签名函数进行合法性校验。
好了,到这一步,我们的验证程序就算是写好了,部署到服务器或者sae环境中,点击”提交验证”按钮,如果没有问题的化,系统会提示”开发者权限已开通”。这一步是必须的,将是我们后续开发的基础。
易信公众平台开发从入门到精通之开发验证相关推荐
- 易信公众平台开发从入门到精通之接收普通消息
对公众号来说,这是一种新的接收用户发送消息的方式.公众号不需要再登录平台,就可以接收用户发送的文本,图片,语音,视频,地理位置等消息 当普通易信用户向公众账号发消息时,易信服务器将POST消息的XML ...
- 易信公众平台开发从入门到精通之天气预报
天气预报 易信公众平台支持图文消息的返回,今天我们就说说如何使用易信公众平台实现一个图文天气预报. 天气预报API接口 1百度天气API 百度天气预报API接口可以提供当天以及未来三天的天气预报,其U ...
- php 易信公众开发,易信公众平台接口代码分享
易信公众平台接口文件代码,只要将文件里的token换成自己定义的就可以直接放到自己的空间上了.注意:token值要跟您在开发模式那里写的一样. /** * wechatphp test */ //de ...
- 【微信易信公众平台开发】开启开发者模式
本系列文章均为A2BGeek原创,转载务必在明显处注明: 转载自A2BGeek的[微信易信公众平台开发]系列,原文链接:http://blog.csdn.net/a2bgeek/article/det ...
- 【微信易信公众平台开发】天气查询功能
本系列文章均为A2BGeek原创,转载务必在明显处注明: 转载自A2BGeek的[微信易信公众平台开发]系列,原文链接:http://blog.csdn.net/a2bgeek/article/det ...
- 易信公众平台开发(ASP.NET WebForm) Using Senparc.Weixin.MP SDK
本文主要简单介绍如何通过Senparc.Weixin.MP SDK开发易信后台, 0.为什么可以用专门为微信开发的SDK 这个在Senparc.Weixin.MPSDK的官网里面有所提及, 你可以比较 ...
- 【微信易信公众平台开发】创建自定义菜单
本系列文章均为A2BGeek原创,转载务必在明显处注明: 转载自A2BGeek的[微信易信公众平台开发]系列,原文链接:http://blog.csdn.net/a2bgeek/article/det ...
- php易信短信接口,易信公众平台demo代码php(含验证接口)
//易信公众平台地址https://plus.yixin.im/login,复制后后缀改为.php define("TOKEN", "yixin"); $wec ...
- 易信公众平台的微创新:活动消息
关键字:易信公众平台 活动消息 微信公众平台 作者:方倍工作室 原文:http://www.cnblogs.com/txw1958/p/yixin-activity-message.html 易信公 ...
最新文章
- java数据结构教程_Java数据结构
- 《塞洛特傳說》道具系统
- Solr嵌套子文档的弊端以及一种替代方式
- 病毒汇编逆向分析实例赏析
- 如何使用Javascript 访问local部署的YAAS service
- MySQL什么是关系_MySQL教程-关系模型
- AVS软件解码器的优化
- jetty9更改post请求长度
- ExcelToSQLServer-批量导入Excel文件到SQL Server数据库
- SpringCloud(四)Eureka自我保护机制
- 虚拟化技术的优点和缺点
- 固定偏置放大电路为何不能保证静态工作点的稳定性?
- 张钹院士:清华大学AI研究院要孵化人工智能界的BAT
- DevOps-5-看板
- 如何在BIOS中开启虚拟化技术
- Android 蓝牙 搜索周围设备代码流程分析-framework到协议栈流程
- 其他计算机设备是什么,电脑设备指什么
- Vue http request 请求拦截器
- blur表单验证方式
- SDAutoLayout快速实现Cell的高度自适应
热门文章
- 京东试用python全自动申请程序
- PHP laravel系列之bootstrap美化
- 【逻辑题】三个日本人
- 半路出家学php,PHP半路出家(1)
- 计算机专业面试问题同济大学,同济大学计算机考研初试和复试经验分享_跨考网...
- OA审批流程管理,简化审批手续!
- [转载]本土ERP软件的前世今生
- Redis 单机集群搭建步骤(五)
- 服务器08r2系统怎么校时,在windows 2008 R2上建 SNTP/NTP 服务器及客户机校时设置
- MacBook Pro合上盖子不休眠的问题简单分析