zoukankan      html  css  js  c++  java
  • 微信公众号初始化接入源代码

    微信公众号初始化接入代码

    
    <?php
    /**
      * wechat php test
      */
    //define your token
    define("TOKEN", "token");
    $wechatObj = new wechatCallbackapiTest();
    if(isset($_GET["echostr"])){
    $wechatObj->valid();
    }else{
    $wechatObj->responseMsg();
    }
     
    class wechatCallbackapiTest
    {
    	public function valid()
        {
            $echoStr = $_GET["echostr"];
            //valid signature , option
            if($this->checkSignature()){
            echo $echoStr;
            exit;
            }
        }
     
     
        public function responseMsg(){
            //get post data, May be due to the different environments
            $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
     
     
                  //extract post data
            if (!empty($postStr)){
                            
                $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
                $fromUsername = $postObj->FromUserName;
                $toUsername = $postObj->ToUserName;
                $keyword = trim($postObj->Content);
                $msgType = $postObj->MsgType;
                $time = time();
                switch( $msgType ){
                    case "text";
                    $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 =='time' || $keyword =="shijian"){
                        $contentStr = date("Y-m-d H:i:s",time());
                        $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                        echo $resultStr;
                    }
                    else
                    {
                        $msgType = "text";
                        $contentStr = "欢迎关注xinshidaikexue";
                        $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                        echo $resultStr;
                    }
     
                    break;
     
                    case "event":
                    $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>";
                    $event = $postObj->Event;
                    $msgType = "text";
                    if( $event =='subscribe'){
                        $contentStr = "欢迎关注xinshidaikexue";
     
                        $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                        echo $resultStr;
                        break;
                    }
                }
     
            }else {
                echo "欢迎关注xinshidaikexue";
                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;
    }
    }
    }
     
    ?> 
    
    
    
    
    正因为来之不易,所以才有了后来的倍加珍惜。
  • 相关阅读:
    【poj2828】Buy Tickets
    【hdu2795】Billboard
    【hdu1394】Minimum Inversion Number
    【BZOJ1012】 【JSOI2008】最大数maxnumber
    【hdu】p1754I Hate It
    【线段树模板】
    Day1
    synchronized底层原理
    Java之浅拷贝和深拷贝
    图解算法——恢复一棵二叉搜索树(BST)
  • 原文地址:https://www.cnblogs.com/jjxhp/p/10433603.html
Copyright © 2011-2022 走看看