<?php
namespace app\index\controller;
class Index
{
public function index()
{
if (isset($_GET['echostr'])) {
//获得参数 signature nonce token timestamp echostr
$nonce = $_GET['nonce'];
$token = 'weixin';
$timestamp = $_GET['timestamp'];
$echostr = $_GET['echostr'];
$signature = $_GET['signature'];
//形成数组,然后按字典序排序
$array = array();
$array = array($nonce, $timestamp, $token);
sort($array);
//拼接成字符串,sha1加密 ,然后与signature进行校验
$str = sha1(implode($array));
if ($str == $signature && $echostr) {
//第一次接入weixin api接口的时候
echo $echostr;
exit;
}
} else {
$this->responseMsg();
}
}
public function responseMsg(){
//1.获取微信推送过来的post数据(xml格式)
$postArr = file_get_contents("php://input");
libxml_disable_entity_loader(true);
$postObj = simplexml_load_string($postArr, 'SimpleXMLElement', LIBXML_NOCDATA);
// print_r($postObj);
if(strtolower($postObj->MsgType) == 'event'){
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;
}
}
}
本人用的tp5框架