怎么会有如此奇怪的现象呢?导致我的checkSignature()函数无法依赖。
$nonce = $_GET['nonce'];
这个随机数 nonce 是微信公众号后台下发的,怎么会有时候少一位(甚至少两位)呢?
我的微信公众平台接口程序是用 PHP 5.6 写的。
百思不得其解。
怎么会有如此奇怪的现象呢?导致我的checkSignature()函数无法依赖。
$nonce = $_GET['nonce'];
这个随机数 nonce 是微信公众号后台下发的,怎么会有时候少一位(甚至少两位)呢?
我的微信公众平台接口程序是用 PHP 5.6 写的。
百思不得其解。
翻看php手册 我终于明白是怎么回事了!!!!!!!!!!
问题出在这句话上面: $tmpArr = sha1 ( implode ( $tmpArr ) );
implode的作用是把数组变成字符串,然后再把这个值付给变量,如果这个变量依然是数组那就容易出问题了,和随机数是8、9、10位没有关系。
解决办法:换成新的变量名:
$tmpStr2 = sha1 ( implode ( $tmpArr ) );
if ($tmpStr2 == $signature) {
echo $_GET ["echostr"];
}
exit ();
哈哈哈哈哈!
2 回答1.3k 阅读✓ 已解决
2 回答1.1k 阅读
2 回答824 阅读✓ 已解决
1 回答905 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
1 回答699 阅读✓ 已解决