您好,登錄后才能下訂單哦!
本篇內容介紹了“怎么用微信小程序getPhoneNumber快速獲取用戶手機號組件”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
獲取微信用戶綁定的手機號,需先調用login接口。
因為需要用戶主動觸發才能發起獲取手機號接口,所以該功能不由 API 來調用,需用 <button>
組件的點擊來觸發。
注意:目前該接口針對非個人開發者,且完成了認證的小程序開放。需謹慎使用,若用戶舉報較多或被發現在不必要場景下使用,微信有權永久回收該小程序的該接口權限。
需要將 <button>
組件 open-type
的值設置為 getPhoneNumber
,當用戶點擊并同意之后,可以通過 bindgetphonenumber
事件回調獲取到微信服務器返回的加密數據, 然后在第三方服務端結合 session_key
以及 app_id
進行解密獲取手機號。
在回調中調用 wx.login
登錄,可能會刷新登錄態。此時服務器使用 code 換取的 sessionKey 不是加密時使用的 sessionKey,導致解密失敗。建議開發者提前進行 login
;或者在回調中先使用 checkSession
進行登錄態檢查,避免 login
刷新登錄態。
<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"> </button>
Page({ getPhoneNumber: function(e) { console.log(e.detail.errMsg) console.log(e.detail.iv) console.log(e.detail.encryptedData) } })
參數 | 類型 | 說明 |
---|---|---|
encryptedData | String | 包括敏感數據在內的完整用戶信息的加密數據,詳細見加密數據解密算法 |
iv | String | 加密算法的初始向量,詳細見加密數據解密算法 |
encryptedData 解密后為以下 json 結構,詳見加密數據解密算法
{"phoneNumber": "13580006666", "purePhoneNumber": "13580006666", "countryCode": "86","watermark": {"appid":"APPID","timestamp":TIMESTAMP } }
參數 | 類型 | 說明 |
---|---|---|
phoneNumber | String | 用戶綁定的手機號(國外手機號會有區號) |
purePhoneNumber | String | 沒有區號的手機號 |
countryCode | String | 區號 |
“怎么用微信小程序getPhoneNumber快速獲取用戶手機號組件”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。