微信开发之事件推送与被动回复
来源:互联网 发布:猪八戒的前世今生 知乎 编辑:程序博客网 时间:2024/05/15 23:45
直接上代码,公众号后台基本配置:
设置URL、token、EncodingAESKey,并退出启用改配置,后上代码
class TestController extends Controller{//公众号后台的URL的接口 public function index() { //将timestamp,nonce,token按字典序排序 $timestamp = $_GET['timestamp']; $nonce = $_GET['nonce']; $token = 'weixin'; $signature = $_GET['signature']; //将排序之后的三个参数拼接之后用sha1加密 $array = array($timestamp, $nonce, $token); sort($array); $tmpstr = implode('', $array); $tmpstr = sha1($tmpstr); //将加密后的字符串与sianature进行对比,判断请求是否来自于微信 if ($tmpstr == $signature && $_GET['echostr']) {//第一次接入微信Api echo $_GET['echostr']; exit; } else { $this->responseMsg(); } } public function responseMsg() { //接收到的用户消息格式<xml> $postArr = $GLOBALS['HTTP_RAW_POST_DATA'];// 接收到的消息格式// <xml>// <ToUserName><![CDATA[toUser]]></ToUserName>// <FromUserName><![CDATA[FromUser]]></FromUserName>// <CreateTime>123456789</CreateTime>// <MsgType><![CDATA[event]]></MsgType>// <Event><![CDATA[subscribe]]></Event>// </xml> //把接收到的xml格式数据包转化为对象格式 $postObj = simplexml_load_string($postArr);// 被动回复用户消息格式// <xml>// <ToUserName><![CDATA[toUser]]></ToUserName>// <FromUserName><![CDATA[fromUser]]></FromUserName>// <CreateTime>12345678</CreateTime>// <MsgType><![CDATA[text]]></MsgType>// <Content><![CDATA[你好]]></Content>// </xml> if (strtolower($postObj->MsgType) == 'event') {//判断是否为订阅的事件推送 if (strtolower($postObj->Event) == 'subscribe') {//判断是否为关注的事件推送 $toUser = $postObj->FromUserName; $fromUser = $postObj->ToUserName; $time = time(); $msgType = 'text'; $content = '你好:'.$postObj->FromUserName.'!欢迎关注我们的微信公众号'; $template = "<xml> <ToUserName><![CDATA[%s]]></ToUserNames> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[%s]]></MsgType> <Content><![CDATA[%s]]></Content> </xml>"; $info = sprintf($template, $toUser, $fromUser, $time, $msgType, $content); echo $info; } } }
0 0
- 微信开发之事件推送与被动回复
- 微信开发(一):接收事件推送并回复
- 微信开发接入,附简单微信被动回复
- 微信 被动回复 (五)
- C#微信公众号开发系列教程六(被动回复与上传下载多媒体文件)
- 微信公众号开发--消息的接收与被动回复消息
- 微信公众平台开发【发送消息】被动回复消息
- 微信开发五 被动回复用户消息
- 微信开发之接收事件推送
- 微信开发之接收事件推送
- 微信开发之接收事件推送
- 微信消息管理之被动回复用户消息
- 微信消息管理之被动回复用户消息
- 微信公众号开发(2)---接收订阅事件推送并回复消息
- 微信客服消息实现被动回复
- 微信开发-发送模板消息与事件推送
- 微信公众平台开发:进阶篇(微信公众平台消息推送与回复设置技巧总结)
- 用java开发微信公众号:接收和被动回复普通消息(三)
- Unity3D学习(四)射箭游戏
- spark mapPartition方法与map方法的区别 以及 join的用法
- 不同的verilog代码风格看RTL视图之二
- 粉丝福音,漫威《银河护卫队2》将入坑VR
- Student Attendance Record I问题及解法
- 微信开发之事件推送与被动回复
- Linux虚拟地址空间布局
- git fatal: refusing to merge unrelated histories
- android 广播详解与实例(Broad Receiver)
- npm 常用命令详解
- 标准IO流cin与cout
- 38. Count and Say
- 常见开源加密算法库
- docker命令