测试代码c6.php
~~~
<?php
define('TOKEN','zhangyouwu');//定义token
$obj=new Weixin();//实例化函数
if(!isset($_GET['echostr'])){//如果随机字符串不存在
$obj->receive();
}else{
$obj->checkSignature();//调用函数中的方法
}
class Weixin{
public function checkSignature()
{
$signature = $_GET["signature"];//加密签名
$timestamp = $_GET["timestamp"];//时间戳
$nonce = $_GET["nonce"];//随机数
$token = TOKEN;
$tmpArr = array($token,$timestamp, $nonce);//组成新数组
sort($tmpArr, SORT_STRING);//重新排序
$tmpStr = implode( $tmpArr );//转换成字符串
$tmpStr = sha1( $tmpStr );//再将字符串加密
if( $tmpStr==$signature ){
echo $_GET['echostr'];
}else{
return false;
}
}
public function receive(){
$obj=$GLOBALS['HTTP_RAW_POST_DATA'];//接受消息
$postSql=simplexml_load_string($obj,'SimpleXMLElement',LIBXML_NOCDATA);
$this->logger("接受:\n".$obj);
}
private function logger($content){//存储日志
$logSize=100000;//定义日志大小
$log="log.txt";//定义日志名字
if(file_exists($log)&&filesize($log)>$logSize){//如果日志存在并且大于定义的大小
unlink($log);//删除
}
//文件写入1.名字2.内容,+时间防止重复3.内容往后加而不是覆盖
file_put_contents($log,date('H:i:s')." ".$content."\n",FILE_APPEND);
}
}
?>
~~~
在微信里发送信息
![](https://box.kancloud.cn/f8d1b2d9cae4aee9962af74d0f0204b7_456x366.png)
打开log.txt显示的信息:
![](https://box.kancloud.cn/eb855027ca44348df0b01b2e19bca148_630x437.png)