鍍金池/ 問答/PHP  網(wǎng)絡(luò)安全  HTML/ php 做微信認(rèn)證登陸 返回錯(cuò)誤 Trying to get property

php 做微信認(rèn)證登陸 返回錯(cuò)誤 Trying to get property of non-object

php 做微信認(rèn)證登陸 返回錯(cuò)誤 Trying to get property of non-object 已經(jīng)添加了白名單和 網(wǎng)頁授權(quán),不知道是不是我代碼問題,求解答。附上錯(cuò)誤代碼:

public function getOpenId(){

    $openid=cookie('openid');
    if($openid){
        return $openid;
    }else{        
         if (in_wechat()) {                              
            $redirect_uri = request()->url(true);                    
            $AccessCode   = $this->getAccessCode($redirect_uri, "snsapi_base");                
            if ($AccessCode !== FALSE) {                    
                // 獲取accesstoken和openid
                $Result      = $this->getAccessToken($AccessCode);
                $openid      = $Result->openid;
                $AccessToken = $Result->access_token;
                cookie('openid',$openid);
                               
                return $openid;
            }               
        } else {
            return false;
        }        
    }
}
private function getAccessToken($code){

    $RequestUrl            = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$this->config['appid']."&secret=".$this->config['appsecret']."&code=" . $code . "&grant_type=authorization_code";
    
    $Result                = json_decode(Curl::get($RequestUrl), true);
    
    if(isset($Result['errcode'])){
        return 'get access token fail';
    }
    
    $_return               = new \stdClass();
    
    echo $_return->access_token = $Result['access_token'];
    $_return->openid       = $Result['openid'];
    return $_return;
           
}

private function getAccessCode($redirect_uri, $scope) {

    $get=input('param.');
    
    $request_access_token_url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$this->config['appid']."&redirect_uri=http%3a%2f%2fjfshop.gxwdbg.com%2fmobile&response_type=code&scope=snsapi_userinfo#wechat_redirect";
    if (empty($get['code'])) {
        // 未授權(quán)而且是拒絕
        if (!empty($get['state'])) {
            return FALSE;
        } else {
            // 未授權(quán)
            $redirect_uri = urlencode($redirect_uri);
            $RequestUrl   = str_replace("[REDIRECT_URI]", $redirect_uri, $request_access_token_url);
            $RequestUrl   = str_replace("[SCOPE]", $scope, $RequestUrl);
                        
            // 獲取授權(quán)
            header("location:" . $RequestUrl);
            exit(0);
        }
    } else {
        // 授權(quán)成功 返回 access_token 票據(jù)
        return $get['code'];
    }
}

clipboard.png

回答
編輯回答
氕氘氚

getAccessToken這個(gè)方法你沒放出來,是這個(gè)函數(shù)有問題,沒有返回對(duì)象。

2017年2月18日 08:41
編輯回答
我甘愿

已解決,緩存導(dǎo)致參數(shù)沒有改變

2018年7月10日 07:40