用户
 找回密码
 入住 CI 中国社区
搜索
查看: 1253|回复: 0
收起左侧

微信问题,求大神搭救。验证过TOKEN后收不到消息

[复制链接]
发表于 2014-9-24 16:04:37 | 显示全部楼层 |阅读模式
为什么验证过TOKEN后,无论怎么样都接收不到微信的消息,求大神解救!!下面是代码
PHP复制代码
define('TOKEN', 'weixin');//define('DEBUG', FALSE);//是否开启调试模式
 
class Wxapi extends CI_Controller
{
 
    public function __construct()
    {
        parent::__construct();
               
    }
       
        public function index() {
               
                //$this->valid();
                $this->responseMsg();
       
        }
 
        public function valid()
    {
        $echoStr = $_GET["echostr"];
        if($this->checkSignature()){
            echo $echoStr;
            exit;
        }
    }
    public function responseMsg()
    {
        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
        if (!empty($postStr)){
            $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
            $fromUsername = $postObj->FromUserName;
            $toUsername = $postObj->ToUserName;
            $keyword = trim($postObj->Content);
            $time = time();
            $textTpl = "<xml>
            <ToUserName><![CDATA[%s]]></ToUserName>
            <FromUserName><![CDATA[%s]]></FromUserName>
            <CreateTime>%s</CreateTime>
            <MsgType><![CDATA[%s]]></MsgType>
            <Content><![CDATA[%s]]></Content>
            <FuncFlag>0<FuncFlag>
            </xml>"
;
            if(!empty( $keyword ))
            {
                $msgType = "text";
                $contentStr = '你好啊,屌丝';
                $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                echo $resultStr;
            }else{
                echo '咋不说哈呢';
            }
        }else {
            echo '咋不说哈呢';
            exit;
        }
    }
 
    private function checkSignature()
    {
        $signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];
        $token =TOKEN;
        $tmpArr = array($token, $timestamp, $nonce);
        sort($tmpArr);
        $tmpStr = implode( $tmpArr );
        $tmpStr = sha1( $tmpStr );
 
        if( $tmpStr == $signature ){
            return true;
        }else{
            return false;
        }
    }
}
复制代码

本版积分规则