您的位置:首页 > 移动开发 > 微信开发

微信公众平台接入方式

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”];

//验证签名是否有效 , 用于判断是否为接入验证请求。

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;
}
}


};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  微信接入