微信验证
微信首页responseMsg()
微信首页responseMsg()
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)){ $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $fromUsername = $postObj->FromUserName; $toUsername = $postObj->ToUserName; $MsgType = $postObj->MsgType; $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>"; switch($MsgType) { case "text": $resultStr = $this->handleText($postObj); break; case "link": $resultStr = $this->handleLink($postObj); break; case "event": $resultStr = $this->handleEvent($postObj); break; case "image": $resultStr = $this->handleImage($postObj); break; case "voice": $resultStr = $this->handleVoice($postObj); break; case "video": $resultStr = $this->handleVideo($postObj); break; case "location": $resultStr = $this->responseLocation($postObj); break; default: break; } }else { echo ""; exit; } } ////判断点击事件 public function handleEvent($postObj) { $FromUserName = $postObj->FromUserName; $ToUserName = $postObj->ToUserName; $MsgType = $postObj->MsgType; $Event = $postObj->Event; $CreateTime = $postObj->CreateTime; require("db.php"); //$dbh = mysql_connect("localhost:3306","root","root"); //mysql_select_db("***"); //mysql_query("set names UTF8"); switch ($postObj->Event) { case "subscribe": $sqlsubscribe = "select * from account where OpenId = '".trim($FromUserName)."'"; $connsubscribe = mysql_query($sqlsubscribe,$dbh); $resultsubscribe = mysql_fetch_assoc($connsubscribe); $FakeID = file_get_contents("http://bauschlomb.ruisheng.info/success.php"); if($resultsubscribe){ $sqlinTu = "update account set Enable = 0,CreateTime = $CreateTime,FakeId ='".trim($FakeID)."' where OpenID ='".trim($FromUserName)."'"; $connTu = mysql_query($sqlinTu,$dbh); }else{ ////如果数据库没有这个用户的记录 $insertsubscribe = "insert into account(OpenID,Enable,State,FakeId,CreateTime) values('".trim($FromUserName)."',0,10,'".trim($FakeID)."',$CreateTime)"; $insertsubscribe = mysql_query($insertsubscribe,$dbh); } $sqlsub = "insert into message(FromUserName,ToUserName,MsgType,Event,CreateTime) values ('".trim($FromUserName)."','".trim($ToUserName)."','event','subscribe',$CreateTime)"; $resultsub = mysql_query($sqlsub,$dbh); ///$resultmsg = StaticMethod::getUserInfoBySub($FromUserName,$CreateTime); ///$resultStr = $this->responseEvent($postObj,$contentStr); $resultStr = $this->responseSubscribe($postObj); break; case "unsubscribe": $contentStr = "取消关注微信号:!查看更多内容!!!.";///////这里是最先开始加关注的时候,发出的信息 $sqlunmsg = "insert into message(FromUserName,ToUserName,MsgType,Event,CreateTime) values ('".trim($FromUserName)."','".trim($ToUserName)."','".trim($MsgType)."','unsubscribe',$CreateTime)"; $resultunmsg = mysql_query($sqlunmsg,$dbh); $sqlinTu = "update account set Enable = 1 where OpenId ='".trim($FromUserName)."'"; $connTu = mysql_query($sqlinTu,$dbh); ///StaticMethod::delUserInfoBySub($FromUserName,$CreateTime); $resultStr = $this->responseEvent($postObj,$contentStr); break; case "CLICK": switch ($postObj->EventKey) { case "V1001_Product011": $contentStr = ''; $resultStr = $this->responseEvent($postObj, $contentStr); break; case "V1001_Product012": $contentStr = '增减。'; $resultStr = $this->responseEvent($postObj, $contentStr); break; case "V1001_Product013": $contentStr = 'bb'; $resultStr = $this->responseEvent($postObj, $contentStr); break; case "V1001_Product014": $contentStr ='b一次2~3滴。'; $resultStr = $this->responseEvent($postObj, $contentStr); break; case "V1001_Personal021": $contentStr = ""; $resultStr = $this->responseEvent($postObj, $contentStr); break; case "V1001_Personal022": $contentStr = ""; $resultStr = $this->responseEvent($postObj, $contentStr); break; case "V1001_Personal023": $contentStr = ""; $resultStr = $this->responseEvent($postObj, $contentStr); break; case "V1001_Personal024": $contentStr = "请回复【认证】,即可开启认证流程"; $resultStr = $this->responseEvent($postObj, $contentStr); break; case "V1001_Personal025": $contentStr = "请回复【学分查询】,即可对自己当前学分情况进行了解"; $resultStr = $this->responseEvent($postObj, $contentStr); break; case "V1001_Activity031": $contentStr = ""; $resultStr = $this->responseEvent($postObj, $contentStr); break; case "V1001_Activity032": ///$contentStr = "敬请期待"; ///$resultStr = $this->responseEvent($postObj, $contentStr); $this->responseMatchGuess($postObj); break; case "V1001_Activity033": //$contentStr = "活动信息"; //$resultStr = $this->responseEvent($postObj, $contentStr); $resultStr = $this->responseGrid($postObj); break; case "V1001_Activity034": //$contentStr = "活动信息"; //$resultStr = $this->responseEvent($postObj, $contentStr); $resultStr = $this->responseMood($postObj); break; case "V1001_Activity035": $contentStr = "第二期考试活动已结束"; $resultStr = $this->responseEvent($postObj, $contentStr); ///$this->responseExam($postObj); break; default: $contentStr = "欢迎关注微课堂\n\n"; $resultStr = $this->responseEvent($postObj, $contentStr); break; } } } ///针对Event事件的文本回复(正确) public function responseEvent($postObj,$contentStr) { $time = time(); $textTpl = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[%s]]></Content> <FuncFlag>0</FuncFlag> </xml>"; $resultStr = sprintf($textTpl, $postObj->FromUserName, $postObj->ToUserName, $time,$contentStr); echo $resultStr; exit(); } ////图片 public function responseSubscribe($postObj) { $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; ///图文混排 if (!empty($postStr)){ $fromUsername = $postObj->FromUserName; $toUsername = $postObj->ToUserName; $CreateTime =$postObj->CreateTime; $time = time(); $msgType ="news"; $title ="欢迎您 !"; $description = "请回复【认证】马上进行会员认证,成功绑定就能获得学分,先到先得!早到多得!点击“阅读全文”有惊喜哦。"; $textTpl = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[%s]]></MsgType> <Content><![CDATA[%s]]></Content> <ArticleCount>1</ArticleCount> <Articles> <item> <Title><![CDATA[".$title."]]></Title> <Description><![CDATA[".$description."]]></Description> <PicUrl><![CDATA[http://***.info/images/mmexport2.jpg]]></PicUrl> <Url><![CDATA[http://****.info/yyy.htm]]></Url> </item> </Articles> <FuncFlag>1</FuncFlag> </xml> "; $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $CreateTime, $msgType,$title,$description); echo $resultStr; exit; } } ///判断文本 public function handleText($postObj) { $fromUsername = $postObj->FromUserName; $toUserName = $postObj->ToUserName; $keyword = $postObj->Content; $CreateTime = $postObj->CreateTime; require("db.php"); //$dbh = mysql_connect("localhost:3306","root","root"); //mysql_select_db("****"); //mysql_query("set names UTF8"); $sqlmsg = "insert into message(FromUserName,ToUserName,MsgType,Content,CreateTime) values ('".trim($fromUsername)."','".trim($toUserName)."','text','".trim($keyword)."',$CreateTime)"; $result = mysql_query($sqlmsg,$dbh); $time = time(); $sqlMapping ="select count(*) as count from mapping where OpenId = '".trim($fromUsername)."'"; $mappingRs = mysql_query($sqlMapping,$dbh); $mappingRow = mysql_fetch_assoc($mappingRs); $mappingCount = $mappingRow["count"]; if(intval($mappingCount)!=0){ ////说明这个人已经访问过了 //根据OpenId查询Mapping表的Telephone ///查询关键子 start $sqlkeywords = "select KeyWords from customsg"; $keywordRs = mysql_query($sqlkeywords,$dbh); $keys = array(); while($keyArray = mysql_fetch_assoc($keywordRs)){ $keys[] = $keyArray["KeyWords"]; } $catekeywords = "select CategoryName from category"; $catekeywordRs = mysql_query($catekeywords,$dbh); $catekeys = array(); while($catekeyArray = mysql_fetch_assoc($catekeywordRs)){ $catekeys[] = $catekeyArray["CategoryName"] ; } ////关键字end /////查询category.customsg表里关键字 ----start-- if(in_array($keyword,$keys)) { $wordresult = mysql_query("select * from customsg where KeyWords = '".$keyword."'",$dbh); $wordrow = mysql_fetch_assoc($wordresult); ////$count = intval($wordrow["Count"]); ////if(empty($count)){ $count = 1 ;}else{ $count = intval($count) +1;} ////$updatesql ="update manager set Count= $count and LoginTime = $time where username='".$username."' and password ='".$password."'"; if(!empty($wordrow)){ mysql_query("update category set count =count+1 where CategoryName = '".$keyword."'",$dbh); } $time =time(); /*if($wordrow["MsgType"]=="music") { $textTpl = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%d</CreateTime> <MsgType><![CDATA[music]]></MsgType> <Music> <Title><![CDATA[%s]]></Title> <Description><![CDATA[%s]]></Description> <MusicUrl><![CDATA[%s]]></MusicUrl> <HQMusicUrl><![CDATA[%s]]></HQMusicUrl> </Music> </xml>"; $title = $wordrow["Title"]; $description = $wordrow["Description"]; $musicUrl = 'http://www.xyzk.net/images/bgm/Audio/tianya.mp3'; $HQMusicUrl = 'http://www.xyzk.net/images/bgm/Audio/tianya.mp3'; $resultStr = sprintf($textTpl,$fromUsername,$toUserName,$time,$title,$description,$musicUrl,$HQMusicUrl); echo $resultStr; }else*/if($wordrow["MsgType"]=='news'){ $Title =$wordrow["Title"]; $Description = $wordrow["Description"]; $PicUrl = "http://**********.info/".$wordrow["PicUrl"]; $Url = $wordrow["Url"]."?OpenID=$fromUsername"; $textTpl2 = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[news]]></MsgType> <Content><![CDATA[%s]]></Content> <ArticleCount>1</ArticleCount> <Articles> <item> <Title><![CDATA[".$Title."]]></Title> <Description><![CDATA[".$Description."]]></Description> <PicUrl><![CDATA[".$PicUrl."]]></PicUrl> <Url><![CDATA[".$Url."]]></Url> </item> </Articles> <FuncFlag>0</FuncFlag> </xml>"; $resultStr = sprintf($textTpl2,$postObj->FromUserName,$postObj->ToUserName,$time,$Title,$Description); echo $resultStr; }else{ $textTpl3 = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[%s]]></Content> <FuncFlag>0</FuncFlag> </xml>"; $contentStr = $wordrow["Content"]; $resultStr = sprintf($textTpl3, $postObj->FromUserName, $postObj->ToUserName, $time,$contentStr); echo $resultStr; ///$this->responseEvent($postObj,$contentStr); } /* }elseif(in_array($keyword,$catekeys)){ //////只在Category表中 mysql_query("update category set count =count+1 where KeyWords = '".$keyword."'",$dbh); $contentStr = "属于关键子列表Category,目前没有自定义的显示形式"; $this->responseEvent($postObj,$contentStr); *
精彩图集
精彩文章