diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpService.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpService.java index 68a19bbe4..3205adbe4 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpService.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpService.java @@ -387,6 +387,18 @@ public interface WxMpService { */ public String oauth2buildAuthorizationUrl(String scope, String state); + /** + *
+ * 构造oauth2授权的url连接 + * 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=网页授权获取用户基本信息 + *+ * @param redirectURI + * 用户授权完成后的重定向链接,无需urlencode, 方法内会进行encode + * @param scope + * @param state + * @return code + */ + public String oauth2buildAuthorizationUrl(String redirectURI, String scope, String state); /** *
* 用code换取oauth2的access token diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpServiceImpl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpServiceImpl.java index 059a09f3e..e41a26e53 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpServiceImpl.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpServiceImpl.java @@ -363,9 +363,14 @@ public class WxMpServiceImpl implements WxMpService { @Override public String oauth2buildAuthorizationUrl(String scope, String state) { + return this.oauth2buildAuthorizationUrl(wxMpConfigStorage.getOauth2redirectUri(), scope, state); + } + + @Override + public String oauth2buildAuthorizationUrl(String redirectURI, String scope, String state) { String url = "https://open.weixin.qq.com/connect/oauth2/authorize?" ; url += "appid=" + wxMpConfigStorage.getAppId(); - url += "&redirect_uri=" + URIUtil.encodeURIComponent(wxMpConfigStorage.getOauth2redirectUri()); + url += "&redirect_uri=" + URIUtil.encodeURIComponent(redirectURI); url += "&response_type=code"; url += "&scope=" + scope; if (state != null) {