@Controller public class UserController { String scope1 = "snsapi_base"; //不彈受權頁面 String scope2 = "snsapi_userinfo"; //彈出受權頁面 String scope = scope1; @RequestMapping("/login.do") public String login(HttpServletRequest request){ String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+path+"/"; String url1 = "https"+"://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri="; url1= url1.replace("APPID", Param.APPID); String url2 = basePath+"index.do&response_type=code&scope="+scope+"&state=STATE#wechat_redirect"; return "redirect:"+url1+url2; } @RequestMapping("/index.do") public String index(String code,ModelMap model,HttpSession session) { System.out.println("code:"+code); try { if(code==null){ return "/login.do"; } model.addAttribute("ticket",Param.TICKET); User user = (User) session.getAttribute("user"); if(user==null){ OAuthInfo auth = WeiXinUtil.getAccess_token(code); if(scope.equals(scope1)){ user = WeiXinUtil.getUser(Param.TOKEN.getAccess_token(), auth.getOpenid(),false); if(user.getSubscribe().equals("0")){ scope = scope2; return "/login.do"; }else{ scope = scope1; } }else{ user = WeiXinUtil.getUser(auth.getAccess_token(), auth.getOpenid(),true); } } model.addAttribute("user", user); scope = scope1; session.setAttribute("user", user); } catch (Exception e) { session.removeAttribute("user"); e.printStackTrace(); } return "index.jsp"; } }