微信Token验证

站在用户的角度思考问题,与客户深入沟通,找到潍城网站设计与潍城网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站制作、成都做网站、企业官网、英文网站、手机端网站、网站推广、申请域名、虚拟空间、企业邮箱。业务覆盖潍城地区。

traceHttp();

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()){

            echo $echoStr;

            exit;

        }

    }

    private function checkSignature()

    {

        $signature = $_GET["signature"];

        $timestamp = $_GET["timestamp"];

        $nonce = $_GET["nonce"];

        $token = TOKEN;

        $tmpArr = array($token, $timestamp, $nonce);

        sort($tmpArr);

        $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, 'SimpleXMLElement', LIBXML_NOCDATA);

            $fromUsername = $postObj->FromUserName;

            $toUsername = $postObj->ToUserName;

            $keyword = trim($postObj->Content);

            $time = time();

            $textTpl = "

                       

                       

                        %s

                       

                       

                        0

                        ";

            if($keyword == "?" || $keyword == "?")

            {

                $msgType = "text";

                $contentStr = date("Y-m-d H:i:s",time());

                $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);

                echo $resultStr;

            }

        }else{

            echo "";

            exit;

        }

    }

}

function traceHttp()

{

    logger("\n\nREMOTE_ADDR:".$_SERVER["REMOTE_ADDR"].(strstr($_SERVER["REMOTE_ADDR"],'101.226')? " FROM WeiXin": "Unknown IP"));

    logger("QUERY_STRING:".$_SERVER["QUERY_STRING"]);

}

function logger($log_content)

{

    if(isset($_SERVER['HTTP_APPNAME'])){   //SAE

        sae_set_display_errors(false);

        sae_debug($log_content);

        sae_set_display_errors(true);

    }else{ //LOCAL

        $max_size = 500000;

        $log_filename = "log.xml";

        if(file_exists($log_filename) and (abs(filesize($log_filename)) > $max_size)){unlink($log_filename);}

        file_put_contents($log_filename, date('Y-m-d H:i:s').$log_content."\r\n", FILE_APPEND);

    }

}

?>


标题名称:微信Token验证
标题路径:http://azwzsj.com/article/pjcsid.html