基于PHP的微信token验证
这是对 微信公众平台技术文档>开始开发>接入指南 网址https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421135319里面说得不够明白的地方进一步详细说明一下,亲测成功了。
申请完公众号,进入公众号,开发>基本配置>服务器配置
官方文档给出的实例不完全正确,有的变量没有$,而且组成数组时候,没有把token放进去
下面用的thinkphp版本为5.1.12
namespace app\wechat\controller; use think\Controller; class Index extends Controller { public function index(){ $signature = $this->request->param('signature'); $timestamp = $this->request->param('timestamp'); $nonce = $this->request->param('nonce'); $echostr = $this->request->param('echostr'); if($this->checkSignature($signature,$timestamp,$nonce)){ echo $echostr;die;//这里特别注意,如果不用die结束程序会token验证失败 }else{ echo false; } } private function checkSignature($signature,$timestamp,$nonce) { $token = "";//这里写你在微信公众平台里面填写的token $tmpArr = array($token,$timestamp, $nonce); sort($tmpArr, SORT_STRING); $tmpStr = implode( $tmpArr ); $tmpStr = sha1( $tmpStr ); if($tmpStr == $signature){ return true; }else{ return false; } } }