微信公众号死活无法回复信息,求指点!

刚开始学习公众号开发,按照慕课网的教程,前面服务器验证部分已经成功,后面回复信息部分怎么调在微信上都无法收到回复信息,求大神帮忙看看哪儿有问题,感激不尽!

<?php
//以下为服务器验证,已经验证成功
//1. 排序
$timestamp = $_GET['timestamp'];
$nonce = $_GET['nonce'];
$token = 'weixin';
$signature = $_GET['signature'];
$array = array($timestamp,$nonce,$token);
sort($array);

//2. 加密
$tmpstr = implode('',$array);
$tmpstr = sha1($tmpstr);

//3. 对比
if ($tmpstr == $signature AND $_GET['echostr']) {
echo $_GET['echostr'];
exit;
}else{
responseMsg();
}

//以下是回复信息的部分,实在不知道为什么没有反应

public function responseMsg(){
    $postArr = $GLOBALS['HTTP_RAW_POST_DATA'];
    $postObj = simplexml_load_string($postArr);
    
    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;
        }
    }
}
?>
阅读 3.7k
3 个回答

非常感谢两位的帮助,后面我发现,错误的原因是回复模板里面的叹号两边各多了一个空格,导致无法回复成功。。。。。感谢两位!

楼主你那个回复消息的函数写错位置了,不应该写在3.对比里面的else,应该写在服务器验证部分的后面

if后面的else去掉,直接调用那个函数就行了!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题