前提:調用手機號權限以前,要先調用wx.login接口javascript
在回調中調用 wx.login 登陸,可能會刷新登陸態。此時服務器使用 code 換取的 sessionKey 不是加密時使用的 sessionKey,致使解密失敗。建議開發者提早進行 login
;或者在回調中先使用 checkSession
進行登陸態檢查,避免 login
刷新登陸態html
一、代碼示例(親測)java
<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"></button>
Page({ getPhoneNumber (e) { console.log(e.detail.errMsg) console.log(e.detail.iv) console.log(e.detail.encryptedData) } })
測試的過程當中,開始先是用的本身我的的一個appid,在開發者工具測試,提示該appid沒有權限,以下圖小程序
在真機測試,沒有彈框,控制檯報錯 : getPhoneNumber:fail data no reponse,如圖:api
緣由:目前該接口針對非我的開發者,且完成了認證的小程序開放(不包含海外主體)。需謹慎使用,若用戶舉報較多或被髮如今沒必要要場景下使用,微信有權永久回收該小程序的該接口權限。服務器
本身的小程序沒有認證吧,可是以後用的,公司的一個項目測試,仍是這樣,用的另外一個項目測試好好的,,猜想應該是那個項目的appid不對吧。微信
2.結果,如圖:session
點擊拒絕以後,獲取到的信息:app
點擊贊成,獲取到的信息:工具
贊成以後獲取到信息以後,要請求後臺一個解密的接口,獲取到真正的手機號