微信小程序
侧边栏壁纸
  • 累计撰写 36 篇文章
  • 累计收到 1 条评论

微信小程序

ASN__
2026-04-29 / 0 评论 / 11 阅读 / 正在检测是否收录...

以下整理了一份生产环境微信小程序必备 API 及对应数据库表设计,覆盖登录鉴权、版本更新、性能监控、错误处理、容灾等核心模块。前端 API 均指微信原生能力,后端 API 为开发者服务器需要实现的接口。


一、登录与用户身份

1.1 前端 API

API说明
wx.login()获取临时登录凭证 code,用于换取 openid
wx.checkSession()检查当前登录态是否过期
<button open-type="getPhoneNumber">获取用户手机号(需加密数据解密)
wx.getUserProfile()获取用户头像昵称(必须用户手动点击允许)

1.2 后端 API

方法路径说明
POST/api/user/login接收 code,调用微信 code2Session 换取 openid,生成自定义 token 返回
POST/api/user/update-profile接收加密的手机号/用户信息,解密后更新用户资料
GET/api/user/info通过 token 获取当前用户信息

1.3 数据库表

用户表 users

字段类型说明
idbigint(20)主键,自增
openidvarchar(64)微信 openid,唯一索引
unionidvarchar(64)微信 unionid(可选)
nicknamevarchar(64)用户昵称
avatar_urlvarchar(512)头像地址
phonevarchar(20)手机号(加密存储)
created_atdatetime创建时间
updated_atdatetime更新时间

登录凭证表 user_tokens

字段类型说明
idbigint(20)主键,自增
user_idbigint(20)关联 users.id
tokenvarchar(256)jwt token
platformtinyint(2)登录平台(微信小程序=1)
expire_atdatetime过期时间
created_atdatetime创建时间
可选用 JWT 无状态方案,无需存储 token,但生产环境建议保留该表以支持强制下线、多设备管理。

二、版本更新管理

2.1 前端 API

API说明
wx.getUpdateManager()管理小程序版本更新,提示用户重启

2.2 后端 API(可选)

方法路径说明
GET/api/config/version返回最低要求版本号,前端可在启动时检查,若当前版本过低可引导升级或限制使用

2.3 数据库表

应用版本表 app_versions

字段类型说明
idint(11)主键,自增
versionvarchar(20)版本号,如 "3.2.1"
min_versionvarchar(20)最低兼容版本
update_descvarchar(512)更新描述
force_updatetinyint(1)是否强制更新 1=是 0=否
platformvarchar(20)平台,如 "weapp"
created_atdatetime创建时间
即使有小程序自带的更新机制,此表仍可用于 首次冷启动时的版本拦截后端对低版本用户做接口限制

三、网络状态监听

3.1 前端 API(纯客户端,无后端接口)

API说明
wx.onNetworkStatusChange()监听网络切换(Wi-Fi / 4G / 无网络),触发界面提示或重连
wx.onAppHide()应用切到后台,可手动关闭连接
wx.onAppShow()应用切回前台,可重新校验登录态
无需对应数据库表,但前端需在封装请求时根据网络状态做自动重试。

四、性能监控与错误上报

4.1 前端 API

API说明
wx.getPerformance()获取性能对象
wx.reportPerformance(id, cost)上报自定义性能指标(id 需先在后台配置)
wx.onError()监听脚本错误
wx.onUnhandledRejection()监听未处理的 Promise 拒绝
wx.onPageNotFound()页面不存在监听
wx.onLazyLoadError()异步组件加载失败监听

4.2 后端 API

方法路径说明
POST/api/log/error接收客户端 JS 异常、网络请求错误等
POST/api/log/performance接收页面加载耗时、接口耗时等性能数据

4.3 数据库表

错误日志表 error_logs

字段类型说明
idbigint(20)主键,自增
user_idbigint(20)关联用户(可空)
pagevarchar(256)错误发生的页面路径
error_typevarchar(64)错误类型(JS错误、接口错误、资源错误)
messagetext错误消息
stacktext错误堆栈
device_infojson设备信息(型号、系统、微信版本等)
app_versionvarchar(20)小程序版本号
occur_atdatetime发生时间
created_atdatetime上报时间

性能日志表 performance_logs

字段类型说明
idbigint(20)主键,自增
user_idbigint(20)关联用户(可空)
pagevarchar(256)页面路径
metricvarchar(64)指标名(如 page_load_time)
valueint(11)耗时(毫秒)
extrajson扩展信息(网络类型等)
app_versionvarchar(20)版本号
created_atdatetime上报时间
这两个表是生产环境问题排查的基础,必须建好并定期归档。

五、通用配置与容灾

5.1 后端 API

方法路径说明
GET/api/config/all拉取客户端需要的全局配置(如客服电话、公告、功能开关)

5.2 数据库表

配置表 configs

字段类型说明
idint(11)主键,自增
keyvarchar(64)配置键,唯一
valuetext配置值(支持 JSON)
descriptionvarchar(256)描述
updated_atdatetime更新时间

典型配置项:

  • maintenance_mode:是否开启维护模式
  • force_update_version:强制更新最低版本
  • contact_phone:客服电话
  • home_banner:首页轮播图数据

六、数据安全补充

6.1 前端策略

  • 所有网络请求必须使用 https / wss
  • 敏感数据存储时使用 wx.setStorageSync 配合加密(或使用 wx.setStorage 的安全标记 encrypted

6.2 后端策略

  • appsecret 严禁出现在前端代码,只能在服务端调用微信接口
  • 生成的 session_key 只能保存在服务端,不可返回给前端
  • 所有接口做好参数校验和限流

6.3 对应数据库表(可选)

密钥管理表 app_secrets(服务端内部)

字段类型说明
idint(11)主键
app_idvarchar(32)小程序 appid
secretvarchar(128)appsecret(加密存储)
token_expireint(11)自定义登录态有效时间(秒)
created_atdatetime创建时间

七、完整 API 清单总结

优先级模块前端 API后端 API数据库表
🔴 最高登录鉴权wx.login wx.checkSession getPhoneNumber/api/user/login /api/user/infousers user_tokens
🔴 最高错误监控wx.onError onUnhandledRejection /onPageNotFound/api/log/errorerror_logs
🟡 高版本更新wx.getUpdateManager/api/config/versionapp_versions
🟡 高性能上报wx.reportPerformance getPerformance/api/log/performanceperformance_logs
🟡 高网络监听onNetworkStatusChange onAppHide/Show
🟢 中全局配置/api/config/allconfigs
🟢 中数据安全app_secrets

以上内容足以支撑一个小程序的生产环境稳定运行。建议在 app.js 启动时统一完成如下初始化工作:

  1. 拉取全局配置 + 版本检查
  2. 校验登录态(有则续期,无则重新登录)
  3. 注册全局错误监听
  4. 注册网络变化监听
  5. 启动更新管理器

这样可确保小程序从启动到使用的全链路具备高可用性。

0

评论

博主关闭了所有页面的评论