国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
微信H5和微信小程序獲取openid和unionid等用戶信息的機制解讀
我們在做微信開發(fā)的時候有時候需要確認用戶身份來完成登錄注冊、消息推送、用戶關聯(lián)、快捷登錄等功能,但是小程序或H5應該在何時獲取openid或unionid,如何才能設計出更加順滑的操作,讓產(chǎn)品經(jīng)理們倍感頭疼,今天就來簡單講講H5和小程序獲取用戶信息的機制。
什么是openid、unionid和用戶基本信息?
WechatIMG506.png
這張圖的意思是說,同一個微信用戶在不同的應用中存在不同的唯一ID,就是openid,但是當兩個應用綁定在同一個微信開發(fā)者平臺賬號下的時候,可以判斷出兩個openid關聯(lián)的是同一個unionid,這樣,開發(fā)者就知道兩個應用中的兩個用戶其實是同一個用戶。需要注意,假如兩個應用沒有綁定在同一個開發(fā)者賬號下,那意味著無法獲取到unionid。
用戶基本信息包括:openid、unionid、昵稱、頭像、所在城市等眾多信息,我們不需要明確太多,完全可以查看接口,這里要注意的是用戶基本信息是包括unionid的,但是如果沒有申請開發(fā)者平臺賬號并進行應用的綁定,那么用戶基本信息是無法返回unionid的。
H5如何獲取用戶的openid和unionid
明確H5:
這里說的H5,是指網(wǎng)頁應用,也就是說用戶在微信客戶端訪問網(wǎng)頁應用,可以通過授權(quán)機制獲取到用戶的信息,進而實現(xiàn)業(yè)務邏輯。
網(wǎng)頁授權(quán)回調(diào)域名的說明:
(翻譯一下,就是H5網(wǎng)頁在微信公眾號的配置,這個不難,也不是重點,就直接復制微信開發(fā)者文檔里面的內(nèi)容看看就行了)
(1) 在微信公眾號請求用戶網(wǎng)頁授權(quán)之前,開發(fā)者需要先到公眾平臺官網(wǎng)中的“開發(fā) - 接口權(quán)限 - 網(wǎng)頁服務 - 網(wǎng)頁賬號 - 網(wǎng)頁授權(quán)獲取用戶基本信息”的配置選項中,修改授權(quán)回調(diào)域名。請注意,這里填寫的是域名(是一個字符串),而不是URL,因此請勿加 http:// 等協(xié)議頭;
(2) 授權(quán)回調(diào)域名配置規(guī)范為全域名,比如需要網(wǎng)頁授權(quán)的域名為:www.qq.com,配置以后此域名下面的頁面http://www.qq.com/music.html 、http://www.qq.com/login.html 都可以進行OAuth2.0鑒權(quán)。但http://pay.qq.com 、http://music.qq.comhttp://qq.com 無法進行OAuth2.0鑒權(quán);
(3) 如果公眾號登錄授權(quán)給了第三方開發(fā)者來進行管理,則不必做任何設置,由第三方代替公眾號實現(xiàn)網(wǎng)頁授權(quán)即可。
參考文檔鏈接
網(wǎng)頁授權(quán)的兩種形式
官方文檔
方式1-靜默授權(quán)獲取openid
以snsapi_base為scope發(fā)起的網(wǎng)頁授權(quán),是用來獲取進入頁面的用戶的openid的,并且是靜默授權(quán)并自動跳轉(zhuǎn)到回調(diào)頁的。用戶感知的就是直接進入了回調(diào)頁(往往是業(yè)務頁面)
方式2-非靜默授權(quán)獲取openid
以snsapi_userinfo為scope發(fā)起的網(wǎng)頁授權(quán),是用來獲取用戶的基本信息的。但這種授權(quán)需要用戶手動同意,并且由于用戶同意過,所以無須關注,就可在授權(quán)后獲取該用戶的基本信息。
(翻譯:就是說,用戶可以通過授權(quán)框確認授權(quán),獲取用戶的基本信息,這里的基本信息是包含unionid的,但是前提是應用已經(jīng)綁定了微信開放平臺的開發(fā)者賬號)
到這里兩種方式并沒有完,微信官方文檔中又增加了一條奇怪的限制:
“用戶管理類接口中的“獲取用戶基本信息接口”,是在用戶和公眾號產(chǎn)生消息交互或關注后事件推送后,才能根據(jù)用戶OpenID來獲取用戶基本信息。這個接口,包括其他微信接口,都是需要該用戶(即openid)關注了公眾號后,才能調(diào)用成功的。”
這是因為聰明的開發(fā)者想到了規(guī)避用戶授權(quán)就能獲取到包括unionid在內(nèi)的用戶基本信息的方法,所以在后續(xù)的迭代中,微信屏蔽了這個接口。什么方法呢,就是用靜默的方式獲取到用戶的openid,然后在“用戶管理的接口中用openid去查用戶信息”,如圖:
WechatIMG508.png
那么微信為了規(guī)避這種情況的發(fā)生,所以給出了限制,使用用戶管理類接口中的獲取用戶基本信息的接口時,必須要先關注公眾號,否則返回的信息只有openid,也就是說,你只能用openid換回來openid,等于啥都沒有~~~
看看用戶管理類接口中的內(nèi)容:
{ "user_info_list": [ { "subscribe": 1, "openid": "otvxTs4dckWG7imySrJd6jSi0CWE", "nickname": "iWithery", "sex": 1, "language": "zh_CN", "city": "揭陽", "province": "廣東", "country": "中國", "headimgurl": "http://thirdwx.qlogo.cn/mmopen/xbIQx1GRqdvyqkMMhEaGOX802l1CyqMJNgUzKP8MeAeHFicRDSnZH7FY4XB7p8XHXIf6uJA2SCunTPicGKezDC4saKISzRj3nz/0", "subscribe_time": 1434093047, "unionid": "oR5GjjgEhCMJFyzaVZdrxZ2zRRF4", "remark": "", "groupid": 0, "tagid_list":[128,2], "subscribe_scene": "ADD_SCENE_QR_CODE", "qr_scene": 98765, "qr_scene_str": "" }, { "subscribe": 0, "openid": "otvxTs_JZ6SEiP0imdhpi50fuSZg" } ]}
其中subscribe代表是否關注了公眾號,1為關注,0為未關注,在0的情況下,只返回了openid,1的情況下返回了很多信息。
綜上所述
網(wǎng)頁應用可以靜默獲取openid,可以授權(quán)獲取用戶基本信息(包括unionid)。
微信小程序如何獲取用戶的openid和unionid
小程序的登錄時序圖
api-login.2fcc9f35.jpg
整個過程中,其實是靜默獲取到用戶的openid的,這一點和早期的小程序不一樣,早期的小程序是通過用戶授權(quán)才能獲取到openid的。
小程序獲取unionid
方式1-直接調(diào)用接口(需要授權(quán)):
調(diào)用接口 wx.getUserInfo,從解密數(shù)據(jù)中獲取 UnionID。注意本接口需要用戶授權(quán),請開發(fā)者妥善處理用戶拒絕授權(quán)后的情況。
方式2-存在同主體公眾號且已經(jīng)關注了該公眾號(無需授權(quán)):
如果開發(fā)者賬號下存在同主體的公眾號,并且該用戶已經(jīng)關注了該公眾號。開發(fā)者可以直接通過 wx.login + code2Session 獲取到該用戶 UnionID,無須用戶再次授權(quán)。
方式3-存在同主體的公眾號或移動應用且已經(jīng)授權(quán)登錄過該公眾號或移動應用(無需授權(quán)):
如果開發(fā)者賬號下存在同主體的公眾號或移動應用,并且該用戶已經(jīng)授權(quán)登錄過該公眾號或移動應用。開發(fā)者也可以直接通過 wx.login + code2Session 獲取到該用戶 UnionID ,無須用戶再次授權(quán)。
方式4-五分鐘內(nèi)在小程序中完成過支付(無需授權(quán)):
用戶在小程序(暫不支持小游戲)中支付完成后,開發(fā)者可以直接通過getPaidUnionId接口獲取該用戶的 UnionID,無需用戶授權(quán)。注意:本接口僅在用戶支付完成后的5分鐘內(nèi)有效,請開發(fā)者妥善處理。
其他方式,與云函數(shù)有關:
1、小程序端調(diào)用云函數(shù)時,如果開發(fā)者賬號下存在同主體的公眾號,并且該用戶已經(jīng)關注了該公眾號,可在云函數(shù)中通過 cloud.getWXContext 獲取 UnionID。
2、小程序端調(diào)用云函數(shù)時,如果開發(fā)者賬號下存在同主體的公眾號或移動應用,并且該用戶已經(jīng)授權(quán)登錄過該公眾號或移動應用,也可在云函數(shù)中通過 cloud.getWXContext 獲取 UnionID。
綜上所述
小程序可以通過靜默的方式獲取到openid,但是需要獲取unionid需要使用用戶授權(quán)的方式。
總結(jié)
我們可以通過靜默的方式獲取h5和小程序的openid,通過授權(quán)的方式獲取用戶信息和unionid,其中小程序的用戶信息需要考慮加密解密的機制,這里不做陳述,那么產(chǎn)品經(jīng)理們需要注意在什么時候去獲取用戶信息,在什么時候去使用openid,這樣才能打造出更加流暢的用戶體驗。
作者:王得宇AIPM
微信公眾號:他們已經(jīng)在路上了
他們已經(jīng)在路上了
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
網(wǎng)頁授權(quán)獲取用戶基本信息
微信小程序 獲取用戶信息并保存登錄狀態(tài)
微信小程序授權(quán)登錄最佳實踐
小程序?小故事(4)——獲取用戶信息
微信開發(fā)之分清公眾平臺和開放平臺、公眾號全局憑證和網(wǎng)頁授權(quán)憑證
簽名加密 · 小程序
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服