为了账号安全,请及时绑定邮箱和手机立即绑定

请教,哪里出了问题,怎么关注后不显示回复消息呢

namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index(){
        // 获得参数signature nonce token timestamp
        $nonce = $_GET['nonce'];
        $token = 'family';
        $timestamp = $_GET['timestamp'];
        $signature = $_GET['signature'];
        $echostr = $_GET['echostr'];

        $arr = array($nonce, $token, $timestamp);
        sort($arr);

        $tempstr = implode('', $arr);
        $tempstr = sha1($tempstr);

        if($tempstr == $signature && $echostr)
        {
            // 第一次接入微信API接口时验证,因为第一次有四个参数发送过来,其他情况下发送三个
            echo $echostr;
            exit;
        }else
        {
            //
            $this->$responseMsg();
        }

    }

    public function responseMsg()
    {
        // 获取微信推送过来的post数据(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>*/
        // simplexml_load_string();将XML转换成对象
        $postObj = simplexml_load_string($postArr);

        // 判断该数据包是否是消息订阅的时间推送
        if($postObj->MsgType == 'event')
        {
            // 判断是否是关注事件
            if ($postObj->Event == 'subscribe') {
                // 回复用户消息
                $ToUserName = $postObj->FromUserName;
                $FromUserName = $postObj->ToUserName;
                $CreateTime = 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, $ToUserName, $FromUserName, $CreateTime, $MsgType, $Content);
                echo $info;
            }
        }

    }

    public function test()
    {
        $ToUserName = 'FromUserName';
        $FromUserName = 'ToUserName';
        $CreateTime = time();
        $MsgType = 'text';
        $Content = '欢迎光临小店';
        $template = "<xml>
                    <ToUserName>%s</ToUserName>
                    <FromUserName>%s</FromUserName>
                    <CreateTime>%s</CreateTime>
                    <MsgType>%s</MsgType>
                    <Content>%s</Content>
                    </xml>";
        $info = sprintf($template, $ToUserName, $FromUserName, $CreateTime, $MsgType, $Content);
        echo $info;
    }
}


请教,哪里出了问题,怎么关注后不显示回复消息呢

正在回答

1 回答

 $this->$responseMsg();这里错了, 调用方法应该这样$this->responseMsg();其他的还没看

0 回复 有任何疑惑可以回复我~
#1

慕粉0118 提问者

早上我安装了一下开发者工具,看出来了,就是这里的错误,谢谢啦
2017-03-06 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请教,哪里出了问题,怎么关注后不显示回复消息呢

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号