快速实现微信公众号认证授权开发

最近做微信公众号和小程序相关的开发。大家都知道微信开发调试起来比较麻烦,因此推荐给大家一个内网穿透的工具NATTAPP。附上官网一分钟快速上手地址:https://natapp.cn/article/natapp_newbie.。在这个平台上设置好一个域名。通过此域名可以映射到本地。 

微信开发之前首先要有一个经过备案的域名 比如 http://sjx.s2.natapp.cc


授权步走如下 


buzou

放到项目resource/static 目录下

在浏览器上访问 http://sjx.s2.natapp.cc/MP_verify_CchqzOKsBbk7hOMf.txt 会得到一串数字


返回公众号设置会看到网页授权域名上已经有值了。此时域名已经备案成功。

认证授权开发

demo 使用的是别人封装好的微信工具类可以实现快速开发

github地址: https://github.com/Wechat-Group/weixin-java-tools

新建url 配置类


yml 配置


编写授权接口

@GetMapping("/authorize")

public Stringauthorize(@RequestParam("returnUrl") String returnUrl) {

String url =urlConfig.getWechatMpAuthorize() +"/sell/wechat/userInfo";  //用户授权之后回调地址

//方法执行完会重定向

    String redirectUrl =wxMpService.oauth2buildAuthorizationUrl(url, WxConsts.OAUTH2_SCOPE_USER_INFO,

            URLEncoder.encode(returnUrl));

    return "redirect:" + redirectUrl;

}

授权成功之后回调地址接口

/**

* 当用户授权过之后会回调这个方法,这个方法可以获取用户的openid

**/

@GetMapping("/userInfo")

public StringuserInfo(@RequestParam("code") String code, @RequestParam("state") String returnUrl)throws Exception {

WxMpOAuth2AccessToken wxMpOAuth2AccessToken =new WxMpOAuth2AccessToken();

    try {

wxMpOAuth2AccessToken =wxMpService.oauth2getAccessToken(code);

    }catch (WxErrorException e) {

e.printStackTrace();

        log.error("微信网页授权{}", e.getMessage());

        throw new SellException(ResultEnum.WECHAT_MP_ERROR);

    }

WxMpUser wxMpUser =wxMpService.oauth2getUserInfo(wxMpOAuth2AccessToken, null);

    wxMpUser.getNickname();

    String openId = wxMpOAuth2AccessToken.getOpenId();

    return "redirect;" + returnUrl +"?openid=" + openId;

}

已上两个接口便完成了授权认证获取用户信息

测试

打开微信公众平台



https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

加粗斜体的是需要替换的。


个人测试地址

https://open.weixin.qq.com/connect/oauth2/authorize?appid=你的appid&redirect_uri=微信上备注的域名/sell/wechat/authorize?returnUrl=https://www.baidu.com&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect

将这些地址发送到微信上的微信传输助手


在手机上点击地址就会回调预先设置好的授权地址


授权完成之后就会回调这个设置好的获取用户信息的接口


微信昵称和openId也已经获取到了

你可能感兴趣的:(快速实现微信公众号认证授权开发)