手动获取微信的openid

先上一波文档

https://developers.weixin.qq.com/doc/
手动获取微信的openid_第1张图片

手动获取微信的openid_第2张图片

手动获取微信的openid_第3张图片

手动获取微信的openid_第4张图片

接下来讲讲没有服务公众号,也就是服务号的时候该咋办。

首先下一natapp,可以对方提供一个给别人访问的url(er ji yu ming)
具体咋玩可以看官方文档,这边简单介绍一下

先去免费注册一个号
再买个通道,官方流程很简单(帮助你花钱)

配置一下
手动获取微信的openid_第5张图片

然后自己电脑上启动自己的web应用,然后把natapp也启动一下,找到自己对应的启动命令

cmd -authtoken= 参数方式运行.
windows ,点击开始->运行->命令行提示符 后进入 natapp.exe的目录
运行

natapp -authtoken=9ab6b9040a624f40

linux ,同样给予可执行权限之后,运行

./natapp -authtoken=9ab6b9040a624f40

注意参数输入正确性,不要有多余的空格等!

然后用这个er ji yu ming访问自己的controllrt就可以成功了

接下来就是获取openid之前的code了

自己写个controllrt用于接收code,为啥要这个呢,因为微信的接口文档里说,访问一串微信要求格式的url之后微信回回调这个url并且把code发过来。

手动获取微信的openid_第6张图片

然后去微信测试号(我这没有服务号,只能用测试号)设置这个回调url

手动获取微信的openid_第7张图片
填上刚刚在natapp里自己注册的域名,就是域名,不要写http前缀和其他后缀url

授权回调域名配置规范为全域名,比如需要网页授权的域名为:www.qq.com,配置以后此域名下面的页面http://www.qq.com/music.html
、 http://www.qq.com/login.html 都可以进行OAuth2.0鉴权。但http://pay.qq.com 、
http://music.qq.com 、 http://qq.com 无法进行OAuth2.0鉴权

然后在这个url里拿到code之后再跟着官方文档往下走,

通过code换取网页授权access_token

首先请注意,这里通过code换取的是一个特殊的网页授权access_token,与基础支持中的access_token(该access_token用于调用其他接口)不同。公众号可通过下述接口来获取网页授权access_token。如果网页授权的作用域为snsapi_base,则本步骤中获取到网页授权access_token的同时,也获取到了openid,snsapi_base式的网页授权流程即到此为止。

尤其注意:由于公众号的secret和获取到的access_token安全级别都非常高,必须只保存在服务器,不允许传给客户端。后续刷新access_token、通过access_token获取用户信息等步骤,也必须从服务器发起。

请求方法

获取code后,请求以下链接获取access_token:
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

appid=APPID&secret=SECRET&code=CODE

appid你测试号首页最上面的appid
secret你测试号首页最上面的secret
code就是你获取到的code

然后简单用RestTemplate请求一波就可以获得openid了,搞定!

RestTemplate restTemplate = new RestTemplate();
String response = restTemplate.getForObject(url,String.class);

你可能感兴趣的:(JAVA)