龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

微信验证

时间:2014-07-22 14:48来源: 作者: 点击:
分享到:
微信首页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);
	   
				 *
      
精彩图集

赞助商链接