因为最近微信更新了,然后导致公众号之前一些功能出现没法正常响应的情况。刚开始没注意,以为只是暂时的,后来忍不下去了,百度之,才知道原来是检查签名那个函数里面的排序算法更新了。
这是原来的排序算法的调用:
sort($tmpArr);
需要改成:
sort($tmpArr, SORT_STRING);
官方代码里面完整的检查签名的函数:
private function checkSignature()
{$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 ){
<span style="white-space:pre"> </span>return true;}else{return false;}
}