我是
靠谱客的博主
儒雅唇彩,最近开发中收集的这篇文章主要介绍
微信公众号开发完整教程(二) PHP7.0版本,TP5.0框架,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
因为工作的需要,这一两年对微信公众号和小程序,项目制作的比较多。所以我才打算写一篇全面的制作教程,当然了,最好的教程是微信工作平台的文档。我这里只是讲述一下我的工作中的制作流程。所有相关文章的源码,我托管在我自己的github上面,欢迎关注:地址点击打开链接。接下来开始我们的教程。
上述第一节我讲述了开发者模式的开启和简单的获取access_token并缓存,以及简单的测试,这一节我们暂时并不需要使用这个
access_token的参数,大部分先讲述我们的测试代码的那一部分,并完善一下:(其中我会引入百度地图和图灵机器人等技术),因为公司开发的时候使用到这样的技术,所以我就给大家讲述一下:开始:
1.消息的接受:
接受消息时微信会根据用户的内容将消息进行划分。分别有文本消息、图片消息、语言消息、视频、连接等消息。当用户与公众平台产生了消息互动每次消息都会请求自定义的URL地址。在请求的过程中各种参数是使用xml格式传输。接受消息即从微信请求的过程中获取相关的数据。
代码中使用的变量替换,使用了PHP的函数
sprintf
大家可以查阅一下,它的作用无非就是让变量可以依次替换掉。
1.1.接受文本消息:
格式如上:代码如下:文字模板
// 文字模板
$textTpl
=
"<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Content><![CDATA[%s]]></Content>
<FuncFlag>0</FuncFlag>
</xml>";
测试的结果大家在第一节已经看到,我再次就不在演示
1.2接受图片消息:
代码如下:
// 图片模板
$picTpl
=
"<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Image>
<MediaId><![CDATA[%s]]></MediaId>
</Image>
</xml>";
代码如下:
测试结果为:
1.3:接受语言消息:
模板如下:
代码如下:
}
elseif($msgType
==
"voice"){
$contentStr
=
"语音消息MediaId为:"
.$postObj
->MediaId
.
'具体内容为:'
.$postObj
->Recognition;
$resultStr
=
sprintf($textTpl, $fromUsername, $toUsername, $time,
'text', $contentStr);
echo $resultStr;
}
结果如下:上述代码中我们使用了一个:
再附上一张我测试有结果的图:
1.4接受视频消息:
文档如下:
代码如下:
elseif($msgType
==
"video"){
$contentStr
=
"视频消息MediaId为:"
.$postObj
->MediaId;
$resultStr
=
sprintf($textTpl, $fromUsername, $toUsername, $time,
'text', $contentStr);
echo $resultStr;
}
1.5:接受地理位置:
代码:
elseif($MsgType
==
'location'){
$contentStr
=
"经度为:"
.$postObj
->Location_Y
.
'维度'
.$postObj
->Location_X
.
'具体地址为:'
.$postObj
->Label;
$resultStr
=
sprintf($textTpl, $fromUsername, $toUsername, $time,
'text', $contentStr);
file_put_contents(
'2', $resultStr);
echo $resultStr;
}
结果如下:
1.6:接受链接消息:
文档如下:
代码如下:
elseif($MsgType
==
'link'){
$contentStr
=
'消息的标题为'
.$postObj
->Title;
$resultStr
=
sprintf($textTpl, $fromUsername, $toUsername, $time,
'text', $contentStr);
file_put_contents(
'2', $resultStr);
echo $resultStr;
}
结果如下:
上述几种情况都是使用的text模板接受的消息。设置微信回复的内容。接下来我们对回复内容的格式进行丰富:
2.消息的回复:
2.1回复文本消息:
格式如下:
代码如下:
2.2:回复图片的消息:
代码如下:
结果如下:
2.3回复语音的消息:
模板:
$voiceTpl
=
"<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Voice>
<MediaId><![CDATA[%s]]></MediaId>
</Voice>
</xml>";
回复代码:
elseif($keyword
==
'语音'){
// 关于此MediaId需要从素材库中获得,没有可以临时使用消息返回的媒体ID
$MediaId
=
'3XlXZ4-r2OTNYTFAkcmpWv4QjWtwg_15B4PytQJVwOAwHpOfc38mGZTSDkDXx9po';
$resultStr
=
sprintf($voiceTpl, $fromUsername, $toUsername, $time,
'voice',$MediaId);
echo $resultStr;
}
结果如下:
2.4:回复视频的消息:
模板如下:
在线调试接口上传视频素材:
视频模板:
$VideoTpl
=
"<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Video>
<MediaId><![CDATA[%s]]></MediaId>
<Title><![CDATA[%s]]></Title>
<Description><![CDATA[%s]]></Description>
</Video>
</xml>";
回复代码如下:
elseif($keyword
==
"视频"){
//关于此MediaId需要从素材库中获得,没有可以使用临时消息返回的媒体id
$MediaId
=
"xxMyAoPbUt1u3q5Z95xrhafNzyvL3Tg08E-9Ub2m6db_Elj4XAJHr2pUOqLhREyB";
$Title
= $Description
=
"视频还是好看的";
$resultStr
=
sprintf($VideoTpl, $fromUsername, $toUsername, $time,
'video', $MediaId, $Title,$Description);
echo $resultStr;
}
结果如下:
2.5:回复图文消息:
文档信息:
图文模板:
// 图文模板
$newsTpc
=
"<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<ArticleCount>%d</ArticleCount>
<Articles>%s</Articles>
</xml>";
回复代码:
elseif($keyword
==
"图文"){
$data
=
array(
array(
'Title'
=>
'图文消息',
'Description'
=>
'效果好像还不错啊',
'PicUrl'
=>
'http://mmbiz.qpic.cn/mmbiz_jpg/E3TENE8JsTAqus3ic5qEtt4wl14ibBu4UaobarzTVOP18Awt83hkZM0aI9XStapN4xay6JI4lfm0H7QnKSfxQyVA/0',
'Url'
=>
'http://xiaomi.com')
);
file_put_contents(
'2',$data[
0][
'Title']);
for ($i
=
0; $i
<
count($data); $i
++) {
$Articles
.=
"<item>
<Title><![CDATA[{$data
[$i
]['Title']}]]></Title>
<Description><![CDATA[{$data
[$i
]['Description']}]]></Description>
<PicUrl><![CDATA[{$data
[$i
]['PicUrl']}]]></PicUrl>
<Url><![CDATA[{$data
[$i
]['Url']}]]></Url>
</item>";
}
$count
=
count($data);
$resultStr
=
sprintf($newsTpc, $fromUsername, $toUsername, $time,
'news',$count,$Articles);
echo $resultStr;
}
结果如下:
到此为止我们对所有的接受和回复的代码进行的书写和演示,所有的源码我会放在我的github上面,大家可以下载和关注,这一节到此为止,下一节开始使用我们的access_token开始我们的自定义菜单。
最后
以上就是儒雅唇彩为你收集整理的微信公众号开发完整教程(二) PHP7.0版本,TP5.0框架的全部内容,希望文章能够帮你解决微信公众号开发完整教程(二) PHP7.0版本,TP5.0框架所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复