xiongchao il y a 3 ans
Parent
commit
c212679852

+ 27 - 46
platform-rest/src/main/java/com/platform/rest/controller/wechat/WechatController.java

@@ -43,16 +43,15 @@ public class WechatController {
     private final static String WECHAT_STATE = "wechat_state";
     public final static String WECHAT_OPENID = "wechat_openId";
 
-//    // 微信回调url
-//    private static String WECHAT_REDIRECT_URL = Global.getValue("wechat_url") + "/wechat/oauth.htm";
-//    //判断是否授权
-//    private static String IS_WECHAT_REDIRECT_URL = Global.getValue("wechat_url") + "/wechat/isOauth.htm";
+    // 微信回调url
+    //private static String WECHAT_REDIRECT_URL = Global.getValue("wechat_url") + "/wechat/oauth.htm";
+    private static String WECHAT_REDIRECT_URL = "http://pc.litian2017.com/api/wechat/oauth";
 
     private final SysUserService sysUserService;
 
     /**
      * 微信token验证,接收来自微信服务器的验证
-     * 只作为验证,返回维修传递过来的参数即说明双方通信成功
+     * 只作为验证,返回微信传递过来的参数即说明双方通信成功
      *
      * @param signature 微信加密签名 signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
      * @param timestamp 时间戳
@@ -105,47 +104,30 @@ public class WechatController {
         log.info("处理微信转发来的消息-结束");
     }
 
+    /**
+     * 通过点击我的-》设置里面的-》微信授权,跳转到这个方法
+     * 这个方法会直接跳转到微信授权页面,然后在页面点击操作后,微信会返回到redirect_uri的方法
+     * 返回跳转的地址,前端直接跳转
+     *
+     * @param request
+     * @param response
+     * @return
+     */
+    @RequestMapping(value = "redirect", method = RequestMethod.GET)
+    public String redirect(HttpServletRequest request, HttpServletResponse response) {
+        return "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + WeChatConnectService.APPID+ "&redirect_uri=" + WECHAT_REDIRECT_URL + "?response_type=code&scope=snsapi_base&state=1&connect_redirect=1#wechat_redirect";
+    }
 
-//    /**
-//     * 处理微信跳转过来的授权 授权成功后,保存openid到session,然后跳转到登录页面
-//     *
-//     * @throws UnsupportedEncodingException 编码已经指定,所以不会抛出这个异常
-//     */
-//    @RequestMapping(value = "bind", method = RequestMethod.GET)
-//    public String oauth(HttpServletRequest request, HttpSession session, String redirectUrl) throws UnsupportedEncodingException {
-//        UserInfo user = SecurityUtils.getUserInfo();
-//        if (user != null) {
-//            UserWechat userWechat = userWeChatService.getByUserId(user.getUserId());
-//            if (userWechat != null) {
-//                if (redirectUrl != null && !"".equals(redirectUrl)) {
-//                    return "redirect:" + redirectUrl;
-//                } else {
-//                    return "redirect:/m/account.htm";
-//                }
-//            } else {
-//                // 保存state,用于后面微信跳转回来后的验证
-//                String state = nextToken();
-//                request.getSession(true).setAttribute(WECHAT_STATE, state);
-//                IS_WECHAT_REDIRECT_URL = IS_WECHAT_REDIRECT_URL.split("redirectUrl")[0].replace("?", "") + "?redirectUrl=" + redirectUrl;
-//                log.info("------------redirectUrl1:" + IS_WECHAT_REDIRECT_URL.split("redirectUrl")[0].replace("?", ""));
-//                String url = WeChatConnectService.getOauthAuthorizeURLByScope(IS_WECHAT_REDIRECT_URL, state);
-//                log.info("----url1:" + url);
-//                return "redirect:" + url;
-//            }
-//        } else {
-//            // 保存state,用于后面微信跳转回来后的验证
-//            String state = nextToken();
-//            request.getSession(true).setAttribute(WECHAT_STATE, state);
-//            IS_WECHAT_REDIRECT_URL = IS_WECHAT_REDIRECT_URL.split("redirectUrl")[0].replace("?", "") + "?redirectUrl=" + redirectUrl;
-//            log.info("------------redirectUrl2:" + IS_WECHAT_REDIRECT_URL.split("redirectUrl")[0].replace("?", ""));
-//            String url = WeChatConnectService.getOauthAuthorizeURLByScope(IS_WECHAT_REDIRECT_URL, state);
-//            log.info("----url2:" + url);
-//            return "redirect:" + url;
-//        }
-//    }
-
-  @RequestMapping(value = "isOauth", method = RequestMethod.GET)
-    public Boolean isOauth(HttpServletRequest request, @RequestParam String code) {
+    /**
+     * 微信回调来的地址,带着code
+     * 后台再跟进这个code去获取用户openid
+     *
+     * @param request
+     * @param code
+     * @return
+     */
+    @RequestMapping(value = "oauth", method = RequestMethod.GET)
+    public Boolean oauth(HttpServletRequest request, @RequestParam String code) {
         // 获取用户的openid和access_token
         JsonOauthAccessTokenResponse response = WeChatConnectService.getOauthAccessToken(code);
         String openId = response.getOpenid();
@@ -253,7 +235,6 @@ public class WechatController {
 
     @ResponseBody
     @RequestMapping("/sign")
-    @SuppressWarnings("rawtypes")
     public Map<String, String> getSign(String url) {
         String ticket = WeChatConnectService.getWechatTicketToken();
         Map<String, String> ret = SignUtil.sign(ticket, url);

+ 2 - 2
platform-service/src/main/java/com/platform/service/wechat/service/WeChatConnectService.java

@@ -40,8 +40,8 @@ public class WeChatConnectService {
     //   private static final String APPSECRET = "e74b6b4d7582ed12b141c62e7737af20";
     // 微信token,把这个配置到微信:消息推送平台Token(令牌), 乾元坤和科技的服务号
     public static final String ACCESS_TOKEN = "wwwqykh2009com";
-    private static final String APPID = "wx38f46845be704faa";
-    private static final String APPSECRET = "9bt1F6ojLU6JLv76Boo4qaeEU6PcW75nGjjLyauDtAF";
+    public static final String APPID = "wx38f46845be704faa";
+    public static final String APPSECRET = "9bt1F6ojLU6JLv76Boo4qaeEU6PcW75nGjjLyauDtAF";
 
     //  private static final String APPID = DictCache.getLabelByValue(DictTypeEnum.WECHAT.getType(), CommonConstants.WECHAT_APP_ID);
     //   private static final String APPSECRET = DictCache.getLabelByValue(DictTypeEnum.WECHAT.getType(), CommonConstants.WECHAT_APP_ID);