/** * 网页授权回调 * * @param request * @param response */ @RequestMapping("oauth") public void oauth(HttpServletRequest request, HttpServletResponse response) { try { WxMpService wxService = BuildAndGetWxService.buildAndGetWxService(); String state = request.getParameter("state"); String openId = null; Owners owner = null; LogBuilder.writeToLog("error in oauth"); if (request.getSession().getAttribute("openId") == null) { WxMpOAuth2AccessToken wxMpOAuth2AccessToken = wxService.oauth2getAccessToken(request.getParameter("code")); openId = wxMpOAuth2AccessToken.getOpenId(); LogBuilder.writeToLog(openId); request.getSession().setAttribute("openId", openId); } else { openId = (String) request.getSession().getAttribute("openId"); LogBuilder.writeToLog("error"); } if (state.equals("1")) { response.sendRedirect("/owner/ownerBind?openId=" + openId); return; } else if (state.equals("2")) { owner = (Owners) request.getSession().getAttribute("owner"); if (owner == null) { owner = ownerService.getOwnerByOpenId(openId); } if (owner != null) { request.getSession().setAttribute("owner", owner); response.sendRedirect("/owner/ownerProfile?openId=" + openId); return; } else { request.getSession().setAttribute("visitor", "visitor"); } response.sendRedirect("/owner/ownerBind?openId=" + openId); return; } else if (state.equals("3")) { owner = (Owners) request.getSession().getAttribute("owner"); if (owner == null) { owner = ownerService.getOwnerByOpenId(openId); } if (owner != null) { request.getSession().setAttribute("owner", owner); } else { request.getSession().setAttribute("visitor", "visitor"); } response.sendRedirect("/custom/index.jsp"); return; } else if (state.equals("4")) { owner = (Owners) request.getSession().getAttribute("owner"); if (owner == null) { owner = ownerService.getOwnerByOpenId(openId); } if (owner != null) { request.getSession().setAttribute("owner", owner); response.sendRedirect("/custom/comment.jsp"); return; } else { request.getSession().setAttribute("visitor", "visitor"); response.sendRedirect("/owner/ownerBind?openId=" + openId); return; } } else if (state.equals("5")) { owner = (Owners) request.getSession().getAttribute("owner"); if (owner == null) { owner = ownerService.getOwnerByOpenId(openId); } if (owner != null) { request.getSession().setAttribute("owner", owner); response.sendRedirect("/custom/repair.jsp"); return; } else { request.getSession().setAttribute("visitor", "visitor"); response.sendRedirect("/owner/ownerBind?openId=" + openId); return; } } else if (state.equals("6")) { owner = (Owners) request.getSession().getAttribute("owner"); if (owner == null) { owner = ownerService.getOwnerByOpenId(openId); } if (owner != null) { request.getSession().setAttribute("owner", owner); response.sendRedirect("/owner/myChargeAndMessage?openId=" + openId); return; } else { request.getSession().setAttribute("visitor", "visitor"); response.sendRedirect("/owner/ownerBind?openId=" + openId); return; } } } catch (Exception e) { e.printStackTrace(); LogBuilder.writeToLog(e.getMessage()); } }