param('refer_url'), 5 * 60); $redirectUrl = OfficialAccount::getInstance() ->getOAuth() ->scopes(['snsapi_userinfo']) ->redirect(config('wechat.redirect_url')); return redirect($redirectUrl); } public function callback(Request $request) { $params = $request->param(); $user = OfficialAccount::getInstance() ->getOAuth() ->userFromCode($params['code']); $targetUrl = empty(cookie('wechat_refer_url')) ? '/' : cookie('wechat_refer_url'); $ip = request()->ip(); $forwarded = request()->header("x-forwarded-for"); if ($forwarded) { $ip = explode(',', $forwarded)[0]; } $userInfo = [ 'wechat_history_openid' => $user->getId(), 'wechat_history_ip' => $ip, 'wechat_history_useragent' => $request->header('user-agent'), 'wechat_history_nickname' => $user->getNickname(), 'wechat_history_avatar' => $user->getAvatar(), 'wechat_history_refer' => $targetUrl, 'create_time' => date('Y-m-d H:i:s'), ]; Db::name('wechat_history')->insert($userInfo); return redirect($targetUrl); } }