公眾號自動回複範例程式碼,自動回複範例程式碼
<?phpdefine("TOKEN", "weixin");$wechatObj = new wechatCallbackapiTest();$wechatObj->responseMsg();class wechatCallbackapiTest{ public function responseMsg() {//get post data, May be due to the different environments$postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //extract post dataif (!empty($postStr)){ /* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection, the best way is to check the validity of xml by yourself */ libxml_disable_entity_loader(true); $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(!empty($keyword )) { $msgType = "text"; $contentStr = "Welcome to wechat world!";//改了! $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType,trans($keyword)); echo $resultStr; }else{ echo "Input something..."; } }else { echo "啊啊啊"; exit; } }private function checkSignature(){ // you must define TOKEN by yourself if (!defined("TOKEN")) { throw new Exception('TOKEN is not defined!'); } $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; $token = TOKEN;$tmpArr = array($token, $timestamp, $nonce); // use SORT_STRING rulesort($tmpArr, SORT_STRING);$tmpStr = implode( $tmpArr );$tmpStr = sha1( $tmpStr );if( $tmpStr == $signature ){return true;}else{return false;}}}function trans($content){$content=urlencode($content);$api='aaaaaaaaaa';$url="http://openapi.baidu.com/public/2.0/bmt/translate?client_id=$api&q=$content&from=auto&to=auto";$str=file_get_contents($url);$tmp=json_decode($str);$con=$tmp->trans_result; //echo $con[0]->dst."<br>"; //$url="http://openapi.baidu.com/public/2.0/bmt/translate?client_id=$api&q=".$con[0]->dst."&from=auto&to=auto"; //$str=file_get_contents($url); //$tmp=json_decode($str); //$con=$tmp->trans_result;return $con[0]->dst;}?>