Created
April 25, 2014 08:13
-
-
Save zhoumengkang/11281705 to your computer and use it in GitHub Desktop.
微信demo
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* description : null | |
* @author : zhoumengkang | |
* createTime : 15/2/14 10:12 | |
*/ | |
define("TOKEN", "weixin"); | |
$wechatObj = new weChat(); | |
class weChat{ | |
//给用户返回的消息的格式 | |
private $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>"; | |
private $msgType = ''; | |
private $fromUsername; | |
private $toUsername; | |
//默认消息菜单 | |
private $menu = '回复 1 查看快递电话 | |
回复 2 查发车时间表 | |
回复 3 看大新沟风景 | |
回复 4 新沟普通话考试 | |
回复 5 进入新沟贴吧 | |
回复 6 进入新沟网 | |
...... | |
还要添加什么大家说了算,有意见请到 | |
http://t.cn/8Flnxa9 回帖吧'; | |
//新沟风景图片 | |
private $imgs = array( | |
'小桥流水接平沙,何处行云不在家。', | |
'千山鸟飞绝, 万径人踪灭。 孤舟蓑笠翁, 独钓寒江雪。 ', | |
'斜日消残雨,红霞映晚村。','黄萼裳裳绿叶稠,千村欣卜榨新油。', | |
'忽如一夜春风来,千树万树梨花开。新沟真的发展得好快呀!' | |
); | |
public function __construct(){ | |
if($this->checkSignature()){ | |
$this->responseMsg(); | |
}else{ | |
exit; | |
} | |
} | |
/** | |
* 验证消息的真实性 | |
* 如果没有这一步验证能正常运行,可能是防止机器人刷服务器吧...... | |
* @return bool | |
*/ | |
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; | |
} | |
} | |
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); | |
$this->fromUsername = $postObj->FromUserName; | |
$this->toUsername = $postObj->ToUserName; | |
$this->msgType = $postObj->MsgType; | |
$time = time(); | |
switch($this->msgType){ | |
case 'text': | |
//TODO | |
$content = $this->thinkAboutIt(trim($postObj->Content)); | |
break; | |
case 'voice': | |
$content = '你在微信里声音这么好听,你爸妈知道吗?/::d | |
'.$this->menu; | |
break; | |
case 'video': | |
$content = "陈老师的弟子,摄影技术就是不一样哈!/:B-) | |
".$this->menu; | |
break; | |
case 'image': | |
$content = '咧是哪过?介绍我认识哈!/::D | |
'.$this->menu; | |
break; | |
case 'location': | |
$content = '你踩咧西?我过来找你玩咯?/::D | |
'.$this->menu; | |
break; | |
case 'link': | |
$content = '发的什么链接,不会有毒吧,我是不会点的。 | |
'.$this->menu; | |
break; | |
case 'event': | |
$content = '欢迎关注新沟微信公共服务号/::D | |
'.$this->menu; | |
break; | |
} | |
$resultStr = sprintf($this->textTpl, $this->fromUsername, $this->toUsername, $time, 'text', $content); | |
echo $resultStr; | |
}else { | |
exit; | |
} | |
} | |
private function thinkAboutIt($content){ | |
switch($content){ | |
case 1: | |
return '不一定最新: | |
监利县新沟镇圆通快递电话 | |
15872146916 | |
监利县新沟镇中通快递电话 | |
0716-3787988 | |
15392751318 | |
监利县新沟镇天天快递电话 | |
13986719702 | |
15171142578 | |
监利县新沟镇韵达快递电话 | |
13997570134 | |
15672424494 | |
监利县新沟镇汇通快递电话 | |
15572063655 | |
监利县新沟镇申通快递电话 | |
13797484845'; | |
break; | |
case 2: | |
return '资料暂无...欢迎大家提供'; | |
break; | |
case 3: | |
//看新沟风景 | |
//图片格式 | |
$i = rand(0,4); | |
$tmpTpl = "<xml> | |
<ToUserName><![CDATA[%s]]></ToUserName> | |
<FromUserName><![CDATA[%s]]></FromUserName> | |
<CreateTime>%s</CreateTime> | |
<MsgType><![CDATA[news]]></MsgType> | |
<ArticleCount>1</ArticleCount> | |
<Articles> | |
<item> | |
<Title><![CDATA[新沟风景]]></Title> | |
<Description><![CDATA[%s]]></Description> | |
<PicUrl><![CDATA[%s]]></PicUrl> | |
</item> | |
</Articles> | |
</xml>"; | |
$resultStr = sprintf($tmpTpl, $this->fromUsername, $this->toUsername, time(),$this->imgs[$i],'http://2.youyong.app100718058.twsapp.com/img/xingou/'.($i+1).'.jpg'); | |
echo $resultStr; | |
exit; | |
break; | |
case 4: | |
//进行新沟普通话考试 | |
return '点击链接开始考试 | |
http://t.cn/8FlOcCF | |
'; | |
break; | |
case 5: | |
//进入新沟吧 | |
return '点击链接进入新沟吧 | |
http://t.cn/8FlOJdk'; | |
break; | |
case 6: | |
//进入新沟网 | |
return '点击链接进入新沟网 | |
http://www.xingouren.com/'; | |
break; | |
default : | |
return $this->menu; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment