前言
微信小程序獲取手機號碼,從官方文檔到其他博主的文檔 零零散散的 (我就是這樣看過來 沒有一篇滿意的 也許是我搜索姿勢不對) 依舊是前人栽樹 後人乘涼 系列。保證看完 就可以實現獲取手機號碼功能
1.認證(有資格)
獲取手機號碼接口權限,只對認證的小程序開發(非個人)
2.身份牌
需要第三方服務端(你們的後端童鞋)的友情支持
- 前端同學的工作
// 登錄 一定要在現在app.js 登陸(後面解密需要用到)
wx.login({
success: res => {
// 發送 res.code 到後臺換取 openId, sessionKey, unionId
this.globalData.code = res.code
http.authCode2Session({ // 調用接口,傳入參數 這個接口就是自家後臺給你提供的 post請求
data: {
jsCode: res.code,
grantType: 'getPhoneNumber',
},
success: res => {
this.globalData.openid = res.openid // 存入 globalData
},
fail: err => {
console.log(err)
}
})
}
})
- 後端工作 (我不是後端 沒有這個代碼 但是根據小程序文檔來做是可以的)
入口
拿到了openid sessionkey 之後,然後再寫一個入口 button
<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"></button>
回調
在頁面寫函數getPhoneNumber()
Page({
getPhoneNumber (e) {
console.log(e.detail.errMsg)
console.log(e.detail.iv)
console.log(e.detail.encryptedData)
}
})
真機調試
開發工具是不可以的,真機調試 拿自己的手機調試一下
就是這樣子的
解密
前端拿到的數據是加密的。只好後端做一個保存接口 傳給後端,後端再去解密 才能真的拿到用戶的手機號碼
解密後的數據是這樣子的
Fannie總結
應該是寫的明明白白 清清楚楚了 如果你還不明白 就是我的鍋 沒有寫清楚 那就來問我吧