微信公众平台 checkSignature(官方验证消息真实性方法) 导致回复的消息丢失
作者:互联网
修改 微信开发接口配置
class Wechat { public function __construct(){ $this->checkSignature(); } private function checkSignature() { $signature = $_GET["signature"]; // 加密签名 微信服务器 $timestamp = $_GET["timestamp"]; // 时间戳 $nonce = $_GET["nonce"]; // 随机数 $echostr = $_GET['echostr']; $token = 'zhangxuhui'; $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr, SORT_STRING); $tmpStr = implode( $tmpArr ); $tmpStr = sha1( $tmpStr ); if( $tmpStr == $signature ){ echo $echostr; }else{ return false; } } public function index(){ } }
官方原代码
使用PHP开发微信公众平台, 官方提供的示例代码中的 checkSignature 函数,导致回复的消息经常性的丢失。
官方示例代码中的 checkSignature 函数:
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; } }
将其中的
sort($tmpArr);
修改为
sort($tmpArr, SORT_STRING);
标签:nonce,GET,checkSignature,微信,tmpArr,消息,timestamp,tmpStr 来源: https://www.cnblogs.com/mangofish/p/16068498.html