php微信公众号开发入门,PHP微信公众号开发入门(二)

好了,上一篇已经介绍到了如何成为一个微信开发者,并且简单介绍了如何获取和发送简单的文本信息,这次就来介绍一下其他类型数据的接收和发送方式。

我们可以通过微信端给我们发送来的xml来判断用户发送消息的类型,比如文本,图片,音频等等,具体获取看代码

$postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //获取POST数据

$postObj = simplexml_load_string($postStr,'SimpleXMLElement',LIBXML_NOCDATA);//这就是微信发来的xml

$fromUsername = $postObj->FromUserName; //获取发送方帐号(OpenID)

$toUsername = $postObj->ToUserName; //获取接收方账号

$keyword = trim($postObj->Content); //获取消息内容

$masType = $postObj->MsgType;//获取消息类型

$time = time(); //获取当前时间戳

可以看到,获取到的xml中,MsgType就是用户发送数据的类型,分别有 'text'(文本),'image'(图片),location(位置),voice(音频),video(视频)等。我们就做一个简单的根据用户发送类型来返回相应数据的demo。

首先用switch case来区分不同的类型,这个函数不知道的自己百度,而后对应来编写代码

1,文字

我们就做成简单的 “你发送的是:”格式的demo。先定义回复文本格式的xml模板,而后把刚获取的用户文字和我们需要的内容合并,最后通过 resultStr() 函数来格式化消息模板。函数用法自行百度

//返回消息模板

$textTpl = "%s

0";

switch ($masType) {

case 'text'://文字

$msgType = "text"; //消息类型

$contentStr = '你发送的是:'.$keyword;

$resultStr = sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr);

echo $resultStr;

break;

这样就会得到一个这样的回复。

625bd30b6c964dac7714536694f60268.png

image.png

2.图片

同样的,我们还是做一个把用户发来的图片再发回给他的demo。用户在像我们的公众号发送图片的时候,微信平台会在保存图片的同时,给这张图片一个唯一的URL以及mediaId,这个URL在浏览器直接访问就是你的那张图片。开发者需要在服务器获取该图片的mediaId,而后再按照格式发送给微信方,微信就会返还对应这个mediaId的图片给用户。

$picUrl = $postObj->PicUrl;//图片的链接

$mediaId = $postObj->MediaId;//图片消息媒体id

$msgType = "image";

$replyXml = "%s";

echo sprintf($replyXml,$postObj->FromUserName,$postObj->ToUserName,time(),$msgType,$mediaId);

86e57e5db0a34c617967288ed85e9950.png

image.png

另外,如果你想发送指定的图片给客户,那么你需要先在开发者端把图片发送给微信方,而后获取这个图片的mediaId,你可以选择发送临时素材(保存三天)或者永久素材,具体操作请看微信官方文档。

3.图文

我们自己关注的公众号,给我们发送最多的消息应该就是图文消息了,就是类似这样的

a1d9527db61b4f50db9b357431687707.png

image.png

大家肯定都知道,这样的消息,在微信公众平台,点点敲敲的就可以发送了,但是这完全没有开发者的代码逻辑在内,也无法完全控制,所以我们要用代码来实现这个功能。

首先我们定义一个二维数组,其中的参数名称如代码所示

$newsArr = array(

array(

"Title"=>"本世纪最像王昊的男人!",

"Description"=>"究竟是为何和王昊长得如此相像?",

"PicUrl"=>"http://5b0988e595225.cdn.sohucs.com/images/20171019/aab0f430638b4b1f87e48d19054b7b60.jpeg",

"Url"=>"http://www.wanghao-home.club"

),

array(

"Title"=>"艳照门祖师爷再现江湖!",

"Description"=>"究竟是电脑坏了还是存心所为…",

"PicUrl"=>"http://g.hiphotos.baidu.com/baike/pic/item/060828381f30e92496694c1044086e061c95f7c6.jpg",

"Url"=>"http://www.wanghao-home.club"

),

array(

"Title"=>"音乐才子竟拜师?",

"Description"=>"伯克利音乐才子竟然为何拜师王昊门下?让我们来一探究竟!",

"PicUrl"=>"http://img01.e23.cn/2017/1003/20171003094603817.jpg",

"Url"=>"http://www.wanghao-home.club"

)

);

可以看到,这个二维数组中,一级数组一个,二级数组三个,其中的参数也都相同

Title:文章标题 Description:文章描述 PicUrl:文章图片 Url:点击会跳转的链接

好了,数组定义完成,我们就要把数组处理成为微信可以接收的xml数据了,这里我给你提供一个方法

//判断是否为数组类型

if(!is_array($newsArr))

{

return;

}

// 判断数组是否为空数组

