前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP微信开发入门(三)

PHP微信开发入门(三)

作者头像
Pulsar-V
发布2018-04-18 17:05:56
1.4K0
发布2018-04-18 17:05:56
举报
文章被收录于专栏:Pulsar-V

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

代码语言:javascript
复制
<?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;
	}
}
?>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
语音消息
语音消息(Voice Message Service,VMS)通过腾讯云提供的语音专线,为客户提供语音告警、语音通知、语音验证码等服务。语音消息具有高到达率、超低延时、秒级触达的优势,致力于提供优质的语音消息服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档