微信小程序开发相关api说明

178 阅读3分钟

小程序基础库

在开始之前,我们先来了解一个概念:微信小程序基础库。

微信小程序的​​基础库版本​​主要由​​微信客户端(微信APP)的版本​​决定。

前端获取基础库版本号:

const systemInfo = wx.getSystemInfoSync();
console.log("基础库版本号:", systemInfo.SDKVersion);

基础库对开发的影响:

  1. 基础库版本决定了小程序支持的API范围。
  2. 基础库版本决定了小程序支持的组件范围。

常用基础库处理方式:

  1. ​​设置最低基础库版本​​:在小程序管理后台(账号设置 - 基本设置 - 基础库最低版本设置)中配置。设置后,如果用户的基础库版本低于设置值,将无法正常打开小程序,并提示用户更新微信客户端
  2. ​​兼容性处理​​:在代码中判断基础库版本,对不同版本的API进行兼容性处理。

2025年9月17日微信官方更新的小程序基础库分布情况:

基础库版本安卓版本安卓用户占比iOS版本iOS用户占比总体占比
3.10.1-0.02%-0.04%0.03%
3.10.08.0.6283.76%8.0.6280.39%83.15%
3.9.38.0.615.77%8.0.614.61%5.28%
3.9.2-0.01%-0.01%0.02%
3.8.128.0.574.98%8.0.575.89%5.04%
3.8.10----0.11%
3.8.9----0.04%
3.8.6-0.05%--0.04%
3.7.128.0.551.60%8.0.551.99%1.65%
3.6.68.0.510.80%8.0.511.61%1.01%
3.5.88.0.500.41%8.0.501.22%0.62%
3.4.108.0.490.33%8.0.490.66%0.41%
3.3.58.0.450.46%8.0.450.83%0.59%
3.2.58.0.430.10%8.0.430.29%0.14%
3.2.4----0.01%
3.1.58.0.410.34%8.0.410.26%0.31%
3.0.28.0.400.08%8.0.400.10%0.08%
2.33.08.0.370.09%8.0.380.12%0.09%
2.32.38.0.350.04%8.0.360.10%0.06%
2.31.18.0.340.02%8.0.340.05%0.03%
2.30.48.0.320.07%8.0.320.12%0.08%
2.29.28.0.310.05%8.0.310.06%0.05%
2.28.18.0.300.03%8.0.300.03%0.03%
2.27.38.0.280.64%8.0.281.34%0.81%
2.26.28.0.270.02%8.0.270.02%0.02%
2.25.48.0.240.10%8.0.240.06%0.09%
2.24.78.0.230.07%8.0.220.03%0.06%
2.24.48.0.210.03%8.0.200.02%0.03%
2.23.48.0.190.03%8.0.180.03%0.03%
2.21.48.0.160.02%8.0.160.03%0.02%
2.20.38.0.140.01%8.0.140.03%0.01%
2.19.68.0.90.02%8.0.100.01%0.01%
2.19.28.0.70.01%8.0.8-0.01%
2.18.18.0.6-8.0.70.01%0.01%
2.16.18.0.10.01%8.0.2-0.01%

微信小程序获取快速验证手机号

基础库 >=【2.21.2】流程

  1. 客户去点击 open-type="getPhoneNumber" 的按钮,然后弹出授权弹窗。
  2. 用户同意授权之后,通过按钮绑定的事件,可以获取微信的回调信息。
  3. 回调中会有动态令牌code,前端获取到这个code之后,传给后端,后端调用微信后台提供的 phonenumber.getPhoneNumber 接口,消费code来换取用户手机号。每个code有效期为5分钟,且只能消费一次;
  4. 后端将获取到的手机号返回给前端。

注意:用户每点击一次 open-type="getPhoneNumber" 的按钮, 在回调success,获取到code之后,都会扣费0.03元。(每个小程序账号有1000额度,额度用完之后需要在小程序管理后台付费管理模块进行购买)。

基础库 <【2.21.2】流程

  1. 用户点击带有 open-type="getPhoneNumber"的按钮。
  2. 绑定 getphonenumber事件,获取 e.detail.encryptedData和 e.detail.iv。
  3. 前端调用 wx.login获取临时登录凭证 code,将 encryptedData、iv和 code发送到后端。
  4. 后端接收 encryptedData、iv和 code 使用 code调用微信的 auth.code2Session接口,换取 session_key和 openid。
  5. 使用 session_key、encryptedData和 iv通过 AES-128-CBC 算法解密,获取用户的手机号
  6. 将解密后的手机号返回给前端

微信小程序获取用户头像和昵称

微信公告原文:developers.weixin.qq.com/community/d…

调整重要信息概括:

  1. 2022 年 10 月 25 日 24 时后,小程序 wx.getUserProfile 和 wx.getUserInfo 接口将被收回。通过 wx.getUserProfile 或者wx.getUserInfo接口获取用户头像将统一返回默认灰色头像,昵称将统一返回 “微信用户”。
  2. 「头像昵称填写能力」支持获取用户头像昵称:如业务需获取用户头像昵称,可以使用「头像昵称填写能力」(基础库 2.21.2 版本开始支持,覆盖iOS与安卓微信 8.0.16 以上版本)

基于这个原文,如果小程序是新申请的,只支持「头像昵称填写能力」方式去获取用户头像和昵称。

头像图片地址的详细的获取流程

  1. 用户点击 open-type="chooseAvatar" 的按钮,弹出获取头像弹窗, 用户选择使用微信头像,或者是自己从相册中上传.
  2. 前端从按钮的bindchooseavatar事件回调中获取到头像信息的临时路径
  3. 注意:从基础库2.24.4版本起,若用户上传的图片未通过安全监测,不触发bindchooseavatar 事件
  4. 上传到服务器​​:使用 wx.uploadFile API 将图片上传到我们自己的后端服务器中,上传成功后返回图片的存储路径.
  5. 将存储路径保存到当前用户的信息中.

实践参考交互:

image-2.png