微信公众号获取openId——开发阶段

1、注册测试号

微信公众平台

2、理解获取逻辑

获得微信的openid,需要先访问微信提供的一个网址来获取code。
再访问微信提供的另一网址从而获取openId。

两个链接分别为:

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

 https://api.weixin.qq.com/sns/oauth2/access_token?appid=AppId&secret=AppSecret&code=CODE&grant_type=authorization_code

3、选择预览环境

第一个链接需要在微信客户端打开,可以选择微信开发者工具

选择公众号网页项目

打开后在地址栏中输入第一个URL地址,我这边后面跟的是跳转的网页

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxa5b9c7f2a5ab9d1e&redirect_uri=http://192.168.3.130:3000&response_type=code&scope=snsapi_base&state=STATE

 注意:这个redirect_uri填写的地址需要在公众号或者是测试号中网页账号中进行配置

 跳转后可以看到地址栏中出现了两个参数,code和state,这个时候,我们就可以拿到我们需要的code

 4、获取openId

获取到code后,就可以通过第二个链接,将所需的内容填写后,获取到openId了。

推荐从后端获取openId,可能会存在跨域、code不可用等等一系列问题,code只能使用一次。

@GetMapping("/getOpenId")
    @ApiOperation("获取OpenId")
    public JSONObject getOpenId(@RequestParam("code") String code){
        String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid={appid}&secret={secret}&code={code}&grant_type={grant_type}";
        HashMap<String,String> params = new HashMap<>();
        params.put("appid","");
        params.put("secret","");
        params.put("code",code);
        params.put("grant_type","authorization_code");
        String result = new RestTemplate().getForEntity(url, String.class, params).getBody();
        return JSONObject.fromObject(result);
    }

  • 6
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值