<?php /** * Created by PhpStorm. * User: Administrator * Date: 2015-12-18 * Time: 21:51 */ define("TOKEN","weixin"); $wechatobj = new wechatCallbackapiTest(); if(isset($_GET['echostr'])){ $wechatobj->valid(); } else { $wechatobj->responseMsg(); } class wechatCallbackapiTest { public function valid() { $echoStr=$_GET["echostr"]; if($this->checkSignature()){ header('content-type:text'); echo $echoStr; exit; } } private function checkSignature() { $signature=$_GET["signature"]; $timestamp=$_GET["timestamp"]; $nonce=$_GET["nonce"]; $token=TOKEN; $tmpArr=array($token,$timestamp,$nonce); sort($tmpArr,sort_strin); $tmpStr=implode($tmpArr); $tmpStr=sha1($tmpStr); if($tmpStr==$signature) { return true; } else { return false; } } public function responseMsg() { $postStr=$GLOBALS["http_raw_post_data"]; if(!empty($postStr)) { $postObj=simplexml_load_string($postStr,'Simp',LIBXML_NOCDATA)); $fromUsername=$postObj->FromUserName; $toUsername=$postObj->ToUsername; $keyword=trim($postObj->Content); $time=time(); $textTpl = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[%s]]></MsgType> <Content><![CDATA[%s]]></Content> <FuncFlag>0</FuncFlag> </xml>"; if($keyword=="?" || $keyword=="?") { $msgType="text"; $contentStr=date("y-m-d h:i:s",time()); $resultStr=sprintf($textTpl,$fromUsername,$toUsername); echo $resultStr; } } else { echo ""; exit; } } }