欧美日韩中文一区二区,亚洲天堂av在线,亚洲最大成人免费视频,欧美最新精品

微信小程序獲取手機號授權怎么實現

微信小程序獲取手機號授權是常用的小程序開放能力之一,對小程序制作開發人員來說怎么實現該功能呢?

要想獲取微信用戶綁定的手機號,需要先調用wx.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>

JS內getPhoneNumbe組件函數(該事件中最重要的就是在wx.login登錄后發起接口請求),這里需要配置參數來給接口:

這些是必不可少的參數,這些齊備才能算一個合法的請求。

appid: “你的小程序APPID”,
secret: “你的小程序appsecret”,
code: res.code,
encryptedData: telObj,
iv: ivObj

//通過綁定手機號登錄
  getPhoneNumber: function (e) {
var ivObj = e.detail.iv
var telObj = e.detail.encryptedData
var codeObj = “”;
var that = this;
//——執行Login———
wx.login({
success: res => {
console.log(‘code轉換’, res.code);

      //用code傳給服務器調換session_key
wx.request({
url: ‘https://你的接口文件路徑’, //接口地址
data: {
appid: “你的小程序APPID”,
secret: “你的小程序appsecret”,
code: res.code,
encryptedData: telObj,
iv: ivObj
},
success: function (res) {
phoneObj = res.data.phoneNumber;
console.log(“手機號=”, phoneObj)
wx.setStorage({ //存儲數據并準備發送給下一頁使用
key: “phoneObj”,
data: res.data.phoneNumber,
})
}
})

//—————–是否授權,授權通過進入主頁面,授權拒絕則停留在登陸界面
if (e.detail.errMsg == ‘getPhoneNumber:user deny’) { //用戶點擊拒絕
wx.navigateTo({
url: ‘../index/index’,
})
} else { //允許授權執行跳轉
wx.navigateTo({
url: ‘../test/test’,
})
}
}
});
},

得到的最終效果展示:

微信小程序獲取手機號授權怎么實現

以上就是微信小程序獲取手機號授權怎么實現的具體步驟,具體參考官方文檔:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html


聲明:本站部分文章來源于互聯網,如有侵犯作者著作權,請及時與我們聯系。

木魚小鋪小程序

為您推薦

主站蜘蛛池模板: 武平县| 大足县| 鹰潭市| 琼海市| 广水市| 玉门市| 内丘县| 织金县| 资源县| 濮阳县| 金山区| 平阳县| 米易县| 上犹县| 兴海县| 巴中市| 沾化县| 喀喇| 昌吉市| 铁岭县| 昭觉县| 绩溪县| 望谟县| 红原县| 房产| 鹰潭市| 金溪县| 上栗县| 大关县| 琼结县| 班戈县| 屏山县| 囊谦县| 弥勒县| 海南省| 安庆市| 安义县| 浦东新区| 江城| 陇南市| 莲花县|