<?php define("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 data if (!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 rule sort($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; } ?>
原文:http://blog.csdn.net/qq754406613/article/details/44699639