《微信網(wǎng)頁授權(quán)》專題
2 第二步:通過code換取網(wǎng)頁授權(quán)access_token
4 第四步:拉取用戶信息(需scope為 snsapi_userinfo)
5 附:檢驗(yàn)授權(quán)憑證(access_token)是否有效
1蜀撑,獲取code
需要參數(shù):APPID,scop=snsapi_userinfo
接收HttpRequest的code參數(shù):REDIRECT_URI
2剩彬,獲取code后酷麦,請(qǐng)求以下鏈接獲取access_token
需要參數(shù):APPID 和 SECRET,以及CODE
返回json數(shù)據(jù)包:
{
? "access_token":"ACCESS_TOKEN",
? "expires_in":7200,
? "refresh_token":"REFRESH_TOKEN",
? "openid":"OPENID",
? "scope":"SCOPE"
}
3喉恋,拉取用戶信息
http:GET(請(qǐng)使用https協(xié)議) https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
需要參數(shù):ACCESS_TOKEN和OPENID
返回json數(shù)據(jù)包:
{?
? "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
需要參數(shù):APPID沃饶,scop=snsapi_base
接收HttpRequest的code參數(shù):REDIRECT_URI
以snsapi_base為scope發(fā)起的網(wǎng)頁授權(quán)母廷,是用來獲取進(jìn)入頁面的用戶的openid的,并且是靜默授權(quán)并自動(dòng)跳轉(zhuǎn)到回調(diào)頁的糊肤。用戶感知的就是直接進(jìn)入了回調(diào)頁(往往是業(yè)務(wù)頁面)
2琴昆,獲取code后,請(qǐng)求以下鏈接獲取openid
需要參數(shù):APPID 和 SECRET馆揉,以及CODE
返回json包:獲取openid存儲(chǔ)
3业舍,獲取access_token? ? https請(qǐng)求方式: 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);
參數(shù):APPID和APPSECRET
返回:access_token
4,獲取獲取用戶基本信息(UnionID機(jī)制) 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);
靈活應(yīng)用需要依賴的技術(shù):https請(qǐng)求封裝升酣、gson和java類轉(zhuǎn)換或JSONObject