微信公共平臺入門
阿新 • • 發佈:2019-02-13
以下是抄TX的程式碼。
<?php /** * wechat php test */ 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']; // $GLOBALS 比 php://input 慢點吧 $postStr = file_get_contents('php://input', 'r'); //extract 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(); $time = $postObj->CreateTime; $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 ( ! empty($keyword)) { $msgType = 'text'; $contentStr = 'Welcome to wechat world!'; printf( trim($textTpl) , trim($fromUsername) , trim($toUsername) , trim($time) , trim($msgType) , trim($contentStr)); } else { exit('Input something...'); } } else { exit(''); } } private function checkSignature() { $signature = $_GET['signature']; $timestamp = $_GET['timestamp']; $nonce = $_GET['nonce']; $token = TOKEN; $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr); if (sha1(implode($tmpArr)) === $signature) { return true; } else { return false; } } }
本人對TX的所有產品沒有什麼感情。要說有感情,只能說除了無語,還是無語。
嗯,今天早上我把QQ刪了,結果立馬有人給公司打電話推企業QQ。你說QQ娛樂功能多,我想說企業內部聯絡用skype不就行了。和外面聊QQ用 WebQQ也行啊。當然對推銷的人說謊或許是現代人的本能吧。
C盤系統也是QQ的毒。
另外不喜歡360,因為它不讓刪它自己。而且我一個朋友的電腦,明明沒主動安360,卻有了。
我想說,如果不刪掉本地的qq(當然,還要用WebQQ)。——上圖吧——
微信的公眾平臺需要使用mvc,由顧客的最初的選擇決定那個Controller,並靠這個Controller裡的函式來回到上一介面之類的操作,感覺是職責鏈模式。
因為微信這東西的介面url是固定的,用現成的web框架來mvc是有些困難的,是為Controller是單例的,所以不能建立同繼承父類的子Controller。
所以我用的是靜態類加引用Controller來實現。現在想來,用框架的M,再自己寫個簡單的VC,在執行效率上應該會比較好。
因為我的工作有一塊是要維護原來一個專案的yii程式碼,最近這個微信的專案就用了yii框架。這個簡單架子的程式碼在——
http://code.taobao.org/p/yii_wx/src/