如何调试ucenter中发送的api通知消息

ucenter可以集成多个应用,在一个应用中登录了,就可以无缝地切换到另外应用中,原因是在登录的时候,应用通知了ucenter,ucenter又通知了其它的几个应用,这样就可以做到流畅的切换了


最近遇到一个问题,就是在destoon登录了,但是在ecmall中登录不正常,但是在本地是正常的啊,会不会是ucenter没有通知了,那么怎么看ucenter的消息发送了吗?我没找到办法只好,用写文件的形式来解决,在api/uc.app.php中找到synlogin这个函数,加入这样一段,这个目的是在uc.app.php所在目录下生成一个synlogin.txt,看看能不能成功地接收到ucenter的消息,从新从其它的目录中登录,如果目录中没synlogin.txt这个文件,说明通讯不能成功,如果有的话,打开看看其它的消息,自己分析一下就可以了

 define('DT_ROOT', str_replace("\\", '/', dirname(__FILE__)));
        $fp = fopen(DT_ROOT . "/synlogin.txt", "w"); //文件被清空后再写入
        if ($fp)
        {
            $content= "username=$username and uid=$uid get class is:".get_class($this->user_mod);
            $content.="\r\n and the ec_user id is:".$ec_user['user_id'];
            $flag = fwrite($fp, $content);
            if (!$flag)
            {
                echo "写入文件失败<br>";
                fclose($fp);
                exit();
            }
        } else
        {
            echo "打开文件失败";
        }
        fclose($fp);

结果找出原因来了,在ucenter中有用户而在ecmall中没有用户,是不会登录成功的因为

        //note 同步登录 API 接口
        $ec_user = $this->user_mod->get($uid);
        if ($ec_user)
        {
            $this->_do_login($ec_user['user_id']);
        }

$this->user_mod->get($uid);中会找不到用户,所以在ucenter中的用户一定要先在ecmall中登录一次,让ecmall给你加入到他的用户表中,这样才能通知成功.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值