用WxJava实现微信公众号OAuth2.0授权

  1. 用户确认授权后,授权页面重定向到redirect_uri,同时带上code参数
  2. 引入WxJava授权模块的依赖
<dependency>
    <groupId>com.github.binarywang</groupId>
    <artifactId>weixin-java-mp</artifactId>
    <version>最新版本号</version>
</dependency>
wx.mp.appId=your_app_id
wx.mp.secret=your_app_secret
wx.mp.redirectUri=your_redirect_uri
  1. 构造OAuth2授权的URL

构造OAuth2授权的URL,包括以下步骤:

    调用wxService.getOAuth2Service()方法,获取WxMpOAuth2Service对象。 调用wxMpOAuth2Service.buildAuthorizationUrl()方法,构造OAuth2授权的URL。

具体实现代码如下:

WxMpOAuth2Service wxMpOAuth2Service = wxService.getOAuth2Service();
String url = wxMpOAuth2Service.buildAuthorizationUrl(redirectUrl, WxConsts.OAuth2Scope.SNSAPI_USERINFO, null);
WxMpConfigStorage wxMpConfigStorage = new WxMpInMemoryConfigStorage();
wxMpConfigStorage.setAppId("your_app_id");
wxMpConfigStorage.setSecret("your_app_secret");

WxMpService wxMpService = new WxMpServiceImpl();
wxMpService.setWxMpConfigStorage(wxMpConfigStorage);
  1. 重定向到授权页面

将构造好的OAuth2授权的URL重定向到授权页面。

response.sendRedirect(url);
  1. 授权回调页面处理逻辑

在授权回调页面中,调用WxJava提供的API接口,获取access token和用户信息。

WxMpOAuth2AccessToken accessToken = wxMpOAuth2Service.getAccessToken(code);
WxMpUser wxMpUser = wxService.getUserService().userInfo(accessToken.getOpenId(), null);

结论

经验分享 程序员 微信小程序 职场和发展