|
@@ -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);
|