PHP学习笔记(一):开发微信平台

来源:互联网 发布:淘宝照相技巧 编辑:程序博客网 时间:2024/05/16 08:57

原文地址:http://www.codesky.net/article/201310/182154.html

php代码如下:

<?phpdefine("TOKEN","server");$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 = "<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, $time, $msgType, $contentStr);                echo $resultStr;            }        }else{            echo "";//这行和下面的exit必须加,否则提示"该公众号暂时无法提供服务"            exit;        }    }}?>


0 0