今天在搞微信小程序验证工作
在配置消息推送里Tokent 一直校验失败
把所有能想到的问题都解决了,但一还是校验失败
经过反复测试和网友的回答终于解决
其实微信向您的服务器发送验证请求时
你只需要将微信发送过来的echostr 再返回给它就可以验证通过了
当然正常情况下按照微信的文档,你应该对微信发送的数据进和你本地的数据进行对比,如果数据一致才告诉它验证通过
我这里只是测试环境为了偷懒才这样做的,正式环境还是应该遵守规则
<?php //只需要将微信发送过来的随机字符串返回给微信即可验证通过 echo ($_GET['echostr']);
//必须使用echo返回给微信服务器,使用return是无效的
//就是此问题花了我2个小时的时间 //return ($_GET['echostr']); die(); //code from https://mp.weixin.qq.com/debug/wxadoc/dev/api/custommsg/callback_help.html function checkSignature() { $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; $token ='your_tokent'; $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr, SORT_STRING); $tmpStr = implode( $tmpArr ); $tmpStr = sha1( $tmpStr ); if( $tmpStr == $signature ){ if(isset($_GET['echostr'])){ return $_GET['echostr']; } return true; }else{ return false; } } echo checkSignature(); ?>
参考: