您的位置:首页 > 移动开发 > 微信开发

PHP微信开发入门(三)

2016-07-26 00:00 429 查看
摘要: 构造回复xml数据

下面,写一个构造自动回复消息的xml类,在微信接收到消息的时候,进行自动消息回复,贴上我的代码

<?php
class We_Xml {
/**
* 构造图文消息最小为1最大为20
* 可以从外部传入图文数组变量
* @var array
*/
public  $news = array (
"0" => array (
"title" => "图文消息0",//图文标题
"description" => "图文消息0",//图文描述
"picurl" => "http://www.baidu.com/xxx.jpg",//图片链接
"url" => "www.baidu.com"//图文消息地址
),
"1" => array (
"title" => "图文消息1",
"description" => "图文消息1",
"picurl" => "http://www.baidu.com/xxx.jpg",
"url" => "www.baidu.com"
),
"2" => array (
"title" => "图文消息2",
"description" => "图文消息2",
"picurl" => "http://www.baidu.com/xxx.jpg",
"url" => "www.baidu.com"
)
);
/**
* 回复文本消息
*
* @param string $toU 公众号id
* @param string $fromU  用户id
* @param string $time 时间
* @param string $msg 消息内容
* @return string
*/
public function send_Text($toU, $fromU, $time, $msg) {
$xml = "<xml>
<ToUserName><![CDATA[{$toU}]]></ToUserName>
<FromUserName><![CDATA[{$fromU}]]></FromUserName>
<CreateTime>{$time}</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[{$msg}]]></Content>
</xml>";
return $xml;
}

/**
* 回复图文消息
*
* @param string $toU 公众号id
* @param string $fromU 用户id
* @param string $time 时间
* @return string
*/
public function send_News($toU, $fromU, $time) {
$i=0;
$xml = "<xml>
<ToUserName><![CDATA[{$toU}]]></ToUserName>
<FromUserName><![CDATA[{$fromU}]]></FromUserName>
<CreateTime>{$time}</CreateTime>
<MsgType><![CDATA[news]]></MsgType>
<ArticleCount>%s</ArticleCount>
<Articles>";
$v="";
//循环构造图文消息
foreach ( $this->news as $x ) {
$c = "<item>
<Title><![CDATA[{$x['title']}]]></Title>
<Description><![CDATA[{$x['description']}]]></Description>
<PicUrl><![CDATA[{$x['picurl']}]]></PicUrl>
<Url><![CDATA[{$x['url']}]]></Url>
</item>";
$v = $v . $c;
$i++;
continue;
}
$v = $v . "\n</Articles>\n</xml>";
$retrun = $xml . $v;
//格式化计数
$retrun=sprintf($retrun,$i);
return $retrun;
}

/**
* 回复图片消息
*
* @param string $toU 公众号id
* @param string $fromU 用户id
* @param string $time 时间
* @param string $imgid 上传媒体id
* @return string
*/
public function send_Img($toU, $fromU, $time, $imgid) {
$xml = "<xml>
<ToUserName><![CDATA[{$toU}]]></ToUserName>
<FromUserName><![CDATA[{$fromU}]]></FromUserName>
<CreateTime>{$time}</CreateTime>
<MsgType><![CDATA[image]]></MsgType>
<Image>
<MediaId><![CDATA[{$imgid}]]></MediaId>
</Image>
</xml>";
return $xml;
}
public function send_Video($toU, $fromU, $time, $media_id){
$xml=<<<XML
<xml>
<ToUserName><![CDATA[{$toU}]]></ToUserName>
<FromUserName><![CDATA[{$fromU}]]></FromUserName>
<CreateTime>{$time}</CreateTime>
<MsgType><![CDATA[voice]]></MsgType>
<Voice>
<MediaId><![CDATA[{$media_id}]]></MediaId>
</Voice>
</xml>
XML;
return $xml;
}
/**
* 回复视频消息
*
* @param string $toU 公众号id
* @param string $fromU用户id
* @param string $time 时间
* @param string $media_id 上传媒体id
* @param string $title 视频标题
* @param string $description 视频描述
* @return string
*/
public function send_Audio($toU, $fromU, $time, $media_id,$title,$description){
$xml=<<<XML
<xml>
<ToUserName><![CDATA[{$toU}]]></ToUserName>
<FromUserName><![CDATA[{$fromU}]]></FromUserName>
<CreateTime>{$time}</CreateTime>
<MsgType><![CDATA[video]]></MsgType>
<Video>
<MediaId><![CDATA[{$media_id}]]></MediaId>
<Title><![CDATA[{$title}]]></Title>
<Description><![CDATA[{$description}]]></Description>
</Video>
</xml>
XML;
return $xml;
}
/**
* 回复音乐消息
*
* @param string $toU 公众号id
* @param string $fromU 用户id
* @param string $time 时间
* @param string $media_id 上传媒体id
* @param string $title 标题
* @param string $description 描述
* @param string $url 音乐地址
* @param string $HQ_url 高清音乐地址,在WiFi环境下优先调用
* @return string
*/
public function send_Music($toU, $fromU, $time, $media_id,$title,$description,$url,$HQ_url=null){
//如果未添加$HQ_url则使他与$url相同
if($HQ_url=null){
$HQ_url=$url;
}
$xml=<<<XML
<xml>
<ToUserName><![CDATA[{$toU}]]></ToUserName>
<FromUserName><![CDATA[{$fromU}]]></FromUserName>
<CreateTime>{$time}</CreateTime>
<MsgType><![CDATA[music]]></MsgType>
<Music>
<Title><![CDATA[{$title}]]></Title>
<Description><![CDATA[{$description}]]></Description>
<MusicUrl><![CDATA[{$url}]]></MusicUrl>
<HQMusicUrl><![CDATA[{$HQ_url}]]></HQMusicUrl>
<ThumbMediaId><![CDATA[{$media_id}]]></ThumbMediaId>
</Music>
</xml>
XML;
return $xml;
}
/**
* 回复语音消息
*
* @param string $toUser
* @param string $fromUser
* @param string $time
* @param string $media_id
* @return string
*/
public function send_voice($toUser,$fromUser,$time,$media_id){

$xml=<<<XML
<xml>
<ToUserName><![CDATA[{$toUser}]]></ToUserName>
<FromUserName><![CDATA[{$fromUser}]]></FromUserName>
<CreateTime>{$time}</CreateTime>
<MsgType><![CDATA[voice]]></MsgType>
<Voice>
<MediaId><![CDATA[{$media_id}]]></MediaId>
</Voice>
</xml>
XML;
return $xml;
}
}
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php;微信开发