|
|
@@ -1,12 +1,9 @@
|
|
|
package com.uas.service.donate.controller;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
-import com.github.binarywang.wxpay.exception.WxPayException;
|
|
|
import com.uas.service.donate.api.WxPayApi;
|
|
|
import com.uas.service.donate.config.WxConfig;
|
|
|
import com.uas.service.donate.model.Project;
|
|
|
-import com.uas.service.donate.model.SystemSession;
|
|
|
-import com.uas.service.donate.model.User;
|
|
|
import com.uas.service.donate.model.WechatUserInfo;
|
|
|
import com.uas.service.donate.service.CarouselService;
|
|
|
import com.uas.service.donate.service.ProjectRecodeService;
|
|
|
@@ -46,17 +43,51 @@ public class IndexController {
|
|
|
|
|
|
private Logger logger = LoggerFactory.getLogger(IndexController.class);
|
|
|
|
|
|
- private String oauthUserScope = "snsapi_userinfo";
|
|
|
-
|
|
|
-
|
|
|
@RequestMapping(value = "/", method = RequestMethod.GET)
|
|
|
public String returnaDefault(HttpServletRequest request, HttpServletResponse response) throws IOException {
|
|
|
String code = request.getParameter("code");
|
|
|
String state = request.getParameter("state");
|
|
|
- User user = SystemSession.getUser();
|
|
|
-
|
|
|
String ua = request.getHeader("user-agent").toLowerCase();
|
|
|
if (ua.indexOf("micromessenger") >= 0) {// 是微信浏览器
|
|
|
+ Object openId = request.getSession().getAttribute("openId");
|
|
|
+ if (openId != null) {
|
|
|
+ //有openid 已授权
|
|
|
+ logger.info("有openid 已授权");
|
|
|
+ return "forward:/index";
|
|
|
+ } else {
|
|
|
+ //需要授权
|
|
|
+ logger.info("公众号获取:--需要授权");
|
|
|
+ //String url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + wxPayApi.getConfig().getAppId() + "&redirect_uri=" + URLEncoder.encode("http://lj.ubtob.com/", "UTF-8") + "&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect";
|
|
|
+ String url = WechatConnector.createAuthorizeUrl(WxConfig.oauthUserScope, wxPayApi.getConfig().getAppId(), URLEncoder.encode("http://lj.ubtob.com", "UTF-8"));
|
|
|
+ response.sendRedirect(url);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (code != null) {
|
|
|
+ //授权回调
|
|
|
+ logger.info("公众号获取,授权回调:authCode=" + code + ",state=" + state);
|
|
|
+
|
|
|
+ String openId = null;
|
|
|
+ try {
|
|
|
+ if ("snsapi_userinfo".equals(WxConfig.oauthUserScope)) {
|
|
|
+ WechatUserInfo wechatUserInfo= WechatConnector.getOauthUser(code, wxPayApi.getConfig().getAppId(), WxConfig.APPSECRET); //TODO APPSECRET
|
|
|
+ logger.info("微信用户授权信息:" + wechatUserInfo.toString());
|
|
|
+ openId = wechatUserInfo.getOpenId();
|
|
|
+ } else if ("snsapi_base".equals(WxConfig.oauthUserScope)) {
|
|
|
+ JSONObject tokenJson = WechatConnector.getAccessToken(code, wxPayApi.getConfig().getAppId(), WxConfig.APPSECRET);//TODO APPSECRET
|
|
|
+ openId = tokenJson.getString("openid");
|
|
|
+ }
|
|
|
+
|
|
|
+ //openId = wxPayApi.authcode2Openid(code);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ request.getSession().setAttribute("openId", openId);
|
|
|
+ logger.info("当前微信用户openId:" + openId);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /*if (ua.indexOf("micromessenger") >= 0) {// 是微信浏览器
|
|
|
|
|
|
if (user != null && user.getWxOpenId() != null) {
|
|
|
//有用户 有openid 已授权
|
|
|
@@ -66,13 +97,13 @@ public class IndexController {
|
|
|
//有用户 无openid 需要授权
|
|
|
logger.info("公众号获取:--有用户 无openid 需要授权");
|
|
|
//String url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + wxPayApi.getConfig().getAppId() + "&redirect_uri=" + URLEncoder.encode("http://lj.ubtob.com/", "UTF-8") + "&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect";
|
|
|
- String url = WechatConnector.createAuthorizeUrl(oauthUserScope, wxPayApi.getConfig().getAppId(), URLEncoder.encode("http://lj.ubtob.com", "UTF-8"));
|
|
|
+ String url = WechatConnector.createAuthorizeUrl(WxConfig.oauthUserScope, wxPayApi.getConfig().getAppId(), URLEncoder.encode("http://lj.ubtob.com", "UTF-8"));
|
|
|
response.sendRedirect(url);
|
|
|
} else if (user == null && code == null) {
|
|
|
//需要授权
|
|
|
logger.info("公众号获取:--需要授权");
|
|
|
//String url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + wxPayApi.getConfig().getAppId() + "&redirect_uri=" + URLEncoder.encode("http://lj.ubtob.com/", "UTF-8") + "&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect";
|
|
|
- String url = WechatConnector.createAuthorizeUrl(oauthUserScope, wxPayApi.getConfig().getAppId(), URLEncoder.encode("http://lj.ubtob.com", "UTF-8"));
|
|
|
+ String url = WechatConnector.createAuthorizeUrl(WxConfig.oauthUserScope, wxPayApi.getConfig().getAppId(), URLEncoder.encode("http://lj.ubtob.com", "UTF-8"));
|
|
|
response.sendRedirect(url);
|
|
|
}
|
|
|
}
|
|
|
@@ -86,11 +117,11 @@ public class IndexController {
|
|
|
}
|
|
|
String openId = null;
|
|
|
try {
|
|
|
- if ("snsapi_userinfo".equals(oauthUserScope)) {
|
|
|
+ if ("snsapi_userinfo".equals(WxConfig.oauthUserScope)) {
|
|
|
WechatUserInfo wechatUserInfo= WechatConnector.getOauthUser(code, wxPayApi.getConfig().getAppId(), WxConfig.APPSECRET); //TODO APPSECRET
|
|
|
logger.info("微信用户授权信息:" + wechatUserInfo.toString());
|
|
|
openId = wechatUserInfo.getOpenId();
|
|
|
- } else if ("snsapi_base".equals(oauthUserScope)) {
|
|
|
+ } else if ("snsapi_base".equals(WxConfig.oauthUserScope)) {
|
|
|
JSONObject tokenJson = WechatConnector.getAccessToken(code, wxPayApi.getConfig().getAppId(), WxConfig.APPSECRET);//TODO APPSECRET
|
|
|
openId = tokenJson.getString("openid");
|
|
|
}
|
|
|
@@ -104,7 +135,7 @@ public class IndexController {
|
|
|
user.setWxOpenId(openId);
|
|
|
logger.info("当前用户信息:" + user.toString());
|
|
|
SystemSession.setUser(user);
|
|
|
- }
|
|
|
+ }*/
|
|
|
|
|
|
return "forward:/index";
|
|
|
}
|