openid會變嗎?微信小程序開發中的appid、openid、unionid使用總結


轉載:https://blog.csdn.net/huluwa10526/article/details/110522033

openid會變嗎?微信的appid、openid、unionid使用總結

最近在開發中涉及到了微信賬戶綁定的openid變化問題,遇有不解,所以自己想梳理一下這幾個id的概念以及他們之間的關系。

首先確認openid是會變化的!

appid

定義:小程序唯一憑證,即 AppID,每個小程序都有自己的一個appid

獲取途徑:可在「微信公眾平台 - 設置 - 開發設置」頁中獲得。(需要已經成為開發者,且帳號沒有異常狀態)

用途:小程序的 AppID 相當於小程序平台的一個身份證,會在很多場景中使用,比如小程序的登錄、授權等

openid

定義:用戶在同一個小程序下的唯一表示,即同一個用戶在不同的小程序下的openid是不同的

獲取途徑:調用 auth.code2Session 接口,通過code(登錄憑證,調用wx.login獲取)+appid+appsecret(小程序密鑰,獲取方式和appid一樣)可以換取openid

用途:用於在開發者系統中標識用戶信息

unionid

定義:如果開發者擁有多個移動應用、網站應用、和公眾帳號(包括小程序),可通過 UnionID 來區分用戶的唯一性,因為只要是同一個微信開放平台帳號下的移動應用、網站應用和公眾帳號(包括小程序),用戶的 UnionID 是唯一的。換句話說,同一用戶,對同一個微信開放平台下的不同應用,UnionID是相同的。

獲取途徑:
1、調用接口 wx.getUserInfo,從解密數據中獲取 UnionID
2、如果開發者帳號下存在同主體的公眾號,並且該用戶已經關注了該公眾號。開發者可以直接通過 wx.login + code2Session 獲取到該用戶 UnionID,無須用戶再次授權。
3、如果開發者帳號下存在同主體的公眾號或移動應用,並且該用戶已經授權登錄過該公眾號或移動應用。開發者也可以直接通過 wx.login + code2Session 獲取到該用戶 UnionID ,無須用戶再次授權。
4、用戶在小程序(暫不支持小游戲)中支付完成后,開發者可以直接通過getPaidUnionId接口獲取該用戶的 UnionID,無需用戶授權。注意:本接口僅在用戶支付完成后的5分鍾內有效,請開發者妥善處理。
5、小程序端調用雲函數時,如果開發者帳號下存在同主體的公眾號,並且該用戶已經關注了該公眾號,可在雲函數中通過 cloud.getWXContext 獲取 UnionID。
6、小程序端調用雲函數時,如果開發者帳號下存在同主體的公眾號或移動應用,並且該用戶已經授權登錄過該公眾號或移動應用,也可在雲函數中通過 cloud.getWXContext 獲取 UnionID。

用途:標識同一個微信開放平台下的用戶,可用於去重判斷

openid的變化

根據openid的定義,openid是用戶在同一個小程序下的唯一表示,即同一個用戶在不同的小程序下的openid是不同的,所以當你的appid變化之后,用戶的openid就會發生變化,但當你的aapid不變AppSecret時openid是不會變的。

如果的appid改變了openid想繼續使用的話,可以遷移替換用戶的openid,根據新的appid批量將舊的openid替換成新的openid然后再導入數據庫,這種方法我只是看到了,並沒有實際了解怎么操作,如果有需求的話可以去網上查資料。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM