微信开发之事件推送与被动回复
2017-05-09 16:09
267 查看
直接上代码,公众号后台基本配置:
设置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; } } }
相关文章推荐
- 微信开发(一):接收事件推送并回复
- 用c#开发微信 (4) 基于Senparc.Weixin框架的接收事件推送处理 (源码下载)
- 微信开发被动回复消息:该公众号暂时无法提供服务,请稍后再试
- 微信开发怎么被动发送图文消息用户输入信息之后回复
- 夺命雷公狗---微信开发03----接收订阅事件推送
- 用c#开发微信 (4) 基于Senparc.Weixin框架的接收事件推送处理 (源码下载)
- 关于微信接收事件以及推送消息相关的java开发
- 微信开发四 接收事件推送
- 夺命雷公狗---微信开发06----接收并被动回复语音消息
- 微信开发之接收事件推送
- 微信开发中消息接收、回复及事件处理通用函数与php语法的详解(index.php文件)
- 微信开发(5):公众号消息与事件推送处理
- .net mvc 微信开发笔记(六)------上传文件,菜单事件推送和响应
- 夺命雷公狗---微信开发17----自定义菜单的事件推送,响应菜单的CLICK
- 微信开发之接收事件推送
- 微信开发接收事件推送
- 微信公众号开发(2)---接收订阅事件推送并回复消息
- 微信开发之接收事件推送
- Java微信二次开发之14-自定义菜单及菜单响应事件的推送
- 微信开发接入,附简单微信被动回复