1. 程式人生 > >微信小程式獲取微信使用者繫結的手機號

微信小程式獲取微信使用者繫結的手機號

獲取微信使用者繫結的手機號

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

<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"></button>


2.在使用這個元件之前必須先呼叫login介面,如果沒有呼叫login點選button時會提示先呼叫login。

注意:目前該介面針對非個人開發者,且完成了認證的小程式開放(不包含海外主體)。需謹慎使用,若使用者舉報較多或被發現在不必要場景下使用,微信有權永久回收該小程式的該介面許可權。

App({

onLaunch: function () {

wx.login({

success: function (res) {

if (res.code) {

//發起網路請求

console.log(res.code)

} else {

console.log('獲取使用者登入態失敗!' + res.errMsg)

}

}

});

}

})

3.通過bindgetphonenumber繫結的事件來獲取回撥。回撥的引數有三個,

errMsg:使用者點選取消或授權的資訊回撥。

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

encryptedData: 使用者資訊的加密資料(如果使用者沒有同意授權同樣返回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: '未授權',

success: function (res) { }

})

} else {

wx.showModal({

title: '提示',

showCancel: false,

content: '同意授權',

success: function (res) { }

})

}

}

4.最後我們需要根據自己的業務邏輯來進行處理,如果使用者不同意授權的話可能我們會有一個讓他手動輸入的介面,如果不是強制獲取手機號的話可以直接跳轉頁面進行下一步。(使用者不同意授權errMsg返回‘getPhoneNumber:fail user deny’)

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

Page({ 
    getPhoneNumber: function(e) { 
		console.log(e.detail.errMsg) 
		console.log(e.detail.iv) 
		console.log(e.detail.encryptedData) 
	} 
}) 

6.解密的方法可以去微信官方開發文件檢視,有很詳細說明。