小程序进阶-获取用户手机号和基本信息

本文介绍如何在微信小程序中获取用户的手机号。需先调用wx.login接口,再通过button组件触发获取手机号的过程。开发者需在服务端解密获取的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

  • 目前该接口针对非个人开发者,且完成了认证的小程序开放(不包含海外主体)。
  • 获取微信用户绑定的手机号,需先调用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 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值