为提升小程序使用体验,帮助用户更便捷地获取服务,小程序开放手机号快速填写组件,非个人开发者的小程序完成认证后即可使用。
- 在新用户注册、联系方式登记等必要场景下,开发者均可在页面上部署手机号快速填写组件
- 用户点击组件,完成弹窗授权后,即可直接将微信绑定的手机号填入,绝大部分情况下无需再进行短信验证码校验
- 若用户不愿提供微信绑定的手机号,开发者需提供手动输入手机号功能
getPhoneNumber(OBJECT)
说明
获取微信用户绑定的手机号,需先调用login接口。
因为需要用户主动触发才能发起获取手机号接口,所以该功能不由 API来调用,需用 组件的点击来触发。
注意:
目前该接口针对非个人开发者,且完成了认证的小程序开放。
需谨慎使用,若用户举报较多或被发现在不必要场景下使用,微信有权永久回收该小程序的该接口权限。
使用方法
需要将组件open-type的值设置为getPhoneNumber,当 用户点击并同意之后,可以通过bindgetphonenumber事件回调获取到微信服务器返回的加密数据,然后在第三方服务端结合session_key以及app_id进行解密获取手机号
示例:
index.wxml
<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">点击</button>
index.js
Page({
getPhoneNumber(e){
console.log(e.detail.errMsg);
console.log(e.detail.iv);
console.log(e.detail.encyptedData);
// 返回参数说明:
// encyptedData : 包括敏感数据在内的完整用户信息的加密数据
// iv : 加密算法的初始向量
},
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})
encryptedData 解密后为以下 json 结构,详见加密数据解密算法
备注:解密方法跟登录解密用户信息的方法一样!
{
"phoneNumber": "13580006666",
"purePhoneNumber": "13580006666",
"countryCode": "86",
"watermark":
{
"appid":"APPID",
"timestamp":TIMESTAMP
}
}
phoneNumber : 用户绑定的手机号(国外手机号会有区号)
purePhoneNumber : 没有区号的手机号
countryCode : 区号