当用户在公众号内发送消息时,我们可以在服务器配置完好的前提下,通过相关代码,接收用户发送的信息,并予以相应的回复!
代码如下
<?php
// 接收用户发送消息(二选一)
// $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];//全局变量 存的用户的发送的信息
$postStr = file_get_contents("php://input"); // 但是有的服务器 如果使用 $GLOBALS 接不到值 使用
// 存储用户发送的消息
file_put_contents('data.txt',$postStr);
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);// 数据对象
$fromUsername = $postObj->FromUserName; // 发送者 信息
$toUsername = $postObj->ToUserName; // 接受者 信息 公众号
$msgtype = $postObj->MsgType; // 获取消息的类型
$keyword = trim($postObj->Content); // 接收发送的文本
$EventKey = $postObj->EventKey; // 获取click事件的值 公众号
// 按键回复
if($EventKey == 'music'){
echo '<xml>
<ToUserName><![CDATA['.$fromUsername.']]></ToUserName>
<FromUserName><![CDATA['.$toUsername.']]></FromUserName>
<CreateTime>'.time().'</CreateTime>
<MsgType><![CDATA[music]]></MsgType>
<Music>
<Title><![CDATA[我要找到你]]></Title>
<Description><![CDATA[《我要找到你》是由陈明演唱的一首歌]]></Description>
<MusicUrl><![CDATA[https://music.163.com/outchain/player?type=2&id=212964&auto=1&height=66]]></MusicUrl>
<HQMusicUrl><![CDATA[https://music.163.com/outchain/player?type=2&id=212964&auto=1&height=66]]></HQMusicUrl>
</Music>
</xml>';
}
// 接收消息回复
switch($keyword){
case 1:
// 回复文本
$str = '<xml>
<ToUserName><![CDATA['.$fromUsername.']]></ToUserName>
<FromUserName><![CDATA['.$toUsername.']]></FromUserName>
<CreateTime>'.time().'</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[世界很大,我想去看看]]></Content>
</xml>';
break;
case 2:
// 回复图片消息
$str = '<xml>
<ToUserName><![CDATA['.$fromUsername.']]></ToUserName>
<FromUserName><![CDATA['.$toUsername.']]></FromUserName>
<CreateTime>'.time().'</CreateTime>
<MsgType><![CDATA[image]]></MsgType>
<Image>
<MediaId><![CDATA[通过素材管理中的接口上传多媒体文件,得到的图片id]]></MediaId>
</Image>
</xml>';
break;
case 3:
// 回复语音消息
$str = '<xml>
<ToUserName><![CDATA['.$fromUsername.']]></ToUserName>
<FromUserName><![CDATA['.$toUsername.']]></FromUserName>
<CreateTime>'.time().'</CreateTime>
<MsgType><![CDATA[voice]]></MsgType>
<Voice>
<MediaId><![CDATA[通过素材管理中的接口上传多媒体文件,得到的语音消息id]]></MediaId>
</Voice>
</xml>';
break;
case 4:
// 回复视频消息
$str = '<xml>
<ToUserName><![CDATA['.$fromUsername.']]></ToUserName>
<FromUserName><![CDATA['.$toUsername.']]></FromUserName>
<CreateTime>'.time().'</CreateTime>
<MsgType><![CDATA[video]]></MsgType>
<Video>
<MediaId><![CDATA[通过素材管理中的接口上传多媒体文件,得到的视频消息id]]></MediaId>
<Title><![CDATA[那些年]]></Title>
<Description><![CDATA[回不去的曾经!]]></Description>
</Video>
</xml>';
break;
case 5:
// 回复音乐消息
$str = '<xml>
<ToUserName><![CDATA['.$fromUsername.']]></ToUserName>
<FromUserName><![CDATA['.$toUsername.']]></FromUserName>
<CreateTime>'.time().'</CreateTime>
<MsgType><![CDATA[music]]></MsgType>
<Music>
<Title><![CDATA[我要找到你]]></Title>
<Description><![CDATA[《我要找到你》是由陈明演唱的一首歌]]></Description>
<MusicUrl><![CDATA[https://music.163.com/outchain/player?type=2&id=212964&auto=1&height=66]]></MusicUrl>
<HQMusicUrl><![CDATA[https://music.163.com/outchain/player?type=2&id=212964&auto=1&height=66]]></HQMusicUrl>
</Music>
</xml>';
break;
// 回复图文消息
case 6:
$str = '<xml>
<ToUserName><![CDATA['.$fromUsername.']]></ToUserName>
<FromUserName><![CDATA['.$toUsername.']]></FromUserName>
<CreateTime>'.time().'</CreateTime>
<MsgType><![CDATA[news]]></MsgType>
<ArticleCount>1</ArticleCount>
<Articles>
<item>
<Title><![CDATA[图文消息标题:往前走,亦或回头]]></Title>
<Description><![CDATA[图文消息描述:一生的旅程]]></Description>
<PicUrl><![CDATA[图片链接,支持JPG、PNG格式,较好的效果为大图360200,小图200200]]></PicUrl>
<Url><![CDATA[点击图文消息跳转链接]]></Url>
</item>
</Articles>
</xml>';
break;
default:
// 回复文本
$str = '<xml>
<ToUserName><![CDATA['.$fromUsername.']]></ToUserName>
<FromUserName><![CDATA['.$toUsername.']]></FromUserName>
<CreateTime>'.time().'</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[请回复数字:【1 2 3 4 5 6】以体验不同的功能]]></Content>
</xml>';
break;
}
echo $str;
评论 (0)