PHP微信开发入门(三)
2016-07-26 00:00
429 查看
摘要: 构造回复xml数据
下面,写一个构造自动回复消息的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微信开发入门(一)
- 模拟微信登录
- 微信支付WxpayAPI_php_v3(二)支付功能开发
- 微信支付WxpayAPI_php_v3(一)sdk简介与错误修改
- 修改源码自定义SwipeRefreshLayout样式——高仿微信朋友圈下拉刷新
- 关于java中map存储多行的小程序(一键对多值)
- Android集成微信支付SDK
- 前端开发,怎样禁止微信内置浏览器的缓存?
- 微信的演进和未来
- 仿微信支付宝输入密码框
- 微信公众号入门
- 微信红包随机算法初探
- 前端微信支付js代码
- 实现类似微信朋友圈或者QQ空间,评论回复,九宫格布局。处理键盘弹出后定位到当前点击的被评论人处。另:滑动时候FPS在57-60之间,纵享丝滑
- 微信分享透明背景图片背景变黑
- 微信支付开发
- 微信图片压缩
- 微信开发——微信公众平台实现消息接收以及消息的处理(Java版)
- 微信开发 access_token 缓存方法
- share QQ、微信、微博三方登录