微信PC端登入和手機端登入邏輯分享

2020-07-16 10:05:58
PC端登入需要在微信開放平台申請,而行動端授權登入只需要有已經認證的服務號即可。然後同一個網站平台,用同一個微信使用者去登入,會發現PC端獲取的微信使用者openid和行動端不同,這個問題如何解決?

一、官方做法

我們需要在微信開放平台系結微信服務號,這個時候就有一個奇葩的事情出現,如果該微信服務號沒有申請微信小程式,那麼微信開放平台提示必須先開通小程式。

那麼在微信開放平台系結微信服務號後,我們就可以獲取到統一的一個UnionID,這個UnionID無論是Pc端微信登入還是行動端微信登入,都是統一的。

我們看下官方的解釋:

UnionID機制的作用說明:如果開發者擁有多個移動應用、網站應用和公眾帳號,可通過獲取使用者基本資訊中的unionid來區分使用者的唯一性,因為同一使用者,對同一個微信開放平台下的不同應用(移動應用、網站應用和公眾帳號),unionid是相同的。

二、另闢蹊徑的做法

場景1、

1、手機號註冊-》成功。

2、該使用者第一次使用PC端微信登陸,則到達系結手機號頁面,如果該手機號已經註冊,則更新資料表欄位weixin_open_id。

3、該使用者第二次使用PC端微信登陸,更新最後一次登入時間。

場景2、

1、手機號註冊-》成功。

2、該使用者第一次使用行動端微信登陸,則到達系結手機號頁面,如果該手機號已經註冊,則更新資料表欄位weixin_open_id_m。

3、該使用者第二次使用行動端微信登陸,更新最後一次登入時間。

場景3、

1、該使用者第一次使用PC端微信登陸,則到達系結手機號頁面,係結手機號,插入記錄。

2、該使用者第二次使用PC端微信登陸,更新最後一次登入時間。

場景4、

1、該使用者第一次使用行動端微信登陸,則到達系結手機號頁面,係結手機號,插入記錄。

2、該使用者第二次使用行動端微信登陸,更新最後一次登入時間。

總之,無論使用者第一次是手機號註冊還是PC端微信登陸、行動端微信登陸,只要是第一次登陸,我們都會拿到使用者的手機號,那麼手機號作為該使用者憑證。

三、需要注意

我們可以用如下程式碼判斷是PC微信登入還是行動端微信登入:

if(request()->isMobile()){
    //行動端
}else{
    //PC端
}

PC微信登入和行動端微信登入需要分別處理。

最後

我們還是建議大家用官方做法,如果遇到某些情況可以使用第二種。另外對於大型網站來說,PC端和行動端單獨分開,不適合自適應網站開發。

以上就是微信PC端登入和手機端登入邏輯分享的詳細內容,更多請關注TW511.COM其它相關文章!