博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP微信开发入门(二)
阅读量:6244 次
发布时间:2019-06-22

本文共 2760 字,大约阅读时间需要 9 分钟。

  hot3.png

微信服务器消息推送

微信的消息推送方式是客户操作微信发生一系列事件,然后腾讯微信服务器发送一个XML数据POST请求把事件描述发送到你填写的服务器URL上,你的服务器处理完结果后,将数据输出给微信服务器。

  • 示例代码
FromUserName; //取得接收方的id(你的公众号id) $toUsername = $postObj->ToUserName; //取得消息类型 $type = $postObj->MsgType; //取得服务器当前时间 $time = time (); //判断消息类型 switch ($type) { //文本消息 case "text" : //这里也可以用case或者是数据库模糊匹配人工智能等筛选并返回回答数据 //取得用户发送的文本消息 $keyword = htmlspecialchars ( trim ( $postObj->Content ) ); if ($keyword == "你好") { $contentStr = "你也好哟"; echo $this->SendText ( $fromUsername, $toUsername, $time, $contentStr ); break; } else { $contentStr = "啥?你说啥?"; echo $this->SendText ( $fromUsername, $toUsername, $time, $contentStr ); break; } //图片消息 case "image" : $contentStr = "谢谢哟,我会好好保存的"; echo $this->SendText ( $fromUsername, $toUsername, $time, $contentStr ); //获取用户发送的图片 $img = file_get_contents ( $postObj->PicUrl ); break; //声音消息 case "voice" : $contentStr = "我现在听不懂说话的啦"; echo $this->SendText ( $fromUsername, $toUsername, $time, $contentStr ); break; //位置消息 case "location" : //取得用户发送的地址信息,并且返回消息加上用户地址给用户 $contentStr = "原来你在 " . $postObj->Label . "呀"; echo $this->SendText ( $fromUsername, $toUsername, $time, $contentStr ); break; //小视频 case "shortvideo" : //取得视频消息媒体id,可以调用多媒体文件下载接口拉取数据。 $vimg = $postObj->ThumbMediaId; //取得视频消息媒体id,可以调用多媒体文件下载接口拉取数据。 $video=$postObj->MediaId ; $contentStr = "这啥小视频???"; echo $this->SendText ( $fromUsername, $toUsername, $time, $contentStr ); break; //视频消息 case "video" : //取得视频消息媒体id,可以调用多媒体文件下载接口拉取数据。 $vimg = $postObj->ThumbMediaId; //取得视频消息媒体id,可以调用多媒体文件下载接口拉取数据。 $video=$postObj->MediaId ; $contentStr = "这啥视频???"; echo $this->SendText ( $fromUsername, $toUsername, $time, $contentStr ); break; //链接消息 case "link": $titel=$postObj->Title; $Description=$postObj->Description; $Url=$postObj->Url; $contentStr ="链接标题是->{$titel} 描述是{$Description} 链接地址是{$Url}"; echo $this->SendText ( $fromUsername, $toUsername, $time, $contentStr ); break; case "event": $contentStr ="这是事件"; echo $this->SendText ( $fromUsername, $toUsername, $time, $contentStr ); break; } } } /* * 构造发送数据的方法 * * @param String $toU 公众号的id * * @param String $fromU 用户的ID * * @param int $time 服务器当前时间 * * @param String $msg 文本消息内容 * * @return 返回xml数据 * */ public function SendText($toU, $fromU, $time, $msg) { $xml = "
{$time}
"; return $xml; }}

在后面我们可以构造一个xml类来合成处理各种消息的推送方法。

转载于:https://my.oschina.net/VenusV/blog/708709

你可能感兴趣的文章
我的友情链接
查看>>
话里话外:企业管理的五个层次
查看>>
Hazelcast集群服务(3)
查看>>
研究人员创建可***BIOS和网卡的恶意软件
查看>>
C++ numeric_limits的用法
查看>>
升级maildrop,解决自动回复乱码问题
查看>>
MySQL Sandbox---快速体验各版本MySQL
查看>>
我的友情链接
查看>>
CentOS安装KDE和Gnome
查看>>
非常有趣的js
查看>>
Spring 单元测试
查看>>
品读Mybatis源码---(1)解析配置文件
查看>>
android获取设备分辨率的新方法
查看>>
函数式对象之自指向
查看>>
内建控制结构之变量范围
查看>>
我的友情链接
查看>>
解决Zabbix Grafana 2.5.0.1 不支持7day趋势数据显示
查看>>
JDBC为什么要使用PreparedStatement而不是Statement
查看>>
Cloud9 on Docker镜像发送
查看>>
图片交易平台Scoopshot获120万美元投资
查看>>