$token='11'; $signarr=array($token,$_GET['timestamp'],$_GET['nonce']); if($this->signnature($signarr,$_GET['signature'])){ exit($_GET['echostr']); } function signnature($arr,$signature){ sort($arr); if(sha1(implode($arr))==$signature) return true; return false; } 把上面的代码保存成php文件,在微信公共平台设置同样的token,然后验证即可通过。 注:url是允许带get参数的 网址接入 公众平台用户提交信息后,我们将以GET请求方式请求到填写的Url上,并且带上四个参数: * signature — 微信加密签名 * timestamp — 时间戳 * nonce — 随机数 * echostr — 随机字符串 开发者通过检验signature对网址接入合法性进行校验。若此次GET请求原样返回echostr参数内容,则接入生效,否则接入失败。 验证signature将结合开发者填写的token参数、timestamp 参数和nonce参数等,加密流程: * 将token、timestamp、nonce三个参数进行字典序排序 * 将三个参数字符串拼接成一个字符串进行sha1加密 * 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。 |