输入验证信息
注意:填写服务器配置中的口令必须与自己的服务器资源里的口令一致。
我们需要在程序中按照微信的要求对请求进行校验,只有验证通过之后才能请求消息。在验证的时候,微信会向我们填写的URL发送一个GET请求,GET请求包括四个参数signature(微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数)、timestamp(时间戳)、nonce(随机数)、echostr(随机字符串)。
查看一下解析是否成功。如果出现了一个错误页面的话说明解析没有问题。然后回到刚刚的微信公众平台,确认信息之后点击提交。微信会向我们的服务器发送请求。验证通过之后,我们即成功接入了微信。
URL就是我们配置的公网地址,Token是一个我们设置的字符串,将在后面web程序中使用。
服务器验证注意:填写服务器配置中的口令必须与自己的服务器资源里的口令一致。
我们需要在程序中按照微信的要求对请求进行校验,只有验证通过之后才能请求消息。在验证的时候,微信会向我们填写的URL发送一个GET请求,GET请求包括四个参数signature(微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数)、timestamp(时间戳)、nonce(随机数)、echostr(随机字符串)。
检验signature的PHP示例代码:
private function checkSignature()
{
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $tmpStr == $signature ){
return true;
}else{
return false;
}
}
}
调用signature的操作方法,如果确认此次来自于微信服务器则原样返回echostr参数内容,就确认接入成功。只不过开发者通过加密对signature请求进行校验。1)将token、timestamp、nonce三个参数进行字典序排序 2)将三个参数字符串拼接成一个字符串进行sha1加密 )开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。
查看一下解析是否成功。如果出现了一个错误页面的话说明解析没有问题。然后回到刚刚的微信公众平台,确认信息之后点击提交。微信会向我们的服务器发送请求。验证通过之后,我们即成功接入了微信。