微信验证
微信首页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);
*
精彩图集
精彩文章






