微信网页授权的2种方式

《微信网页授权》专题

1 第一步:用户同意授权,获取code

2 第二步:通过code换取网页授权access_token

3 第三步:刷新access_token(如果需要)

4 第四步:拉取用户信息(需scope为 snsapi_userinfo)

5 附:检验授权凭证(access_token)是否有效

1,获取code

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

需要参数:APPID,scop=snsapi_userinfo

接收HttpRequest的code参数:REDIRECT_URI

2,获取code后,请求以下链接获取access_token

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

需要参数:APPID 和 SECRET,以及CODE

返回json数据包:

{

  "access_token":"ACCESS_TOKEN",

  "expires_in":7200,

  "refresh_token":"REFRESH_TOKEN",

  "openid":"OPENID",

  "scope":"SCOPE"

}

3,拉取用户信息

http:GET(请使用https协议) https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

需要参数:ACCESS_TOKEN和OPENID

返回json数据包:

  "openid":" OPENID",

  "nickname": NICKNAME,

  "sex":"1",

  "province":"PROVINCE",

  "city":"CITY",

  "country":"COUNTRY",

  "headimgurl":      "http://thirdwx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46",

  "privilege":[ "PRIVILEGE1" "PRIVILEGE2"    ],

  "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"}

方式二:

1,

获取code

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

需要参数:APPID,scop=snsapi_base

接收HttpRequest的code参数:REDIRECT_URI

以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面)

2,获取code后,请求以下链接获取openid

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

需要参数:APPID 和 SECRET,以及CODE

返回json包:获取openid存储

3,获取access_token    https请求方式: GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

String actokenUrl="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET";

actokenUrl=actokenUrl.replaceAll("APPID", APPID).replaceAll("APPSECRET", APPSECRET);

参数:APPID和APPSECRET

返回:access_token

4,获取获取用户基本信息(UnionID机制) https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

String useInfoUrl="https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN";

useInfoUrl=useInfoUrl.replaceAll("ACCESS_TOKEN", ACCESS_TOKEN).replaceAll("OPENID", openid);


灵活应用需要依赖的技术:https请求封装、gson和java类转换或JSONObject

你可能感兴趣的:(微信网页授权的2种方式)