<?php
$wechat = new Wechat();
//$wechat->Verification(); //第一次打开,验证签名
$data = $wechat->news();
class Wechat
{
/**
* @Content 验证微信签名
* @time 2018/8/31
* @author 童立京
*/
public function Verification()
{
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$echostr = $_GET['echostr'];
$tmpArr = array('wechat',$timestamp, $nonce);
sort($tmpArr, SORT_STRING);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $signature == $tmpStr ){
echo $echostr;
} else {
return false;
}
}
/**
* @Content 接收微信消息
* @time 2018/8/31
* @author 童立京
*/
public function news()
{
$dataObj = $GLOBALS["HTTP_RAW_POST_DATA"];
$data = simplexml_load_string($dataObj, 'SimpleXMLElement', LIBXML_NOCDATA);
$data = json_decode(json_encode($data),true);
$type = $data['MsgType'];
file_put_contents('1.log',$data);
switch ($type)
{
case 'text':
switch ($data['Content'])
{
case '图片':
echo $this->replyImg($data);
break;
case '武动乾坤':
echo $this->imgText($data);
break;
case '爱情':
echo $this->gaoBai($data);
break;
}
echo $this->reply($data);
break;
case 'event':
if ($data['EventKey'] == 'item1'){
echo $this->replyImg($data);die;
} else if ($data['EventKey'] == 'songs') {
echo $this->replyMusic($data);die;
}
echo $this->replyVoice($data);
break;
default:
echo $this->uncultivated($data);
}
}
/**
* @Content 关注推送消息
* @time 2018/8/31
* @author 童立京
*/
public function subscribe($data)
{
$text = '<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[%s]]></Content>
<FuncFlag>0</FuncFlag>
</xml>';
$content = '您的关注就是我们前进的动力';
$result = sprintf($text,$data['FromUserName'],$data['ToUserName'],time(),$content);
return $result;
}
/**
* @Content 回复普通消息
* @time 2018/8/31
* @author 童立京
*/
public function reply($data)
{
$text = '<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[%s]]></Content>
<FuncFlag>0</FuncFlag>
</xml>';
$content = '你好';
$result = sprintf($text,$data['FromUserName'],$data['ToUserName'],time(),$content);
return $result;
}
/**
* @Content 关键字回复图片
* @time 2018/9/1
* @author 童立京
*/
public function replyImg($data)
{
$xml = '<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[image]]></MsgType>
<Image>
<MediaId><![CDATA[%s]]></MediaId>
</Image>
<FuncFlag>0</FuncFlag>
</xml>';
$MediaId = 'z8qKlyRS1tOCSC6p7PsXhhxjZ_lA4-GGM3rTSRL5Mlj5YUWkmARHKilmpOqapsb0';
$result = sprintf($xml,$data['FromUserName'],$data['ToUserName'],time(),$MediaId);
//file_put_contents('1.log',$result);
return $result;
}
/**
* @Content 关键字回复图文消息
* @time 2018/9/1
* @author 童立京
*/
public function imgText($data)
{
$arr = array(
array(
'Title' => '武动乾坤',
'Description' => '武祖林动',
'PicUrl' => 'http://ww2.sinaimg.cn/wap720/0069Mkz5jw1fa4r2sqcrfj30ub0hstbf.jpg',
'Url' => 'https://www.baidu.com/'
),
array(
'Title' => '凌青竹',
'Description' => '武祖林动',
'PicUrl' => 'http://imgup01.myra2.com/2017-05/19/00/1495123992037_0.jpg',
'Url' => 'https://www.baidu.com/'
),
);
$item = '<item>
<Title><![CDATA[%s]]></Title>
<Description><![CDATA[%s]]></Description>
<PicUrl><![CDATA[%s]]></PicUrl>
<Url><![CDATA[%s]]></Url>
</item>';
$str = '';
foreach ($arr as $k => $v){
$str .= sprintf($item, $v['Title'], $v['Description'], $v['PicUrl'], $v['Url']);
}
$xml = '<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[news]]></MsgType>
<ArticleCount>2</ArticleCount>
<Articles>'.$str.'</Articles>
</xml>';
$result = sprintf($xml, $data['FromUserName'], $data['ToUserName'], time());
return $result;
}
/**
* @Content 关键字回复短视频
* @author 童立京
* @time 2018/9/4
*/
public function gaoBai($data)
{
$xml = '<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[video]]></MsgType>
<Video>
<MediaId><![CDATA[%s]]></MediaId>
<Title><![CDATA[%s]]></Title>
<Description><![CDATA[%s]]></Description>
</Video>
</xml>';
$MediaId = 'ty-mRGBqQqL5JeEX24bGQmW62SWiv9P3SAEjTG_icwN7Y5GXslZF8tkBXNNfw7Sd';
$title = '最美告白';
$Description = '爱对了叫爱情,爱错了叫青春';
$result = sprintf($xml, $data['FromUserName'], $data['ToUserName'], time(),$MediaId,$title,$Description);
return $result;
}
/**
* @Content 未涉及到技术
* @author 童立京
* @time 2018/9/4
*/
public function uncultivated($data)
{
$text = '<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[%s]]></Content>
<FuncFlag>0</FuncFlag>
</xml>';
$content = '钱不够,开发人员未定,设计人员暂无';
$result = sprintf($text,$data['FromUserName'],$data['ToUserName'],time(),$content);
return $result;
}
/**
* @Content 用户点击菜单回复一首音乐
* @author 童立京
* @time 2018/9/4
*/
public function replyMusic($data)
{
$xml = '<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[music]]></MsgType>
<Music>
<Title><![CDATA[%s]]></Title>
<Description><![CDATA[%s]]></Description>
<MusicUrl><![CDATA[%s]]></MusicUrl>
<HQMusicUrl><![CDATA[%s]]></HQMusicUrl>
<ThumbMediaId><![CDATA[%s]]></ThumbMediaId>
</Music>
</xml>';
$Title = '我已经爱上你';
$Description = '这首歌是杨二郎的成名曲,我已经爱上你';
$MusicUrl = 'https://music.163.com/#/outchain/2/1296183607/';
$HQMusicUrl = 'https://music.163.com/#/outchain/2/1296183607/';
$ThumbMediaId = 'z8qKlyRS1tOCSC6p7PsXhhxjZ_lA4-GGM3rTSRL5Mlj5YUWkmARHKilmpOqapsb0';
$result = sprintf($xml,$data['FromUserName'],$data['ToUserName'],time(),$Title,$Description,$MusicUrl,$HQMusicUrl,$ThumbMediaId);
return $result;
}
/**
* @Content 回复语音消息
* @author 童立京
* @time 2018/9/4
*/
public function replyVoice($data)
{
$xml = '<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[voice]]></MsgType>
<Voice>
<MediaId><![CDATA[%s]]></MediaId>
</Voice>
</xml>';
$MediaId = 'PAah_89pXsF0dsf-zn3mm70hBjcep4q4z3yTfC06WlBRhNoRkAa_8fSl-TFuKTPT';
$result = sprintf($xml,$data['FromUserName'],$data['ToUserName'],time(),$MediaId);
return $result;
}
}
?>