if(!$newsArr)

{

return;

}

$itemStr = "";

//定义item模板

$itemXml = "";

foreach($newsArr as $item)

{

$itemStr .= sprintf($itemXml,$item['Title'],$item['Description'],$item['PicUrl'],$item['Url']);

}

$replyXml = "%s

".count($newsArr)."

".$itemStr."";

echo sprintf($replyXml,$postObj->FromUserName,$postObj->ToUserName,time());

代码里也没有什么复杂的地方,就是一个循环赋值的过程,最后再格式化返回给微信方,这样我们的用户就会收到这样的一个图文消息

7109faaedac6641c967ca32c2f9d2b13.png

image.png

并且点击对应的内容,就会跳转到 www.wanghao-home.club

4.用户关注

用户在关注我们公众号时,公众平台会发送给我们一个xml数据,我们可以获取其中的事件(Event),来判断,而后回复给用户一个欢迎语句

if($postObj->Event == 'subscribe'){

$msgType = "text"; //消息类型

$contentStr = '感谢您关注wellHome!';

$resultStr = sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr);

echo $resultStr;

}

还有就是,个人开发者的订阅号现在无法进行微信认证,所以无法自定义菜单以及一切琐碎的功能,这点这得是让我心碎啊。

自定义菜单也很简单,我们只需要准备一个 json 数组,而后根据开发者的 AppID 和 AppSecret ,在公众平台上获取一个Access_token,而后token通过验证,你的数组就可以成为公众号的菜单了。并且微信还提供了多种事件,开发者可以在代码中,通过用户不同事件所发送的值以及菜单中你自己定义的 Key值就可以做对应的操作了。

这篇文章暂时先介绍这三种回复内容的格式,下一篇再详细介绍其他内容格式,希望会对您有所帮助。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
phpWechat 是由一个具有多年行业开发经验的前端 UI 设计师、PHP开发工程师组成的团队设计、研发的一套的微信公众平台管理系统,您可以瞬间完成一个公共号或者PC站或者两者皆有的平台搭建。 phpWeChat 微信+网站开发框架功能亮点: 1、100%开源,没有任何加密文件 phpWeChat核心文件100%开源,没有任何加密文件,开发者可以放心使用而无需担心留有后门程序等。 2、程序轻量级,一天读完所有代码 核心框架压缩包只有2.66M,十分利于开发者迅速阅读全部代码。 3、代码严谨,结构清晰 phpWeChat使用MVC开发模式,各个功能模块之间独立并目录结构统一。开发者可迅速掌握phpWeChat的框架结构。 4、开发文档十分完善 我们提供了完善的phpWeChat开发文档,便于开发者学习与查阅。 5、高度集成微信接口 phpWeChat高度集成了微信公共号的自动回复、菜单管理、素材管理、模板消息、粉丝管理、微信支付等常用接口,您只需一个函数或2/3行代码即可实现原本需要很费时费力才能开发的功能。 6、phpWeChat也是一个PC(网站)开发框架和CMS 慢慢您会发现,phpWeChat是一个更接近CMS功能的框架。 7、高度封装常用开发功能 只需一两行固定的代码,您便可以写出列表分页、微信支付、文件上传、邮件发送、短信发送等功能。 8、数据结构合理,负载强劲 phpWeChat集成了常见的内存级缓存(MemCache)、文件缓存处理方案,使得系统更符合大数据、大并发的公共号或网站使用。 9、集成应用市场,功能拓展一瞬间 phpWeChat集成了应用市场并在线安装应用的功能,您可以在一瞬间安装完成其他开发开发的功能模块。 phpWeChat安装方法: 将下载的程序压缩包(zip格式)解压后,将全部文件和文件夹上传至网站根目录。然后输入域名/install.php 即可进入安装程序。 注意:安装phpWeChat前请先创建好phpWeChat所需的数据库。 phpWeChat 目录结构: addons 功能模块目录 admin 公用后台目录 api 插件目录 data 数据缓存目录 install 安装程序目录,安装后请改名或删除 include 公用操作类目录 statics 静态文件目录 template 视图(模板)目录 upload 上传文件存放目录 phpWeChat 更新日志: 新版v1.0.3发布: phpWeChat PC+微信公众号开发核心框架v1.0.3针对v1.0.2版本出现的问题,主要修复了和增加了以下功能: 1、优化自定义模块操作; 2、优化安装过程; 3、修复一处在线支付的PHP版本兼容问题; 4、修复一处自定义模块的问题; 5、修复后台模块管理显示未知版本的bug; 6、修复粉丝行为IP报错的Bug; 7、删除一些冗余代码; 8、修复消息模板不存在时,一直提示[同步中]的bug。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值