/** * 微信授权登录 * @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; }