欧美日韩中文一区二区,亚洲天堂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


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

木魚小鋪小程序

為您推薦

主站蜘蛛池模板: 色达县| 原平市| 喀喇沁旗| 阳城县| 曲阜市| 台南市| 海原县| 黄陵县| 若尔盖县| 西吉县| 湘潭县| 罗定市| 凤台县| 洱源县| 溆浦县| 武安市| 田林县| 苗栗县| 绥棱县| 花垣县| 香港 | 温州市| 鲁山县| 卢湾区| 北海市| 耿马| 黑河市| 四会市| 惠水县| 平利县| 张家口市| 将乐县| 郓城县| 湖南省| 乐安县| 浦江县| 镇雄县| 奉新县| 民和| 大名县| 新田县|