您的位置:首页 > 移动开发 > 微信开发

微信开发(一):接收事件推送并回复

2017-05-30 10:33 344 查看

基于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

<?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;
}
}
///.....微信开发(二).....
}
}


测试,关注该公众号,会收到“欢迎关注我们~~~”

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  微信