做小程序开发的应该都知道,从 2021 年开始微信对用户信息接口的调整让不少人踩了不少坑。老代码照搬过来要么弹窗不触发、要么拿到的信息是加密的,最头疼的是提交审核时被打回。我结合最新的实践,把完整流程梳理了一遍,直接上干货。一、先搞清楚现在能用哪些方式微信砍掉了一堆旧接口,目前合规有效的方案就三类,用错了审核必挂:方案是否需要授权能拿到什么适用场景wx.getUserProfile需要,每次点击都弹窗头像、昵称、性别、地区等公开信息会员注册、个人中心展示open-data标签不需要只能展示,无法通过 JS 获取内容顶部导航头像等纯展示场景wx.login+ 后端不需要openID、unionID(需后端换取)用户身份识别、登录态维持注意:open-data标签在部分小程序中功能可能受限,建议重要业务优先用wx.getUserProfile。废弃的坑:wx.getUserInfo:2021 年 4 月后的版本不再弹出授权窗口,拿到的数据是匿名的button.open-type="getUserInfo":已无法配合 wx.getSetting 正常判断授权状态scope.userInfo:调用 wx.getUserProfile 后,wx.getSetting 返回的 scope.userInfo 永远为 true,不能作为授权判断依据二、主流方案:wx.getUserProfile 完整流程前置条件小程序后台完成实名认证和类目审核(不需要额外申请权限)基础库版本建议设为 2.10.4 及以上(官方接口最低要求)desc 参数必填,要写清楚用途,不然后台审核会卡住页面结构(WXML)!-- pages/home/home.wxml --