<?php/*** 微信公众平台接口PHP封装功能类文件* author* date 2013-4-9 PRC:E+8 23:03*/define("TOKEN", "chuangenit");$wechatObj = new wechatCallbackapiTest();$wechatObj->weixin_run(); //执行接收器方法html' target='_blank'>class wechatCallbackapiTest{private $fromUsername;private $toUsername;private $times;private $keyword;public function weixin_run(){$this->responseMsg();$arr[]=array("很靠谱,不错!","aa","http://www.chuangen.com/pic/hj/s_4.png","http://www.baidu.com");$arr[]=array("很靠谱,不错!","aa","http://www.chuangen.com/pic/hj/s_4.png","http://www.baidu.com");$arr[]=array("很靠谱,不错!","aa","http://www.chuangen.com/pic/hj/s_4.png","http://www.baidu.com");$this->fun_xml("news",$arr,array(2,0));}function t($n){include("t_api.php");$c_name=$t_api[$n];$json=file_get_contents("http://m.weather.com.cn/data/101110310.html");return json_decode($json);}public function valid(){$echoStr = $_GET["echostr"];//valid signature , optionif($this->checkSignature()){echo $echoStr;exit;}}public function responseMsg(){$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];if (!empty($postStr)){$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);$this->fromUsername = $postObj->FromUserName;$this->toUsername = $postObj->ToUserName;$this->keyword = trim($postObj->Content);$this->times = time();}else {echo "this a file for weixin API!";exit;}}//微信封装类,//type: text 文本类型, news 图文类型//text,array(内容),array(ID)//news,array(array(标题,介绍,图片,超链接),...小于10条),array(条数,ID)private function fun_xml($type,$value_arr,$o_arr=array(0)){//=================xml header============$con="<xml><ToUserName><![CDATA[{$this->fromUsername}]]></ToUserName><FromUserName><![CDATA[{$this->toUsername}]]></FromUserName><CreateTime>{$this->times}</CreateTime><MsgType><![CDATA[{$type}]]></MsgType>";//=================type content============switch($type){case "text" :$con.="<Content><![CDATA[{$value_arr[0]}]]></Content><FuncFlag>{$o_arr}</FuncFlag>";break;case "news" :$con.="<ArticleCount>{$o_arr[0]}</ArticleCount><Articles>";foreach($value_arr as $id=>$v){if($id>=$o_arr[0]) break; else null; //判断数组数不超过设置数$con.="<item><Title><![CDATA[{$v[0]}]]></Title><Description><![CDATA[{$v[1]}]]></Description><PicUrl><![CDATA[{$v[2]}]]></PicUrl><Url><![CDATA[{$v[3]}]]></Url></item>";}$con.="</Articles><FuncFlag>{$o_arr[1]}</FuncFlag>";break;} //end switch//=================end return============echo $con."</xml>";}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;}}}?>PHP编程
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
新闻热点
疑难解答