文档章节

PHP微信开发入门(三)

Pulsar-V
 Pulsar-V
发布于 2016/07/26 14:38
字数 809
阅读 56
收藏 1
PHP

 

下面,写一个构造自动回复消息的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;
	}
}
?>

 

© 著作权归作者所有

Pulsar-V

Pulsar-V

粉丝 58
博文 137
码字总数 118996
作品 1
成都
后端工程师
私信 提问
【腾讯云的1001种玩法】微信个人订阅号后台server搭建入门教程

搭建公众号后台server 以腾讯云自带的ubuntu14.04为例: 1.安装nginx+php7+mysql5,以及需要的扩展; 由于ubuntu14.04默认软件库为php5,需要加入第三方库,来apt-get方式安装PHP7; 当然,也...

2017/12/18
0
0
移动开发之微信小程序——资料集合

本文转载自:知乎 有需要下载的客官可可以点击知乎去下载相关资料 一:官方地址集合: 1:官方工具:https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html?t=1476434678461 2:...

DJY1992
2016/12/21
0
0
你应该用3个小时学会编程

文章摘要: 人每天都在进行编程工作,编程对于人来说是很自然的. 你完全有能力在3个小时内学会编程. 也有必要闪电般的学会编程,以确认你是否喜欢这一行,并降低学习. 本文中的实验者–一个0基础...

燕十八
2014/01/07
0
0
微信公众号开发入门中遇到的坑

微信公众号开发和正常的API开发区别不是很大,区别在于:我们需要按照他的一些规定输出(echo 打印) XML数据,大体思路如下: 所有的入口都是调你的 index.php (主页)API ,区别在于不同的...

满损谦益
2017/12/05
0
0
微信小程序免费视频+精品教程合集+demo合集(长期更新,推荐收藏)

1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=1476434678461 2:简易教程:https://mp.weixin.qq.com/debug/wxadoc/dev/?t=1476434677599 3:设计指南:https://mp.weixin.qq.......

qianmenchuxue
2016/10/22
706
0

没有更多内容

加载失败,请刷新页面

加载更多

Webpack打包优化:使用外链与拆包模式

一、发现问题 这是一个基于 vue-cli 的管理后台项目,由于依赖较多,打包结果如下 二、查找原因 为什么 vendor 体积这么大? 引用的库太多时,vendor的体积会很大,借助 Webpack 的分析工具,...

AI考拉
35分钟前
1
0
MSSQL-最佳实践-Always Encrypted

author: 风移 摘要 在SQL Server安全系列专题月报分享中,往期我们已经陆续分享了:如何使用对称密钥实现SQL Server列加密技术、使用非对称密钥实现SQL Server列加密、使用混合密钥实现SQL S...

阿里云云栖社区
37分钟前
7
0
ES 集群上,业务单点如何优化升级?

摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! ES 基础 ES 集群 ES 集群上业务优化 一、ES 基础 ES 的安装下载,网上一大片,我这...

泥瓦匠BYSocket
53分钟前
8
0
input accept属性限制文件上传格式

上传文件的类型;具体做法如下所示: 注意:accept属性可以限制上传格式,其有兼容性如下 《1》上传.csv格式的 <input text="file" accept=".csv" /> 《2》上传.xls格式 <input text="file"......

Jack088
今天
2
0
使用scp命令在多个Linux系统间进行文件复制

一,什么是scp scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。scp命令可以在linux服务器之间复制文件和目录.scp使用ssh安全协议传输数据,具有和ssh一样的验证机制,从而安全的远...

老孟的Linux私房菜
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部