第一步:用户同意授权,获取code 引导用户进入授权的URL 修改一些参数
在确保微信公众账号拥有授权作用域(scope参数)的权限的前提下(服务号获得高级接口后,默认带有scope参数中的snsapi_base和snsapi_userinfo),引导关注者打开如下页面:
第二步:通过code换取网页授权access_token 这里的access_token与基础获取的access_token不同
具体做法与上面基本一致。更换相对应的值。需要注意的是code可以写一个Servlet获取。String code = requestgetParameter("code");get/post都可以。
这样子就会返回一下json格式数据
具体代码如下。获取的code换取的access_token
根据上面代码获取的access_token openid 然后再请求获取userinfo的接口。就能得到微信用户的所有信息了。
具体返回如下。获取用户信息代码不再写。
这就获取到用户的openid。应用授权作用域,snsapi_base (不d出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (d出授权页面,可通过openid拿到昵称、性别、所在地。并且,即使在未关注的情况下,只要用户授权,也能获取其信息)我自己用的作用域为snsapi_userinfo。用户点击跳转页面为
目前微信服务号在网页获取微信用户openid就这两种方法,订阅号只能通过图文或文本消息打开网页,自己传用户的openid。
1在确保微信公众账号拥有授权作用域(scope参数)的权限的前提下(服务号获得高级接口后,默认拥有scope参数中的snsapi_base和snsapi_userinfo)
2通过code换取的是一个特殊的网页授权access_token,与基础支持中的access_token(该access_token用于调用其他接口)不同。公众号可通过下述接口来获取网页授权access_token。如果网页授权的作用域为snsapi_base,则本步骤中获取到网页授权access_token的同时,也获取到了openid
要获取openid,必须要通过OAuth20来完成网页授权才能完成的,通过OAuth20来完成网页授权后,在经过用户许可后,就可以通过授权页面,获得用户的openid
如何通过OAuth20网页授权呢?要先通过申请高级接口功能
申请通过后,还要做一个授权页面,引导用户授权就能获得openid!
java获取微信的openid的方法是根据授权code来获取的,方法如下:
一个Servlet请求 获取code:
/
根据code取得openId
@param appid 公众号的唯一标识
@param secret 公众号的appsecret密钥
@param code code为换取access_token的票据
@return
/
public void doPost(>
获取微信OpenId 先获取code 再通过code获取authtoken,从authtoken中取出openid给前台 微信端一定不要忘记设定网页账号中的授权回调页面域名 流程图如下 主要代码 页面js代码 / 写cookie / function setCookie(name, value) { var Days = 30; var exp = new Date(); exp/connect/oauth2/authorizeappid=") /sns/oauth2/access_token"; StringBuffer url = new StringBuffer(uri); urlURL; public class >
以上就是关于OAuth2.0网页授权微信怎么用java获取openid全部的内容,包括:OAuth2.0网页授权微信怎么用java获取openid、怎么通过js获取微信用户的openid、如何获取微信用户openid等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)