get("token"); $data = Redis::hGetAll("oauth:".$token); if($data){ CookieService::setOauth($data); header("location:http://activity.test.care001.cn/brainstorming?activity_id=709"); } } /** * 根据code获取网页授权access_token */ public function getAccessTokenByCode($code) { $uri = sprintf("https://api.weixin.qq.com/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code", env("WX_APP_ID"), env("WX_APP_SECRET"), $code); Log::info($uri); $curl = new Curl($uri); $curl->httpHeader('Content-Type', 'application/json'); $res = $curl -> httpGet(); $resData = json_decode($res, true); if(isset($resData['access_token'])){ return $resData; } return null; } /** * 根据openid和access_token获取用户信息,前提是scope = snsapi_userinfo */ public function getUserInfo(Request $request) { $code = $request -> get("code"); $activity_id = $request -> get("activity_id"); $access = $this->getAccessTokenByCode($code); if(empty($access)) { return null; } $uri = sprintf("https://api.weixin.qq.com/sns/userinfo?access_token=%s&openid=%s&lang=zh_CN", $access['access_token'], $access['openid']); $curl = new Curl($uri); $curl->httpHeader('Content-Type', 'application/json'); $res = $curl -> httpGet(); $resData = json_decode($res, true); if(isset($resData['openid'])){ $data["oauth_open_id"] = $resData['openid']; $data["oauth_avatar"] = $resData['headimgurl']; $data["oauth_nickname"] = $resData['nickname']; $data["oauth_platform"] = "wechat"; $data["oauth_guid"] = $resData['openid']; CookieService::setOauth($data); } header("location:" . env("WEB_URL") . "?activity_id=$activity_id"); } }