简介
- 目前该接口针对非个人开发者,且完成了认证的小程序开放(不包含海外主体)。
- 获取微信用户绑定的手机号,需先调用wx.login接口。因为需要用户主动触发才能发起获取手机号接口,所以该功能不由 API 来调用,需用 button 组件的点击来触发。
- 需要将 button 组件 open-type 的值设置为 getPhoneNumber,当用户点击并同意之后,可以通过 bindgetphonenumber 事件回调获取到微信服务器返回的加密数据, 然后在第三方服务端结合 session_key 以及 app_id 进行解密获取手机号。
- 在回调中调用 wx.login 登录,可能会刷新登录态。此时服务器使用 code 换取的 sessionKey 不是加密时使用的 sessionKey,导致解密失败。建议开发者提前进行 login;或者在回调中先使用 checkSession 进行登录态检查,避免 login 刷新登录态。
- 小程序通过设置button组件open-type属性为"getUserInfo"调起授权。
- 小程序使用wx.getUserInfo(Object object),在用户授权后获取用户基本信息。
获取手机号流程
(1)提供button按钮进行授权操作,设置open-type属性为getPhoneNumber,设置bindgetPhoneNumber绑定事件。
<button type='primary' open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">授权登录</button>
(2)编写授权绑定事件函数,先调用wx.login登录,然后调用第三方服务接口获取解析后的手机号。
//获取应用实例
const app = getApp()
Page({
data: {
},
//通过绑定手机号登录
getPhoneNumber: function (e) {
var ivObj = e.detail.iv //加密算法的初始向量
var telObj = e.detail.encryptedData //包括敏感数据在内的完整用户信息的加密数据
var codeObj = "";
var that = this;
//执行Login
wx.login({
success: res