微信小程序授权(java)

「爱情、让人受尽委屈。」 2023-02-20 07:06 109阅读 0赞
  1. 引入jar
  2. <dependency>
  3. <groupId>com.github.binarywang</groupId>
  4. <artifactId>weixin-java-miniapp</artifactId>
  5. <version>3.8.0</version>
  6. </dependency>

对应的api文档 :

http://binary.ac.cn/weixin-java-miniapp-javadoc/cn/binarywang/wx/miniapp/api/impl/WxMaAnalysisServiceImpl.html

授权核心

  1. public AuthorizeResponse authorize( WxUserRegisterRequest registerRequest) {
  2. try {
  3. WxMaJscode2SessionResult session = Wxconfig.wxService.getUserService().getSessionInfo(registerRequest.getCode());
  4. String accessToken = Wxconfig.wxService.getAccessToken();
  5. WxMaUserInfo userInfo = Wxconfig.wxService.getUserService().getUserInfo(session.getSessionKey(), registerRequest.getEncryptedData(), registerRequest.getIv());
  6. AuthorizeResponse authorizeResponse = new AuthorizeResponse()
  7. .setOpenid(userInfo.getOpenId())
  8. .setUnionid(userInfo.getUnionId())
  9. .setAccessToken(accessToken)
  10. .setSessionKey(session.getSessionKey());
  11. return authorizeResponse;
  12. } catch (WxErrorException e) {
  13. throw new CloudException(ExceptionConstant.DATD_ERROR);
  14. }
  15. }

各类实体

WxUserRegisterRequest

  1. @Data
  2. @Accessors(chain = true)
  3. public class WxUserRegisterRequest {
  4. private String sessionKey;
  5. private String encryptedData;
  6. private String iv;
  7. private String openid;
  8. private String unionid;
  9. private String nickname;
  10. private String avatar;
  11. private int gender;
  12. private String code;
  13. private String ip;
  14. }

Wxconfig

  1. @Component
  2. public class Wxconfig {
  3. public static String APPID = "xxx";
  4. /**
  5. * 设置微信小程序的Secret
  6. */
  7. public static String SECRET = "xxx";
  8. /**
  9. * 设置微信小程序消息服务器配置的token
  10. */
  11. public static String token;
  12. /**
  13. * 设置微信小程序消息服务器配置的EncodingAESKey
  14. */
  15. public static String aesKey;
  16. /**
  17. * 消息格式,XML或者JSON
  18. */
  19. public static String msgDataFormat = "JSON";
  20. public static WxMaService wxService;
  21. @PostConstruct
  22. public void init(){
  23. wxService = new WxMaServiceImpl();
  24. WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl();
  25. config.setAppid(Wxconfig.APPID);
  26. config.setSecret(Wxconfig.SECRET);
  27. wxService.setWxMaConfig(config);
  28. }
  29. }
  30. AuthorizeResponse
  31. @Data
  32. @Accessors(chain = true)
  33. public class AuthorizeResponse {
  34. private String sessionKey;
  35. private String openid;
  36. private String unionid;
  37. private String accessToken;
  38. }

之后的登录只要小程序将openid或unionid传上来,然后根据自己的业务处理即可

发表评论

表情:
评论列表 (有 0 条评论,109人围观)

还没有评论,来说两句吧...

相关阅读

    相关 程序授权

    首先要清楚小程序的几种授权,且oppenid是可以静默拿到,不需要授权 所以,在获取oppenid这一块,可以写在app.js的onLaunch中,并且在封装好的post

    相关 程序授权功能

    思路: 1.首先获取授权,看看到底有没有这个授权,如果有,那么就不再进行再次请求,如果没有,那么再次请求或者其他的业务逻辑。 2.查看授权信息接口:wx.getSett

    相关 程序授权登录

    现在微信小程序非常火爆,很多常规的APP都推出了自己的微信小程序。说到微信小程序,不可避免会触及到微信账号的授权登录,现在来说说一下哈! 首先需要自己的一个小程序,可以到微

    相关 程序授权登录

    现在微信小程序非常火爆,很多常规的APP都推出了自己的微信小程序。说到微信小程序,不可避免会触及到微信账号的授权登录,现在来说说一下哈! 首先需要自己的一个小程序,可以到微