微信小程序getPhoneNumber快速獲取用戶手機號組件

小程序中有很多地方都會用到註冊用戶信息的地方,用戶需要填寫手機號等,

      有了這個組件可以快速獲取微信綁定手機號碼,無須用戶填寫。


1.getPhoneNumber這個組件通過button來實現(別的標籤無效)。將button中的open-type=“getPhoneNumber”,並且綁定bindgetphonenumber事件獲取回調。

  1. <span style="font-size:14px;"><button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"></button></span>  

2.在使用這個組件之前必須先調用login接口,如果沒有調用login點擊button時會提示先調用login。

  1. App({  
  2.     onLaunch: function () {  
  3.         wx.login({  
  4.             success: function (res) {  
  5.                 if (res.code) {  
  6.                     //發起網絡請求  
  7.                     console.log(res.code)  
  8.                 } else {  
  9.                     console.log('獲取用戶登錄態失敗!' + res.errMsg)  
  10.                 }  
  11.             }  
  12.         });  
  13.     }  
  14. })  


3.通過bindgetphonenumber綁定的事件來獲取回調。回調的參數有三個,

errMsg:用戶點擊取消或授權的信息回調。

iv:加密算法的初始向量(如果用戶沒有同意授權則爲undefined)。

encryptedData: 用戶信息的加密數據(如果用戶沒有同意授權同樣返回undefined)


  1. getPhoneNumber: function(e) {   
  2.     console.log(e.detail.errMsg)   
  3.     console.log(e.detail.iv)   
  4.     console.log(e.detail.encryptedData)   
  5.     if (e.detail.errMsg == 'getPhoneNumber:fail user deny'){  
  6.       wx.showModal({  
  7.           title: '提示',  
  8.           showCancel: false,  
  9.           content: '未授權',  
  10.           success: function (res) { }  
  11.       })  
  12.     } else {  
  13.       wx.showModal({  
  14.           title: '提示',  
  15.           showCancel: false,  
  16.           content: '同意授權',  
  17.           success: function (res) { }  
  18.       })  
  19.     }  
  20.   }  
4.最後我們需要根據自己的業務邏輯來進行處理,如果用戶不同意授權的話可能我們會有一個讓他手動輸入的界面,如果不是強制獲取手機號的話可以直接跳轉頁面進行下一步。(用戶不同意授權errMsg返回‘getPhoneNumber:fail user deny’)

5.用戶同意授權,我們可以根據login時獲取到的code來通過後臺以及微信處理拿到session_key,最後通過app_id,session_key,iv,encryptedData(用戶同意授權errMsg返回‘getPhoneNumber:ok’)

6.解密的方法可以去微信官方開發文檔查看,有很詳細說明。
加密數據解密算法(官方文檔)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章