今天完成了pc端微信相關功能的開發,主要是賬號與微信綁定,微信掃碼登陸。
流程,用戶登陸后,在個人中心里有一個和微信綁定界面,用戶使用微信掃描后,當前賬號和微信賬號綁定,可以用來微信掃描登陸。
在登陸界面用戶可以微信掃描登陸,前提是該賬號和微信已綁定。如下
上圖,該界面用戶掃碼
上圖,用戶掃碼成功后,手機界面顯示登陸成功,pc界面也顯示登陸成功,幾秒后轉跳至用戶中心。
關鍵:手機端和電腦端是同一個域名,在ThinkPHP中也是存在於同一個分組下。這樣的話,手機端登陸,電腦端也就實現了登陸。其他情況略微復雜。
詳細流程梳理:
登陸:二維碼攜帶電腦端的參數session_id訪問微信端的控制器,該控制器由於是微信用戶的訪問所以可以獲取該用戶的微信open_id,在數據庫中user表中查詢到open_id對應的用戶,手機網頁端實現登陸(把用戶的uid寫入session),這樣用戶實現了登陸。
同時,電腦登陸二維碼界面要有個js函數用ajax不斷訪問一個控制器,該控制器只需返回用戶是否登陸,如果當返回的是登陸后,隱藏二維碼並顯示登陸成功,幾秒后轉跳至用戶中心。登陸完成。
賬號綁定:如果用戶沒有綁定賬號,在登陸中獲取到open_id后是查詢不到對應的用戶uid的,所以也就沒法登陸,所以賬號綁定是將用戶的uid和他訪問時的open_id綁定,這樣就可以用open_id登陸。
賬號綁定界面的二維碼攜帶用戶的uid訪問微信端的控制器,該控制器由於是微信用戶的訪問所以可以獲取該用戶的微信open_id,查詢該open_id是否在用戶表里存在,如果存在則表明已綁定了賬號,如果沒有,則將傳過來的uid和open_id綁定。
代碼下次貼