微信开发(一):接收事件推送并回复
2017-05-30 10:33
344 查看
基于thinkphp微信开发
1、 微信公众平台开启服务器配置
2、 具体代码
在http://ip/tp/wx.php/Home/Index.indexwx.php
<?php //1、定义项目名称 define('APP_NAME','wx'); //2、定义项目路径 define('APP_PATH','wx/'); //3、引入tp核心文件 require './ThinkPHP/ThinkPHP.php'; ?>
Home/Controller/IndexController.class.php
<?php namespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function index(){ //1将timestamp,nonce,token按字典排序 $timestamp=$_GET['timestamp'];//时间戳 $nonce=$_GET['nonce'];//随机数 $token='abcd'; $signature=$_GET['signature'];//微信加密签名 //第一次接入微信API会多传一个echostr字符串///////// $echostr=$_GET['echostr'];//随机字符串 $array=array($timestamp,$nonce,$token); sort($array); //2将排序后的三个参数拼接之后用sha1加密 $tmpstr=sha1(implode('',$array)); //3将加密后的字符串与signature对比,判断该请求是否来自微信 if($tmpstr==$signature && $echostr){ /* 第一次在微信公众平台设置url地址的时候,这是微信公众帐号第一次推送get 请求到第三方服务器url地址/////////// * */ //第一次接入微信API接口的时候 echo $echostr; exit; }else{ $this->reponseMwg(); } } // 接收事件推送并回复 public function reponseMwg(){ //1.获取到微信推送过来post数据(xml格式)/////////// $postArr=$GLOBALS['HTTP_RAW_POST_DATA']; //2.处理消息类型并设置回复类型和内容 /* <xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[FromUser]]></FromUserName> <CreateTime>123456789</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[subscribe]]></Event> </xml> * */ $postObj=simplexml_load_string($postArr); //判断该数据包是否是订阅的事件推送/////////// if(strtolower($postObj->MsgType)=='event'){ //如果是关注时间subscribe事件/////////// if(strtolower($postObj->Event)=='subscribe'){ //回复用户消息 $toUser=$postObj->FromUserName; $fromUser=$postObj->ToUserName; $time=time(); $msgType='text'; $content='欢迎关注我们~~~'; //回复消息模版 $template=" <xml> <ToUserName><![CDATA[%s]]></ToUserName> <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框架的接收事件推送处理 (源码下载)
- 微信开发之接收事件推送
- 微信开发接收事件推送
- 微信开发之事件推送与被动回复
- 微信开发之接收事件推送
- 微信公众号开发(2)---接收订阅事件推送并回复消息
- 微信开发四 接收事件推送
- 微信开发中消息接收、回复及事件处理通用函数与php语法的详解(index.php文件)
- 微信开发之接收事件推送
- 夺命雷公狗---微信开发03----接收订阅事件推送
- 用c#开发微信 (4) 基于Senparc.Weixin框架的接收事件推送处理 (源码下载)
- 关于微信接收事件以及推送消息相关的java开发
- 微信开发之接收事件推送
- 微信第三方平台开发经验总结(六):接收微信用户发送的事件以及消息
- C#微信公众号开发系列教程五(接收事件推送与消息排重)
- .net mvc 微信开发笔记(六)------上传文件,菜单事件推送和响应
- C#微信公众号开发系列教程(接收事件推送与消息排重)
- php版微信开发之接收消息,自动判断及回复相应消息的方法
- 微信开发(5):公众号消息与事件推送处理
- 夺命雷公狗---微信开发06----接收并被动回复语音消息