php微信掃碼登入和公眾號登入
阿新 • • 發佈:2019-01-08
/** * 微信授權登入 * @param Request * @return [json] */ public function wxSignin(Request $request) { $code = $request->input('code'); $state = $request->input('state'); $appid = config('wechat.appId'); $secret = config('wechat.secret'); $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code"; $data = $this->getclient($url); $access_token= $data['access_token']; $openid = $data['openid']; $res = "https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid"; $userinfo = $this->getclient($res); $res = $this->post('wx/authorize',$userinfo,[]); if($res['status_code'] == 200) { \Cookie::queue('CG_TK', $res['data']['token'], $minutes = 525600, $path = null, $domain = null, $secure = false, $httpOnly = false); } return redirect('https://www.*******.cn/d/?openid='.$openid); //跳轉的路徑 }
/** * 微信掃碼登入 * @param Request * @return [json] */ public function qrcodeLogin(Request $request) { $code = $request->input('code'); $state = $request->input('state'); $appid = config('wechat.webappId'); $secret = config('wechat.webappsecret'); $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code"; $data = $this->getclient($url); //微信掃碼三次請求 $refresh_token = $data['refresh_token']; $oneUrl = "https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=$appid&grant_type=refresh_token&refresh_token=$refresh_token"; $oneRequest = $this->getclient($oneUrl); $openid = $oneRequest['openid']; $access_token = $oneRequest['access_token']; $twoUrl = "https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid"; $twoRequest = $this->getclient($twoUrl); $data = $this->post('wx/authorize',$twoRequest,[]); return $data; }