衆所周知,微信公衆號分爲訂閱號、服務號和企業號。撇開企業號不談,雖然只有服務號可以經過微信接口得到用戶級別信息(特別是針對每一個公衆號惟一的openId),但咱們能夠仍能夠在未認證的訂閱號中經過平臺測試號開發測試用戶基本信息。html
微信第三方登陸的原理和流程再也不贅述,下面說明一下測試號開發的過程。json
首先打開測試頁面,先登陸任一類型的公衆號(包括未認證的),在左側菜單找到 開發-->開發者工具,進入「公衆平臺測試帳號」,這裏時須要刷微信認證的二維碼(任一微信帳戶均可以,與登陸微信公衆平臺的帳號無關)。api
在測試管理的界面,能夠獲得你的微信對應測試帳號的appId和appSecret的值。安全
接下來的接口配置URL,是須要在咱們本身服務上實現的servlet服務的url,具體的實現代碼參考這篇文章:http://www.jb51.net/article/78305.htm。注意,該servlet必須可以被外網訪問;若是部署到正式公衆號的話,還須要域名。Token填寫任意的字符串,同時請務必確保servlet中的token參數與它保持一致。微信
「JS接口安全域名」中填寫訪問servlet的外網IP或者域名。app
接下來把頁面拉倒最下面,找到「體驗接口權限表」中的 網頁賬號-->網頁受權獲取用戶基本信息 一項,點擊「修改」鏈接,將訪問servlet的外網IP或者域名也填寫在這裏。微信公衆平臺
使用手機掃描「測試號二維碼」,就進入了該測試號對應的微信公衆號,這時會發現公衆號裏沒有任何菜單,咱們還須要配置菜單,可是並無可視化設置菜單的地方,須要經過測試接口才能在測試公衆號上增長菜單。工具
打開第一步中的的 開發-->開發者工具,進入「在線接口調試工具」。測試
1)獲取access_token:頁面默認就是該接口,輸入咱們測試帳號的appId和appSecret,就獲得了access_token,請注意,它是有有效期的;url
2)選擇接口類型是「自定義菜單」,能夠經過json格式創建菜單,先填寫剛剛獲得的access_token,在body中按以下格式輸入建立菜單的json:
{ "button": [ { "type": "click", "name": "流金歲月", "key": "V1001_TODAY_MUSIC", "sub_button": [] }, { "name": "菜單", "sub_button": [ { "type": "view", "name": "登陸", "url": "loginUrl", "sub_button": [] } ] } ] }
其中的loginUrl替換成微信第三方鑑權回調登陸的url,格式是https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect,這裏的 REDIRECT_URI 就是咱們本身開發的中間servlet。在servlet中獲取到微信平臺賦予的code,再調用https://api.weixin.qq.com/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code接口,在返回結果中便可獲取openId,更詳細的交互流程在微信的開發接口說明中都有詳細介紹。
最終,在測試公衆號中便可經過菜單測試登陸頁面。
轉自:http://www.cnblogs.com/rexSky/p/5691986.html