OpenID與UnionID介紹
OpenID相對于開發(fā)者的應用而言是唯一的
UnionID相對于開發(fā)者同一個賬號下的所有應用而言是唯一的
OpenID長度為28;UnionID長度為29
OpenID 是 微信號與公眾平臺APPID 加密后得到的用戶標識;
UnionID 是 微信號與開放平臺APPID 加密后得到的用戶唯一標識
如果需要獲取UnionID且预,需要將公眾號綁定到微信開放平臺賬號下
獲取用戶的OpenID是無需用戶同意的韵丑,但獲取用戶基本信息需要用戶同意
公眾號設置
- 點擊右上角頭像,選擇功能設置
- 點擊設置網(wǎng)頁授權(quán)域名
- 下載點擊后顯示的txt文件,將其放在自己的項目中下面,并保證可以訪問到該txt文件
- 完成第三步后將項目的域名配置上去
- 在左邊菜單欄的基本配置中設置項目所在服務器的IP白名單
公眾號網(wǎng)頁授權(quán)
1. 用戶進入授權(quán)頁面同意授權(quán)续徽, 獲取code
a) 授權(quán)鏈接為:
參數(shù)說明:
參數(shù) | 是否必須 | 說明 |
---|---|---|
appid | 是 | 公眾號的唯一標識 |
redirect_uri | 是 | 授權(quán)后重定向的回調(diào)鏈接地址蚓曼, 要 urlEncode 對鏈接進行處理 |
response_type | 是 | 返回類型,請?zhí)顚慶ode |
scope | 是 | 應用授權(quán)作用域 |
state | 是 | 重定向后會帶上state參數(shù)钦扭,可以填寫a-zA-Z0-9的參數(shù)值纫版,最多128字節(jié) |
#wechat_redirect | 是 | 無論直接打開還是做頁面302重定向時候,必須帶此參數(shù) |
scope分為snsapi_base (不彈出授權(quán)頁面客情,直接跳轉(zhuǎn)其弊,只能獲取用戶openid),和snsapi_userinfo (即使在未關(guān)注的情況下癞己,只要用戶授權(quán),也能獲取用戶信息 )
b) 同意授權(quán)后梭伐,頁面將跳轉(zhuǎn)到:
redirect_uri/?code=CODE&state=STATE
code說明 : code作為換取access_token的票據(jù)痹雅,每次用戶授權(quán)帶上的code將不一樣,code只能使用一次糊识,5分鐘未被使用自動過期绩社。
c) 效果圖:
2. 通過code換取網(wǎng)頁授權(quán)access_token
注意,這里通過code換取的是一個特殊的網(wǎng)頁授權(quán)access_token,與基礎(chǔ)支持中的access_token(該access_token用于調(diào)用其他接口)不同
a) 請求方法:
獲取code后赂苗,請求以下鏈接獲取access_token: https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_cod
參數(shù)說明:
參數(shù) | 是否必須 | 說明 |
---|---|---|
appid | 是 | 公眾號的唯一標識 |
secret | 是 | 公眾號的appsecret |
code | 是 | 第一步獲取的code參數(shù) |
grant_type | 是 | 填寫authorization_code |
返回的JSON格式:
{
"access_token":"ACCESS_TOKEN", //access_token
"expires_in":7200, //過期時間愉耙,單位秒
"refresh_token":"REFRESH_TOKEN", //用戶刷新access_token
"openid":"OPENID", //openid
"scope":"SCOPE" //用戶授權(quán)的作用域,使用逗號(,)分隔
}
3. 獲取用戶信息(需scope為 snsapi_userinfo)
a) 請求方法:
http:GET(請使用https協(xié)議) https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
參數(shù)說明:
參數(shù) | 是否必須 | 說明 |
---|---|---|
access_token | 是 | 網(wǎng)頁授權(quán)接口調(diào)用憑證 |
openid | 是 | 用戶的唯一標識 |
lang | 是 | 返回國家地區(qū)語言版本拌滋,zh_CN 簡體朴沿,zh_TW 繁體,en 英語 |
返回的JSON格式:
{
"openid":" OPENID", //openId
"nickname": NICKNAME, //用戶昵稱
"sex":"1", //用戶性別败砂,1男赌渣;2女;3未知
"province":"PROVINCE", //省份
"city":"CITY", //城市
"country":"COUNTRY", //國家
"headimgurl": "http://thirdwx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46", //頭像圖片
"privilege":[ "PRIVILEGE1" "PRIVILEGE2" ], //用戶特權(quán)
"unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL" //unionid昌犹,需要綁定開放平臺才能獲取到
}