首頁 > 後端開發 > php教程 > 微信開發設定檔詳細註解版

微信開發設定檔詳細註解版

WBOY
發布: 2016-07-29 09:01:45
原創
1055 人瀏覽過

/**
  * 微信php測試
 */
//define your token
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();//將第11行程式碼的一個類別實例化;
//$wechatObj->valid();//變數使用->存取類別中的valid()方法,下文valid()方法為驗證開發模式介面。這行作用就是驗證接口,驗證完可註解掉;
$wechatObj->responseMsg();
class wechatCallbackapiTest//定義一個類別,類為物件導向開發的封裝方式;
{
    public function valid()//unction定義一個公有的名為valid的方法,即驗證介面的方法;
    {
        $echoStr = $_GET["echostr"];//從微信使用者端取得一個隨機signature , option
        if($this->checkSignature()){//存取checkSignature簽章驗證方法,若簽章一致,輸出變數$echoStr,完整驗證     exit;
        }/ /簽章及介面驗證;
    }
    public function responseMsg()//定義一個方法;
    {
       ;
        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
          //extract post data /$/L/L/L/L為每種資訊所判斷使用者/錯誤));                /* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,
                   the best way is to check the validity of  entity_loader(true);
                進行解析並賦予變數$postObj。 simplexml_load_string()函數用於解析XML,參數SimpleXMLElement為新物件的類,LIBXML_NOCDATA表示將CDATA設定為文字節點,CDATA標籤中的文字XML不進行解析。
                $fromUsername = $postObj->FromUserName;//將微信使用者端的OpenID賦予變數$fromUsername  /將公編號ID賦予變數$toUsername;
                $keyword = trim($ postObj->Content);//將使用者微信發送的文字內容去除空格後給予變數$keyword;
                $ j-> Event;//這是事件取得;
                $textTpl = "
         
                                               %s
                            
                            ";    //建構XML格式的文本賦予變數$textTpl。注意XML中的格式為微信內容固定格式。
                            if($Event=="subscribe")//subscribe是收到訂閱訊息,取消訂閱事件類型,subscribe()、subscribe()
                {
                            
                                           %s
                            
                                    >
                            
";  
     ;
                            $contentStr = "謝謝關注,你可以回覆點什麼";
   or$ $resultStr> sprint $ msgType, $contentStr);
                echo $resultStr;    
                    }///關注後自動回复文本消息
                            //switch($keyword)
                            //case "";             
                if(!empty( $keyword ))
                {
$msgType = "text";//回覆文字訊息類型為text型,變數類型為$msgType;
              //$contentStr回覆的資訊;
              %s,需要5個變數進行賦值。此行程式碼為關鍵,sprintf()函數要深入理解。
                    echo $resultStr;//輸出回覆訊息,即發送微信;
               echo "Input something...";//輸入內容,而此訊息不會送到微信端,且只在測驗時使用。
                }
        }else {
              exit;//退出;
        }
    }
        
    private function checkvate function checkS.中的簽名驗證程序,此行建立私有方法驗證簽名,這個私有的checkSignature方法,被第18行程式碼調用,官方文件為加密/校驗流程:將token,timestamp,nonce這三個參數進行字典序排序,將這三個參數字串拼接成一個字串進行shal加密,開發者獲得加密後字串可與signature對比,標示此要求來自於微信;
    {
        // you must !defined("TOKEN")) {
            throw new Exception('TOKEN is not defined!');
    = $_GET["signature"];//從用戶端取得簽章賦予變數$signature;
        $timestamp = $_GET["timestamp"];//從使用者端取得時間戳記賦予變數$timestamp;
        $nonce = $_GET["nonce"];
                
        $token = TOKEN;
            // use SORT_STRING rule
        sort($tmpArr, SORT_STRING);//新名排序;
        $tmpStr = implode( $tmpArr );//字典排序;
        $tmpStr = sha1( $tmp tmpStr == $signature ){//$tmpStr與$ signature變數同值,回傳真,否則回傳假;
            return true;
        }else{
      }
}
?>

以上就介紹了微信開發設定檔詳細註解版,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。


相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板