From d67b5bea79e41363d6d98654dfa3e7db63314282 Mon Sep 17 00:00:00 2001 From: Javen205 Date: Wed, 15 Feb 2017 16:49:02 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E7=99=BB=E9=99=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../net/dreamlu/api/oauth/OauthWeixin.java | 84 +++++++++++++++++++ src/main/resources/oauth.properties | 9 +- src/test/java/net/dreamlu/Test.java | 6 ++ 3 files changed, 97 insertions(+), 2 deletions(-) create mode 100644 src/main/java/net/dreamlu/api/oauth/OauthWeixin.java diff --git a/src/main/java/net/dreamlu/api/oauth/OauthWeixin.java b/src/main/java/net/dreamlu/api/oauth/OauthWeixin.java new file mode 100644 index 0000000..620699f --- /dev/null +++ b/src/main/java/net/dreamlu/api/oauth/OauthWeixin.java @@ -0,0 +1,84 @@ +package net.dreamlu.api.oauth; + +import java.util.HashMap; +import java.util.Map; + +import com.jfinal.kit.StrKit; + +import net.dreamlu.api.util.HttpKitExt; +import net.dreamlu.api.util.TokenUtil; +/** + * OauthWeixin + * @author Javen + * email: javen205@126.com + * site: http://www.jianshu.com/u/9be31238fda1 + */ +public class OauthWeixin extends Oauth{ + private static final String AUTH_URL = "https://open.weixin.qq.com/connect/qrconnect"; + private static final String TOKEN_URL = "https://api.weixin.qq.com/sns/oauth2/access_token"; + private static final String USER_INFO_URL = "https://api.weixin.qq.com/sns/userinfo"; + + + private static OauthWeixin oauthWeixin = new OauthWeixin(); + + private OauthWeixin() {} + /** + * 用于链式操作 + * @return OauthWeixin + */ + public static OauthWeixin me() { + return oauthWeixin; + } + + /** + * 获取授权url + * @return String url + */ + public String getAuthorizeUrl(String state) { + Map params = new HashMap(); + params.put("appid", getClientId()); + params.put("response_type", "code"); + params.put("redirect_uri", getRedirectUri()); + params.put("scope", "snsapi_login"); + if (StrKit.isBlank(state)) { + params.put("state", "wx#wechat_redirect"); + } else { + params.put("state", state.concat("#wechat_redirect")); + } + return HttpKitExt.initParams(AUTH_URL, params); + } + + /** + * 获取token + * @param code 使用code换取token + * @return String 返回类型 + */ + public String getTokenByCode(String code) { + Map params = new HashMap(); + params.put("code", code); + params.put("appid", getClientId()); + params.put("secret", getClientSecret()); + params.put("grant_type", "authorization_code"); + String token = TokenUtil.getAccessToken(super.doPost(TOKEN_URL, params)); + LOGGER.debug(token); + return token; + } + + /** + * 获取UserInfo + * @param accessToken AccessToken + * @return String 返回类型 + */ + public String getUserInfo(String accessToken,String openId) { + Map params = new HashMap(); + params.put("access_token", accessToken); + params.put("openid", openId); + return super.doPost(USER_INFO_URL, params); + } + + @Override + public Oauth getSelf() { + return this; + } + +} diff --git a/src/main/resources/oauth.properties b/src/main/resources/oauth.properties index fc4540c..8cecbcc 100644 --- a/src/main/resources/oauth.properties +++ b/src/main/resources/oauth.properties @@ -1,14 +1,19 @@ # @author L.cm # email: 596392912@qq.com # site: http://www.dreamlu.net -# QQ,sina,renren,baidu½ -# jarJFinalfastjson.jar +# QQ,sina,renren,baidu\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\u00bd\ufffd\ufffd +# jar\ufffd\ufffd\ufffd\ufffd\ufffd\ufffdJFinal\ufffd\ufffdfastjson.jar ## qq openid oauthQQ.openid = 100413274 oauthQQ.openkey = 0738a22b862ead14bb7976272b0a1eec oauthQQ.redirect = http://www.dreamlu.net/api/qq/callback +## weixin openid http://www.jianshu.com/p/3733777a2020 +oauthWeixin.openid = xxxxxx +oauthWeixin.openkey = xxxxxx +oauthWeixin.redirect = xxxxxx + ## sina openid oauthSina.openid = 4193705357 oauthSina.openkey = bc7bbdfe92be06b42b38206f8bca3645 diff --git a/src/test/java/net/dreamlu/Test.java b/src/test/java/net/dreamlu/Test.java index 40c100d..a7c1c7f 100644 --- a/src/test/java/net/dreamlu/Test.java +++ b/src/test/java/net/dreamlu/Test.java @@ -68,5 +68,11 @@ public class Test { System.out.println(db.getAuthorizeUrl(TokenUtil.randomState())); // System.out.println(db.getUserInfoByCode("4ad0733f8c8601d9")); // --------------------------------- // + + OauthWeixin ow=OauthWeixin.me(); + System.out.println(ow.getAuthorizeUrl(TokenUtil.randomState())); + +// System.out.println(ow.getTokenByCode("031iCNu42S3E9L0U2Et42uzRu42iCNuU")); +// System.out.println(ow.getUserInfo("uP7fTztUqSGYfvlmZ-wloyMWdUDKAWSd395L-1hCenFxmWbjxhbGKgnsoD9C4F1XPMWOeqdYur-jGAQmE7dkjb2Q2sTxNfFHPlc3-RCQCJQ", "oI_5Bv-nD-R4HpMLPlq_khNSUZVM")); } } -- Gitee From 37d739ec95ceec18bc9ce7cfbfdc3a608b42cf03 Mon Sep 17 00:00:00 2001 From: Javen205 Date: Wed, 15 Feb 2017 16:55:29 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E7=99=BB=E9=99=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/net/dreamlu/api/oauth/OauthWeixin.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/main/java/net/dreamlu/api/oauth/OauthWeixin.java b/src/main/java/net/dreamlu/api/oauth/OauthWeixin.java index 620699f..d05d8f7 100644 --- a/src/main/java/net/dreamlu/api/oauth/OauthWeixin.java +++ b/src/main/java/net/dreamlu/api/oauth/OauthWeixin.java @@ -49,7 +49,7 @@ public class OauthWeixin extends Oauth{ } /** - * 获取token + * 获取token 返回的是JSON 解析获取到Token以及OpenId * @param code 使用code换取token * @return String 返回类型 */ @@ -59,9 +59,7 @@ public class OauthWeixin extends Oauth{ params.put("appid", getClientId()); params.put("secret", getClientSecret()); params.put("grant_type", "authorization_code"); - String token = TokenUtil.getAccessToken(super.doPost(TOKEN_URL, params)); - LOGGER.debug(token); - return token; + return super.doPost(TOKEN_URL, params); } /** -- Gitee