微信开发(一):接收事件推送并回复
来源:互联网 发布:video.js ie8无法使用 编辑:程序博客网 时间:2024/05/29 14:57
基于thinkphp微信开发
1、 微信公众平台开启服务器配置
2、 具体代码
在http://ip/tp/wx.php/Home/Index.index
wx.php
<?php//1、定义项目名称define('APP_NAME','wx');//2、定义项目路径define('APP_PATH','wx/');//3、引入tp核心文件require './ThinkPHP/ThinkPHP.php';?>
Home/Controller/IndexController.class.php
<?phpnamespace 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; } } ///.....微信开发(二)..... }}
测试,关注该公众号,会收到“欢迎关注我们~~~”
阅读全文
0 0
- 微信开发(一):接收事件推送并回复
- 微信公众号开发(2)---接收订阅事件推送并回复消息
- 微信开发之接收事件推送
- 微信开发接收事件推送
- 微信开发之接收事件推送
- 微信开发之接收事件推送
- 微信开发四 接收事件推送
- 微信开发之事件推送与被动回复
- java微信接收并回复文本信息(java微信开发学习笔记2)
- 微信【接收事件推送】
- PHP7.0微信公众平台开发4: 实例一:接收普通消息和接收事件推送
- dotNet微信公众号开发二:接收并回复普通文字消息
- 微信接收回复消息(java)
- 微信公众平台 java示例 接收消息并回复
- 微信公众号开发(一、接收用户消息自动回复)
- java微信开发-消息接收和自动回复
- 微信开发<二>接收普通消息、自动回复
- 微信开发_接收消息,回复消息(3)
- centos 自带mysql卸载时出现无法卸载情况
- POJ 1328 Radar Installation(贪心)
- Android自定义组合控件之实现CheckBox变化
- eclipse运行android project报错com/android/dx/command/dexer/Main : Unsupported major.minor version 52.0
- Java中直接在{}和static{}中写入的语句块
- 微信开发(一):接收事件推送并回复
- (187)粒子
- 大端存储和小端存储
- sass/scss 和 less的区别
- 新概念4-7
- mysql数据库 datatime 属性
- UVa 1610 Party Games——细节处理
- 矩阵相乘问题
- Linux中的netstat命令