小程序中有很多地方都會(huì)用到注冊(cè)用戶(hù)信息的地方,用戶(hù)需要填寫(xiě)手機(jī)號(hào)等,有了這個(gè)組件可以快速獲取微信綁定手機(jī)號(hào)碼,無(wú)須用戶(hù)填寫(xiě)。1.getPhoneNumber這個(gè)組件通過(guò)button來(lái)實(shí)現(xiàn)(別的標(biāo)簽無(wú)效)。將button中的open-t ...
小程序中有很多地方都會(huì)用到注冊(cè)用戶(hù)信息的地方,用戶(hù)需要填寫(xiě)手機(jī)號(hào)等,有了這個(gè)組件可以快速獲取微信綁定手機(jī)號(hào)碼,無(wú)須用戶(hù)填寫(xiě)。
1.getPhoneNumber這個(gè)組件通過(guò)button來(lái)實(shí)現(xiàn)(別的標(biāo)簽無(wú)效)。將button中的open-type=“getPhoneNumber”,并且綁定bindgetphonenumber事件獲取回調(diào)。
style="font-size:14px;">2.在使用這個(gè)組件之前必須先調(diào)用login接口,如果沒(méi)有調(diào)用login點(diǎn)擊button時(shí)會(huì)提示先調(diào)用login。
App({ onLaunch: function () { wx.login({ success: function (res) { if (res.code) { //發(fā)起網(wǎng)絡(luò)請(qǐng)求 console.log(res.code) } else { console.log('獲取用戶(hù)登錄態(tài)失敗!' + res.errMsg) } } }); } }) 3.通過(guò)bindgetphonenumber綁定的事件來(lái)獲取回調(diào)。回調(diào)的參數(shù)有三個(gè), errMsg:用戶(hù)點(diǎn)擊取消或授權(quán)的信息回調(diào)。 iv:加密算法的初始向量(如果用戶(hù)沒(méi)有同意授權(quán)則為undefined)。 encryptedData: 用戶(hù)信息的加密數(shù)據(jù)(如果用戶(hù)沒(méi)有同意授權(quán)同樣返回undefined)

getPhoneNumber: function(e) { console.log(e.detail.errMsg) console.log(e.detail.iv) console.log(e.detail.encryptedData) if (e.detail.errMsg == 'getPhoneNumber:fail user deny'){ wx.showModal({ title: '提示', showCancel: false, content: '未授權(quán)', success: function (res) { } }) } else { wx.showModal({ title: '提示', showCancel: false, content: '同意授權(quán)', success: function (res) { } }) } } 4.最后我們需要根據(jù)自己的業(yè)務(wù)邏輯來(lái)進(jìn)行處理,如果用戶(hù)不同意授權(quán)的話(huà)可能我們會(huì)有一個(gè)讓他手動(dòng)輸入的界面,如果不是強(qiáng)制獲取手機(jī)號(hào)的話(huà)可以直接跳轉(zhuǎn)頁(yè)面進(jìn)行下一步。(用戶(hù)不同意授權(quán)errMsg返回‘getPhoneNumber:fail user deny’) 5.用戶(hù)同意授權(quán),我們可以根據(jù)login時(shí)獲取到的code來(lái)通過(guò)后臺(tái)以及微信處理拿到session_key,最后通過(guò)app_id,session_key,iv,encryptedData(用戶(hù)同意授權(quán)errMsg返回‘getPhoneNumber:ok’) 6.解密的方法可以去微信官方開(kāi)發(fā)文檔查看,有很詳細(xì)說(shuō)明。