微信服务认证index.php token验证失败:{“ret“:200302,“err_msg“:“verify token fail“}
在微信认证配置url指向的文件中编写copy如下代码过去,该代码是php。来源于网络,但是源博客地址找不到了,所以没法替你声明了。<?php//注释、代码维护:2ZW// signature微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。// timestamp时间戳// nonce随机数// echostr随机字符串// 开
·
在微信认证配置url指向的文件中编写copy如下代码过去,该代码是php。
来源于网络,但是源博客地址找不到了,所以没法替你声明了。
<?php
//注释、代码维护:2ZW
// signature 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
// timestamp 时间戳
// nonce 随机数
// echostr 随机字符串
// 开发者通过检验signature对请求进行校验(下面有校验方式)。
// 若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。
//获得通过GET请求发送的微信服务器校验数据
$signature=$_GET["signature"];
$timestamp=$_GET["timestamp"];
$nonce=$_GET["nonce"];
// 1)将token、timestamp、nonce三个参数进行字典序排序
// 2)将三个参数字符串拼接成一个字符串进行sha1加密
// 3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
//填写在微信公众平台服务器配置中填写的token
$token='Your token';
//第一部分:字典排序
// 1)组合成一个数组
// 2)对数组元素进行升序排序
$tmpArr = array( $token,$timestamp,$nonce );
sort( $tmpArr );
// 第二部分:sha1加密
//把数组元素组成字符串
$tmpStr = implode( $tmpArr );
//sha1加密-安全哈希加密-Secure Hash Algorithm:不可逆
$tmpStr = sha1( $tmpStr );
//第三部分:到这里我们已经完成了校验的前两部分,排序以及加密,剩下的就是把加密完的本地字符串与get的微信服务器字符串进行比较
if($signature==$tmpStr){
//如果校验正确,则原样返回echostr参数内容
echo htmlspecialchars($_GET["echostr"]);
}
else{
//反之不进行返回参数
exit;
}
?>
其中需要注意的是,返回的这个地方
echo htmlspecialchars($_GET["echostr"]);
我copy代码过来的时候是这样的,然后就一直报错。
echo htmlspecialchars($_GET["echoStr"]);
{"ret":200302,"err_msg":"verify token fail"}
改一下就可以解决了。
实在不行就把if判断取消掉,直接return也行。
更多推荐


所有评论(0)