微信網頁開發

微信OpenID獲取

 
用戶要求在微信端登陸一次後,之後不須要再登陸.  個人系統是單獨的一個網站. 使用MVC的記住密碼功能, 若是用戶重啓,就仍是要輸入密碼,因此須要有一個惟一不變的用來標示用戶的ID。  OpenID就是這樣,微信用戶對於每一個公衆號它都是惟一的,無論關注仍是不關注。
 
如何作到呢?
 
使用微信的網頁受權(OAuth2.0),簡單點理解這個東西就是跑到微信去請求個回調,微信跳轉到你給的回調頁面,而後在頁面後面加個code,  你拿着code 去微信取你要的信息。
(1), 去公衆號後臺設置回調的域名
       在開發-- 接口權限 -- 網頁帳號-- 用戶受權獲取用戶基礎信息   點擊 「修改」,輸入域名。  如 www.baidu.com
 
(2)  綁定開發者微信號: 在開發--開發者工具 -- web開發者工具--進入 綁定開發者微信
 
(3) 這個時候你就能夠試着看到code.  好比
在微信web開發者工具中輸入

https://open.weixin.qq.com/connect/oauth2/authorize?appid=*******&redirect_uri=www.baidu.com&response_type=code&scope=snsapi_base&state=1#wechat_redirecthtml

頁面就會跳轉到  www.baidu.com?code=***.  就能夠看到code了。
 
(4) 經過code 來獲取openID

https://api.weixin.qq.com/sns/oauth2/access_token?appid=***&secret=***&code=***&grant_type=authorization_codeweb

會返回json 數據包,裏面有要得OpenID 。  具體能夠參見: http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html
 
這裏注意的是一個code只能使用一次,我開始不知道,反覆去取,致使程序時而好時而很差。  Code 5分鐘不用就過時。
我這裏只是去了OpenID。若是要取用戶的其它信息,就須要在取code的時候改scope=snsapi_userinfo。 開發者文檔也有詳細記錄
相關文章
相關標籤/搜索