|
基于微信生態(tài)的產(chǎn)品,微信登陸、模版消息、微信支付、微信分享已經(jīng)成為標(biāo)準(zhǔn)配置,可以依賴微信強大的用戶基礎(chǔ)和龐大的社交網(wǎng)絡(luò)來實現(xiàn)業(yè)務(wù)目標(biāo)。 使用微信登錄就是為了獲取openid和用戶的基本信息如昵稱、頭像、性別、所在城市這些內(nèi)容。如果為了保持多個產(chǎn)品線的用戶統(tǒng)一的話,還需要unionid這個大神器,前提是把APP、小程序、公眾號、網(wǎng)站這些內(nèi)容綁定到微信開放平臺,訪問 open.weixin.qq.com。否則是獲取不到unionid。
獲取openid有兩種方式
2、調(diào)用wx.request() 根據(jù)code、appid、secret這三個參數(shù)獲取openid,建議appid、secret在后臺設(shè)置,不要網(wǎng)絡(luò)上傳輸,通過wx.request()只要把code傳后臺即可 方式二 1、調(diào)用wx.getUserInfo() 獲取encryptedData(加密數(shù)據(jù)),iv(加密算法的初始向量)
2、把返回的數(shù)據(jù)iv、encryptedData進行解密獲取openid,這種方式在能獲取openid的同時,也能獲取到unionid,獲取到的數(shù)據(jù)如下所示
微信官方提供了AES解密的demo有PHP、C++、Node、Python,有一期會專門講,悟空來全棧營小程序組提供了一個JAVA版本,在獲取微信轉(zhuǎn)發(fā)群ID的時候也要用到。 注:wx.getUserInfo()默認(rèn)是獲取不到iv和encryptedData的,需要請求的參數(shù)中設(shè)置withCredentials為true |