服务器里接受到的get请求是:
//weixin/msg/index?signature=c7e61239e4b56e0adf7b6623b74fa6c61de24fcc&echostr=2019533780509753310×tamp=1512789272&nonce=3310232241
把它复制到浏览器,也确实能返回。
只是checkSignature 加密验证不通过。
我加了两个var_dump打印变量:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | //加密验证 public function checkSignature(){ $signature = trim( $this -> get( "signature" , "" )); $timestamp = trim( $this -> get( "timestamp" , "" )); $nonce = trim( $this ->get( "nonce" , "" )); $tmpArr = array (\Yii:: $app ->params[ 'weixin' ][ 'token' ], $timestamp , $nonce ); sort( $tmpArr ); $tmpStr = implode( $tmpArr ); $tmpStr = sha1( $tmpStr ); var_dump( $tmpStr ); var_dump( $signature ); exit (); if ( $tmpStr == $signature ){ return true; } else { return false; } } |
结果:
明明get请求里有 signature 这个字段,但是没有获取
而且,$tmpStr打印出来的值,和服务器里日志的signature值并不匹配。
之前做的时候好像还没问题 ...... 不知道是哪改毁了吧.....