一、Unionid是什麼意思
Unionid是一種唯一的用戶標識符,用於在不同應用之間、不同平台之間唯一標識一個用戶。通俗來說,每個用戶在一個公眾平台中的openid是不同的,但是在多個公眾平台中的unionid是相同的。
Unionid是由微信公眾平台生成,通常與用戶的微信號和微信開放平台的appid綁定。在用戶使用同一微信號關注多個公眾號時,這些公眾號即可共享同一個unionid,方便用戶在不同境界下進行統一認證。
二、公眾號獲取Unionid
獲取用戶的Unionid需要在用戶關注公眾號時,將用戶的openid和Unionid進行綁定。在用戶授權登錄公眾號時,公眾號可以通過OAuth2協議和微信開放平台網頁授權機制,獲取到用戶的openid和Unionid信息。
公眾號開發者可以通過在微信開放平台申請網頁授權,獲取用戶授權後獲得的access_token,進而拉取用戶信息,包括Unionid。
三、Unionid不能為空啥意思
Unionid不能為空是指用戶在同一微信開放平台下只有一個unionid,用戶在不同微信開放平台下可能會有不同的unionid。如果微信開放平台上的公眾號或小程序在獲取用戶信息時,發現該用戶的Unionid為空,那麼就會返回錯誤碼40029,提示UnionID不存在。
四、靜默授權獲取Unionid
靜默授權獲取Unionid,是指用戶在登錄後無需手動點擊確認的情況下,自動完成授權。在用戶第一次登錄的時候,公眾號或小程序可以通過oauth2授權介面,獲取到用戶的openid和Unionid,之後不需要再次詢問用戶。
使用靜默授權獲取Unionid需要注意,用戶必須在同一微信開放平台下,否則會存在Unionid不唯一的情況。在使用靜默授權時,需要告知授權用戶獲取Unionid的原因和用途,確保用戶信息安全。
五、Unionid被佔用是什麼意思
Unionid被佔用表示一個Unionid已經被另一個微信開放平台用戶綁定。開放平台會自動檢驗Unionid的唯一性,用戶試圖通過靜默授權方式綁定已有的Unionid時,會返回錯誤碼40003,提示「openid已綁定該UnionID」,此時需要開發者提示用戶更換其他微信號進行授權。
六、微信獲得Unionid
//使用code換取openid和access_token function getAccessToken($code){ $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=".APPID."&secret=".APPSECRET."&code=".$code."&grant_type=authorization_code"; $res = file_get_contents($url);//獲取openid $resArr = json_decode($res, true); return $resArr["openid"]; } //通過openid獲取用戶信息(包括Unionid) function getUserInfo($openid){ $accessToken = "accesstoken"; $url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=".$accessToken."&openid=".$openid."&lang=zh_CN"; $res = file_get_contents($url); $resArr = json_decode($res, true); return $resArr["unionid"]; }
七、Unionid和Openid區別
Unionid和Openid都是微信公眾平台提供的用戶標識符,用於唯一標識用戶。但是它們的作用範圍和使用方式有一定區別。
Openid主要用於單個公眾號或移動應用中,用於標識用戶在當前應用中的唯一性。而Unionid則是用於多個公眾號或移動應用之間,唯一標識一個用戶的標識符。
八、微信重置Unionid
微信提供了一種機制,可以讓用戶刪除微信公眾平台下所有去授權的信息,包括Unionid。當用戶需要在同一微信開放平台下重新綁定Unionid時,需要刪除之前的授權信息,並重新登錄獲取授權信息。
九、中智e家顯示Unionid
public function user_info(){ $openid = session('openid'); $unionid = session('unionid'); $nick_name = session('nickname'); $user_headimgurl = session('headimgurl'); if($openid && $unionid){ $uid = M('user')->where(['openid'=>$openid])->getField('id'); if($uid){ redirect(U('user/info')); }else{ $this->assign('openid', $openid); $this->assign('unionid', $unionid); $this->assign('nick_name', base64_decode($nick_name)); $this->assign('user_headimgurl', $user_headimgurl); $this->display(); } }else{ $code = I('code'); $user_control = new UserControl(); $baseinfo = $user_control->getWxAccessToken($code); session('openid', $baseinfo['openid']); session('unionid', $baseinfo['unionid']); session('nickname', $baseinfo['nickname']); session('headimgurl', $baseinfo['headimgurl']); redirect(U('user_info')); } }
原創文章,作者:TFQVG,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/331792.html