php 做微信认证登陆 返回错误 Trying to get property of non-object
php 做微信认证登陆 返回错误 Trying to get property of non-object 已经添加了白名单和 网页授权,不知道是不是我代码问题,求解答。附上错误代码:
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'])) {
// 未授权而且是拒绝
if (!empty($get['state'])) {
return FALSE;
} else {
// 未授权
$redirect_uri = urlencode($redirect_uri);
$RequestUrl = str_replace("[REDIRECT_URI]", $redirect_uri, $request_access_token_url);
$RequestUrl = str_replace("[SCOPE]", $scope, $RequestUrl);
// 获取授权
header("location:" . $RequestUrl);
exit(0);
}
} else {
// 授权成功 返回 access_token 票据
return $get['code'];
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
getAccessToken这个方法你没放出来,是这个函数有问题,没有返回对象。
已解决,缓存导致参数没有改变