微信公众平台接入方式
2015-06-03 09:27
381 查看
微信公众平台目前有订阅号、服务号、企业号三种类型。接入的方式分为明文、兼容和密文三种。明文模式下,不使用消息体加解密功能,安全系数较低。兼容模式下,明文、密文将共存,方便开发者调试和维护安全模式下,消息包为纯密文,需要开发者加密和解密,安全系数高。推荐使用安全模式。微信后台对要发送的消息进行AES-CBC加密,具体使用的是SHA1算法。三种类型公众号的接入原理都是一样的。
注意事项:接入验证TOKEN的过程中,微信后台会额外带上3个参数:signature、timestamp(时间戳)、nonce(随机数)。signature是对timestamp、nonce和TOKEN进行SHA1加密运算后的字符串。我们自己的服务器收到上面三个参数后,同样适用SHA1运算得到自己的签名signature,并将结果与微信后台提供的签名signature进行比较,一致那么接入成功。不一致可通过微信官方提供的接口调试工具进行调试。
下面是明文接入和密文接入的两种PHP源代码。仅供参考。
//接入公众号验证基类
class wechatlogin
{
public function valid()
{
echoStr=_GET[“echostr”];
//验证签名是否有效 , 用于判断是否为接入验证请求。
};
注意事项:接入验证TOKEN的过程中,微信后台会额外带上3个参数:signature、timestamp(时间戳)、nonce(随机数)。signature是对timestamp、nonce和TOKEN进行SHA1加密运算后的字符串。我们自己的服务器收到上面三个参数后,同样适用SHA1运算得到自己的签名signature,并将结果与微信后台提供的签名signature进行比较,一致那么接入成功。不一致可通过微信官方提供的接口调试工具进行调试。
下面是明文接入和密文接入的两种PHP源代码。仅供参考。
//接入公众号验证基类
class wechatlogin
{
public function valid()
{
echoStr=_GET[“echostr”];
//验证签名是否有效 , 用于判断是否为接入验证请求。
if($this->checkSignature()) { echo $echoStr; exit; } } private function checkSignature() { if (!defined("TOKEN")) { throw new Exception('TOKEN is not defined!'); } $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; } }
};
相关文章推荐
- 微信开发.Net 接入示例
- 写一篇简单的微信接入
- 微信开发学习日记(二):3个案例
- 微信开发学习日记(三):6点经验
- 微信开发学习日记(二):3个案例
- 微信公众号接入指南——成为开发者配置
- SYD8801微信接入测试结果【精简协议】【AirSync】
- SYD8801微信接入开始【微信蓝牙精简协议】【AirSync开发文档】
- 微信分享,支付,登录,跳转微信公众号接入指南
- 微信修改基本配置信息
- JAVA实现 springMVC方式的微信接入、实现消息自动回复实例
- 开发一个方便修改文件名的小程序
- android 微信朋友分享,朋友圈分享
- 微信公众号 获得多客服使用权限
- android小程序整理笔记
- 微信开发----支付
- 微信浏览器自带WeixinJSBridge 指定分享内容
- HTML5,微信开发原码社区
- 微信公号开发之文本消息技巧:长度限制、换行和表情
- 微信自定义开发的一些问题的梳理