小店会员管理微信小程序系统视频教程(适合理发店,宠物店等各种小店),使用 云函数 + 云数据库,商业级项目实战,Cursor + Calude AI编程 2小时轻松搞定
大家好,我是小锋老师,最近更新《2027版 小店会员管理微信小程序系统视频教程(适合理发店,宠物店等各种小店),使用 云函数 + 云数据库,商业级项目实战,Cursor + Calude AI编程 2小时轻松搞定》专辑,感谢大家支持。
本课程主要结合AI编程 Cursor 实现一个开源商业项目是-小店会员管理微信小程序系统,使用微信云函数和云数据库。讲解内容包括需求分析,架构和设计,利用Cursor AI编程实现Plan沟通项目方案,Agent生成项目,Agent修复bug和完善功能。
视频教程+课件+源码打包下载 :
链接:https://pan.baidu.com/s/1Oo7dtFf_Zt7hJyl6aYX6TA?pwd=1234
提取码:1234
小店会员管理微信小程序系统视频教程(适合理发店,宠物店等各种小店),使用 云函数 + 云数据库,商业级项目实战,Cursor + Calude AI编程 2小时轻松搞定
项目演示以及需求分析
小店会员微信小程序开发需求
一、技术栈
微信小程序云开发(纯云函数 + 云数据库)
二、用户角色
VIP 会员:普通用户
管理员:通过数据库配置的多个管理员(老板、店长等),支持多 openid
三、TabBar 页面结构
1. “关于我们”页面
门店轮播图(管理员后台可动态编辑)
会员余额显示
充值按钮 → 跳转至新页面,展示:
老板微信二维码
联系电话
导航地图(地址由管理员配置)
店铺介绍区域(支持富文本,管理员可动态编辑业务介绍、价格等)
2. “消费记录”页面
展示当前会员的消费记录(项目、金额、时间)
3. “个人中心”页面
显示/编辑:姓名(可编辑)
绑定手机号(首次登录强制授权,绑定后不可编辑)
显示余额
会员编号:仅在首次充值后显示(未充值隐藏)
四、管理员功能(仅在管理员用户 TabBar 显示“系统管理”)
系统管理页面包含以下模块:
店铺管理
上传门店轮播图(多张)
设置导航地址(经纬度/位置)
上传老板微信二维码
编辑联系电话
编辑店铺介绍内容
会员管理
按会员编号/手机号查询
按时间筛选
会员充值(输入会员编号 → 增加余额)
会员扣费(输入会员编号 → 扣除余额,生成消费记录)
消费项目管理
增删常用消费项目(如“洗剪吹”、“烫发”)
增删常用价格模板(如 30 元、100 元)
扣费时可选择预设项目或手动输入项目名称和金额
消费记录查看
查看所有会员的消费记录(管理员视角)
五、核心业务规则
首次进入:必须授权手机号并绑定 openid,否则无法使用任何功能。
会员编号:4 位数字(0001~9999),仅首次充值时自动生成,全局唯一,不重复。
充值/扣费:统一通过会员编号操作,管理员输入编号即可定位会员。
消费记录格式:
年月日时分 - 消费项目 - 消费金额
六、安全与防护(云函数层面)
权限校验
所有云函数入口必须使用
cloud.getWXContext().OPENID获取 openid,并校验该用户是否有权执行操作。普通用户只能操作自己的数据(除管理员外)。
管理员操作需验证 openid 是否在管理员列表中。
防刷限制
每个微信用户每月最多调用 500 次云函数。
每个管理员用户每月最多调用 20 万次云函数。
使用云数据库记录调用次数(字段:openid、手机号、时间戳),按月统计。
若 24 小时内总调用量超过 1 万次,在管理员端顶部显示红色警报横幅(不自动消失,需管理员手动关闭)。
日志记录
管理员操作日志表:openid、手机号、操作时间(精确到秒)、操作详情(例如“为会员 0001 充值 100 元”)。
会员操作日志表:openid、手机号、操作时间、操作详情(例如“登录”)。
七、开发要求
所有云函数调用前必须校验 openid。
管理员操作需记录详细日志。
前端需遵循微信小程序设计规范,保证用户体验。
底部开源信息须保留,但可设计为小字号或折叠,不影响主界面。
注册微信小程序以及新建微信小程序项目
注册微信小程序
要开发微信小程序项目,首先是必须注册一个微信小程序:https://mp.weixin.qq.com/cgi-bin/wx
注册好后,登录微信小程序,在开发与服务 - > 开发管理 - > 开发设置 里可以找到AppID(小程序ID)和AppSecret(小程序秘钥),我们开发小程序项目需要用到这个两个参数。小程序秘钥可以点击右侧“生成”链接,生成下,切记一定不能泄露出去。
新建微信小程序项目
打开微信开发者工具,点新建项目,选择项目目录,输入项目名称,后端服务选微信云开发,然后点“创建”按钮。
这样的话,我们就把小程序项目新建完了。
利用Cursor AI编程 Plan沟通项目方案
小店会员微信小程序开发需求
一、技术栈
微信小程序云开发(纯云函数 + 云数据库)
二、用户角色
VIP 会员:普通用户
管理员:通过数据库配置的多个管理员(老板、店长等),支持多 openid
三、TabBar 页面结构
1. “关于我们”页面
门店轮播图(管理员后台可动态编辑)
会员余额显示
充值按钮 → 跳转至新页面,展示:
老板微信二维码
联系电话
导航地图(地址由管理员配置)
店铺介绍区域(支持富文本,管理员可动态编辑业务介绍、价格等)
2. “消费记录”页面
展示当前会员的消费记录(项目、金额、时间)
3. “个人中心”页面
显示/编辑:姓名(可编辑)
绑定手机号(首次登录强制授权,绑定后不可编辑)
显示余额
会员编号:仅在首次充值后显示(未充值隐藏)
四、管理员功能(仅在管理员用户 TabBar 显示“系统管理”)
系统管理页面包含以下模块:
店铺管理
上传门店轮播图(多张)
设置导航地址(经纬度/位置)
上传老板微信二维码
编辑联系电话
编辑店铺介绍内容
会员管理
按会员编号/手机号查询
按时间筛选
会员充值(输入会员编号 → 增加余额)
会员扣费(输入会员编号 → 扣除余额,生成消费记录)
消费项目管理
增删常用消费项目(如“洗剪吹”、“烫发”)
增删常用价格模板(如 30 元、100 元)
扣费时可选择预设项目或手动输入项目名称和金额
消费记录查看
查看所有会员的消费记录(管理员视角)
五、核心业务规则
首次进入:必须授权手机号并绑定 openid,否则无法使用任何功能。
会员编号:4 位数字(0001~9999),仅首次充值时自动生成,全局唯一,不重复。
充值/扣费:统一通过会员编号操作,管理员输入编号即可定位会员。
消费记录格式:
年月日时分 - 消费项目 - 消费金额
六、安全与防护(云函数层面)
权限校验
所有云函数入口必须使用
cloud.getWXContext().OPENID获取 openid,并校验该用户是否有权执行操作。普通用户只能操作自己的数据(除管理员外)。
管理员操作需验证 openid 是否在管理员列表中。
防刷限制
每个微信用户每月最多调用 500 次云函数。
每个管理员用户每月最多调用 20 万次云函数。
使用云数据库记录调用次数(字段:openid、手机号、时间戳),按月统计。
若 24 小时内总调用量超过 1 万次,在管理员端顶部显示红色警报横幅(不自动消失,需管理员手动关闭)。
日志记录
管理员操作日志表:openid、手机号、操作时间(精确到秒)、操作详情(例如“为会员 0001 充值 100 元”)。
会员操作日志表:openid、手机号、操作时间、操作详情(例如“登录”)。
七、开发要求
所有云函数调用前必须校验 openid。
管理员操作需记录详细日志。
前端需遵循微信小程序设计规范,保证用户体验。
底部开源信息须保留,但可设计为小字号或折叠,不影响主界面。
首先打开cursor ,导入项目。
然后把需求贴到对话框里,模型选Opus4.6,模式选Plan。然后点提交。
大概几分钟后,Opus4.6大模型就给出你设计方案:
如果你有哪里不满意的话,可以继续 Plan沟通,知道方案你满意为止。
录制过程有个小插曲,突然死机了。锋哥有重新搞了一遍提示词生成项目,所以最终方案看下面的。大家可能生成的也和我不一样,都没关系,用AI都可以改的。
1. 项目概述
┌─────────────────────────────────────────────────────────┐ │ 微信客户端(用户侧) │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ 微信小程序(miniprogram/) │ │ │ │ ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │ │ │ │ │ Pages │ │Components│ │ Utils │ │ │ │ │ │ 12个页面 │ │ 自定义组件│ │ api/auth/util │ │ │ │ │ └──────────┘ └──────────┘ └──────────────────┘ │ │ │ └───────────────────────┬─────────────────────────────┘ │ └──────────────────────────┼──────────────────────────────┘ │ wx.cloud.callFunction ▼ ┌─────────────────────────────────────────────────────────┐ │ 微信云开发平台(Serverless) │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ 云函数 xiaodian(Node.js) │ │ │ │ ┌────────────┐ ┌──────────────┐ ┌────────────┐ │ │ │ │ │ Middleware │ │ Controllers │ │ Utils │ │ │ │ │ │ 鉴权/限流 │ │ 业务逻辑层 │ │ 辅助工具 │ │ │ │ │ │ /日志 │ │ user/shop/ │ │ │ │ │ │ │ │ │ │ member/finance│ │ │ │ │ │ │ │ │ │ /system │ │ │ │ │ │ │ └────────────┘ └──────────────┘ └────────────┘ │ │ │ └───────────────────────┬─────────────────────────────┘ │ │ │ cloud.database() │ │ ┌───────────────────────▼─────────────────────────────┐ │ │ │ 云数据库(文档型 NoSQL) │ │ │ │ 13 个集合:t_user / t_admin / t_shop / ... │ │ │ └─────────────────────────────────────────────────────┘ │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ 云存储(图片/文件) │ │ │ │ 轮播图 / 二维码 等静态资源 │ │ │ └─────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────┘1.1 产品定位
基于微信云开发的小店会员管理系统,面向线下实体小店(如美发店、美容店等),提供会员注册、余额充值、消费扣费、消费记录查询等核心功能。
1.2 核心功能
| 角色 | 功能模块 | 说明 |
|---|---|---|
| 会员 | 关于我们 | 店铺轮播图、余额展示、充值入口、导航地图、店铺介绍 |
| 会员 | 消费记录 | 个人消费历史,支持分页加载 |
| 会员 | 个人中心 | 查看/编辑姓名、手机号、余额、会员编号 |
| 管理员 | 店铺管理 | 轮播图、导航地址、微信二维码、联系电话、店铺介绍 |
| 管理员 | 会员管理 | 会员列表、按时间/编号/手机号搜索筛选 |
| 管理员 | 会员充值 | 通过会员编号或手机号查询并充值 |
| 管理员 | 消费管理 | 选择/输入消费项目和金额,执行扣费 |
| 管理员 | 项目管理 | 管理常用消费项目和常用价格 |
2. 系统架构总览
2.1 架构特点
Serverless 架构:无需自建服务器,云函数按需执行,自动弹性伸缩
单云函数路由:所有业务逻辑集中在一个云函数
xiaodian中,通过action参数路由分发中间件管道:请求经过 鉴权 → 限流 → 业务处理 → 日志记录 的标准流程
前后端一体化:微信云开发天然打通鉴权(openid),无需传统的 token/session 机制
3. 技术栈
| 层级 | 技术选型 | 版本/说明 |
|---|---|---|
| 客户端框架 | 微信小程序原生 | WXML + WXSS + JS |
| 基础库 | 微信小程序基础库 | 3.15.1 |
| 服务端运行时 | Node.js(云函数) | 微信云开发托管 |
| 服务端 SDK | wx-server-sdk | ~2.6.3 |
| 数据库 | 微信云数据库 | 文档型 NoSQL(类 MongoDB) |
| 文件存储 | 微信云存储 | 图片/静态资源 |
| 身份认证 | 微信 OpenID + 手机号授权 | 内置鉴权 |
| 开发工具 | 微信开发者工具 | 编译/调试/部署一体化 |
| 代码加载策略 | 按需注入 | lazyCodeLoading: "requiredComponents" |
4. 目录结构
xiaodian2/ ├── project.config.json # 微信开发者工具项目配置 ├── project.private.config.json # 本地私有配置覆盖 ├── README.md # 项目说明文档 ├── ARCHITECTURE.md # 架构技术设计文档(本文档) │ ├── miniprogram/ # ===== 小程序前端 ===== │ ├── app.js # 全局入口(云初始化、登录检查) │ ├── app.json # 页面路由、TabBar、窗口配置 │ ├── app.wxss # 全局样式 │ ├── sitemap.json # 搜索索引规则 │ │ │ ├── custom-tab-bar/ # 自定义 TabBar 组件 │ │ ├── index.js # 动态 Tab 逻辑(管理员/会员切换) │ │ ├── index.json │ │ ├── index.wxml │ │ └── index.wxss │ │ │ ├── components/ # 公共组件 │ │ └── footer/ # 底部版权组件 │ │ │ ├── utils/ # 工具函数 │ │ ├── api.js # 云函数调用统一封装 │ │ ├── auth.js # 登录态管理与守卫 │ │ └── util.js # 通用格式化工具 │ │ │ └── pages/ # ===== 页面目录 ===== │ ├── about/ # Tab1 - 关于我们(店铺首页) │ ├── records/ # Tab2 - 消费记录 │ ├── profile/ # Tab3(会员) - 个人中心 │ ├── admin/ # Tab3(管理员) - 系统管理面板 │ ├── login/ # 登录授权页(手机号授权) │ ├── recharge-info/ # 充值方式展示(二维码) │ ├── shop-manage/ # 店铺信息管理 │ ├── member-manage/ # 会员列表管理 │ ├── member-recharge/ # 会员充值操作 │ ├── consume-manage/ # 消费扣费操作 │ ├── item-manage/ # 消费项目管理 │ └── shop-intro-edit/ # 店铺介绍富文本编辑 │ └── cloudfunctions/ # ===== 云函数 ===== └── xiaodian/ # 唯一业务云函数 ├── index.js # 入口 & 路由分发 ├── config.json # 超时配置 & 开放接口权限 ├── package.json # npm 依赖声明 │ ├── middleware/ # 中间件层 │ ├── auth.js # 鉴权(用户/管理员身份判定) │ ├── rateLimit.js # 频率限制(月限/日统计/警报) │ └── logger.js # 操作日志(管理员/会员分表记录) │ ├── controllers/ # 业务控制器层 │ ├── user.js # 用户:登录、资料查看/修改 │ ├── shop.js # 店铺:信息查看/更新 │ ├── member.js # 会员:列表查询、编号查询 │ ├── finance.js # 财务:充值、消费、记录查询 │ ├── system.js # 系统:项目/价格/警报/日志管理 │ └── initDb.js # 开发期数据库初始化 │ └── utils/ └── helper.js # 辅助工具(会员编号生成等)5. 前端架构设计
5.1 应用生命周期
App.onLaunch │ ├── 1. wx.cloud.init() 初始化云环境 │ ├── 2. initDb.run 开发期自动初始化数据库集合 │ └── 3. checkLogin() 异步检查登录态 │ ├── 调用 user.getProfile │ ├── 已登录 → 设置 globalData(userInfo/isAdmin/isLoggedIn) │ └── 未登录 → loginChecked = true,等待页面级处理5.2 全局状态管理
使用App.globalData作为全局状态中心:
| 字段 | 类型 | 说明 |
|---|---|---|
env | string | 云开发环境 ID |
userInfo | object/null | 当前用户信息(含 balance、memberNo 等) |
isAdmin | boolean | 是否管理员 |
isLoggedIn | boolean | 是否已登录 |
loginChecked | boolean | 启动期登录检查是否完成 |
5.3 页面结构与导航
采用自定义 TabBar实现动态角色导航:
| Tab 位 | 会员视角 | 管理员视角 |
|---|---|---|
| Tab 1 | 关于我们 | 关于我们 |
| Tab 2 | 消费记录 | 消费记录 |
| Tab 3 | 个人中心 | 系统管理 |
管理员 Tab3 自动切换为「系统管理」面板,通过custom-tab-bar组件根据isAdmin动态渲染。
5.4 登录态守卫
页面 onShow / onLoad │ └── auth.checkLogin(page) │ ├── loginChecked && isLoggedIn → 正常加载数据 ├── loginChecked && !isLoggedIn → 跳转 /pages/login/login └── !loginChecked → 注册 loginReadyCallback,等待 App 回调5.5 API 调用封装
utils/api.js统一封装所有云函数调用:
callCloud(action, data) → wx.cloud.callFunction({ name: 'xiaodian', data: { action, ...data } }) → result.code === 0 ? resolve(result.data) : reject + Toast 提示云函数名固定为
xiaodian所有接口通过
action字符串路由(如user.login、finance.recharge)统一错误处理与用户提示
6. 后端架构设计(云函数)
6.1 单入口路由架构
所有请求统一进入xiaodian云函数的exports.main,通过event.action路由到对应 Controller:
请求进入 (event.action) │ ├── 1. 路由校验 action 是否在 ROUTE_MAP 中 ├── 2. OpenID 提取 cloud.getWXContext().OPENID ├── 3. 开发期分支 DEV_NO_AUTH_ACTIONS → 直接执行 ├── 4. 鉴权中间件 authenticate(openid) ├── 5. 限流中间件 checkRateLimit(openid, isAdmin, phone) ├── 6. 注册校验 非 PUBLIC_ACTIONS 须已绑定手机号 ├── 7. 权限校验 ADMIN_ACTIONS 须 isAdmin === true ├── 8. 执行业务 ROUTE_MAP[action](event, authResult) ├── 9. 异步日志 logOperation(authInfo, action, event) └── 10. 返回结果 { code: 0, data } 或 { code: 非0, message }6.2 路由映射表(ROUTE_MAP)
| Action | Controller | 方法 | 权限 |
|---|---|---|---|
user.login | userCtrl | login | 公开 |
user.getProfile | userCtrl | getProfile | 公开 |
user.updateName | userCtrl | updateName | 已登录 |
shop.getInfo | shopCtrl | getInfo | 已登录 |
shop.updateInfo | shopCtrl | updateInfo | 管理员 |
member.list | memberCtrl | list | 管理员 |
member.getByMemberNo | memberCtrl | getByMemberNo | 管理员 |
finance.recharge | financeCtrl | recharge | 管理员 |
finance.consume | financeCtrl | consume | 管理员 |
finance.getMyRecords | financeCtrl | getMyRecords | 已登录 |
finance.getMemberRecords | financeCtrl | getMemberRecords | 管理员 |
system.getItems | systemCtrl | getItems | 管理员 |
system.addItem | systemCtrl | addItem | 管理员 |
system.deleteItem | systemCtrl | deleteItem | 管理员 |
system.getPrices | systemCtrl | getPrices | 管理员 |
system.addPrice | systemCtrl | addPrice | 管理员 |
system.deletePrice | systemCtrl | deletePrice | 管理员 |
system.getAlerts | systemCtrl | getAlerts | 管理员 |
system.dismissAlert | systemCtrl | dismissAlert | 管理员 |
system.getAdminLogs | systemCtrl | getAdminLogs | 管理员 |
initDb.run | initDbCtrl | run | 开发期免鉴权 |
6.3 中间件层
6.3.1 鉴权中间件(auth.js)
authenticate(openid) │ ├── 查询 t_user → 判断 registered(是否有 phone) ├── 查询 t_admin → 判断 isAdmin │ └── 返回 { openid, registered, isAdmin, userInfo, phone }6.3.2 限流中间件(rateLimit.js)
| 维度 | 规则 | 阈值 |
|---|---|---|
| 普通用户月限 | 按 openid + 月份统计 | 500 次/月 |
| 管理员月限 | 所有管理员合计统计 | 200,000 次/月 |
| 全局日统计 | 按日期统计所有调用 | 10,000 次/日触发警报 |
限流流程:
checkRateLimit(openid, isAdmin, phone) │ ├── 查询/创建 t_rate_limit 月度计数记录(原子 inc) │ ├── 管理员 → 汇总当月所有管理员调用,>200,000 则限制 ├── 普通用户 → 当前用户当月 >500 则限制 │ └── 异步触发 checkDailyAlert(today) ├── 更新 t_daily_count 日统计 └── >10,000 且无未关闭警报 → 写入 t_alert6.3.3 日志中间件(logger.js)
logOperation(authInfo, action, event) │ ├── 管理员 → 写入 t_admin_log ├── 已注册会员 → 写入 t_member_log └── 未注册用户 → 不记录日志内容包含:openid、phone、action、可读详情(buildDetail映射)、时间戳。
6.4 统一响应格式
// 成功 { "code": 0, "data": { ... } } // 业务错误 { "code": 400, "message": "无效的操作" } { "code": 401, "message": "身份验证失败,无法获取openid" } { "code": 403, "message": "请先完成手机号授权登录" } { "code": 403, "message": "权限不足,需要管理员权限" } { "code": 429, "message": "本月云函数调用次数已达上限(500次)" } { "code": 500, "message": "服务器内部错误" }7. 数据库设计
7.1 数据库类型
微信云数据库,文档型 NoSQL(类 MongoDB),通过wx-server-sdk的cloud.database()访问。
7.2 集合(表)设计
7.2.1 核心业务集合
t_user — 用户/会员表
| 字段 | 类型 | 说明 |
|---|---|---|
_id | string | 文档 ID(自动生成) |
openid | string | 微信 OpenID(唯一标识) |
phone | string | 手机号(授权绑定) |
name | string | 用户姓名 |
balance | number | 会员余额(元) |
memberNo | string/null | 4位会员编号(首次充值时生成) |
firstRechargeTime | date | 首次充值时间 |
createTime | date | 创建时间 |
updateTime | date | 最后更新时间 |
t_admin — 管理员表
| 字段 | 类型 | 说明 |
|---|---|---|
_id | string | 文档 ID |
openid | string | 管理员微信 OpenID |
phone | string | 手机号 |
name | string | 管理员姓名 |
t_shop — 店铺信息表
| 字段 | 类型 | 说明 |
|---|---|---|
_id | string | 文档 ID |
| 轮播图、地址坐标、二维码、联系电话、店铺介绍等 | mixed | 店铺展示信息 |
7.2.2 交易流水集合
t_recharge_record — 充值记录
| 字段 | 类型 | 说明 |
|---|---|---|
memberNo | string | 会员编号 |
userOpenid | string | 会员 OpenID |
userPhone | string | 会员手机号 |
amount | number | 充值金额 |
adminOpenid | string | 操作管理员 OpenID |
adminPhone | string | 管理员手机号 |
createTime | date | 充值时间 |
t_consume_record — 消费记录
| 字段 | 类型 | 说明 |
|---|---|---|
memberNo | string | 会员编号 |
userOpenid | string | 会员 OpenID |
userPhone | string | 会员手机号 |
project | string | 消费项目名称 |
amount | number | 消费金额 |
adminOpenid | string | 操作管理员 OpenID |
adminPhone | string | 管理员手机号 |
createTime | date | 消费时间 |
7.2.3 配置集合
| 集合 | 说明 |
|---|---|
t_consume_item | 常用消费项目(如洗剪吹、烫发) |
t_price_item | 常用价格选项(如 30 元、100 元) |
7.2.4 安全与运维集合
| 集合 | 说明 |
|---|---|
t_rate_limit | 月度调用频率统计(按 openid + yearMonth) |
t_daily_count | 每日调用总量统计 |
t_alert | 异常警报记录(超阈值自动生成) |
t_admin_log | 管理员操作日志 |
t_member_log | 会员操作日志 |
t_counter | 计数器(会员编号自增序列,0001-9999) |
7.3 集合关系图
t_admin ─────┐ │ openid t_user ──────┤◄──── t_recharge_record │ │ ▲ adminOpenid │ memberNo │ │ │ │ t_consume_record │ │ ▲ adminOpenid │ │ │ ├──── t_rate_limit(按 openid 统计) │ ├──── t_admin_log(管理员操作) │ └──── t_member_log(会员操作) │ └── t_counter(会员编号序列生成器) t_shop ── 独立(单条文档,存储店铺配置信息) t_consume_item / t_price_item ── 独立配置项 t_daily_count / t_alert ── 运维监控8. 接口设计(API)
8.1 调用方式
所有接口通过统一方式调用:
wx.cloud.callFunction({ name: 'xiaodian', data: { action: 'module.method', // ...业务参数 } })8.2 接口分类
用户模块(user)
| 接口 | 说明 | 入参 | 出参 |
|---|---|---|---|
user.login | 手机号授权登录 | code | userInfo + isAdmin |
user.getProfile | 获取个人资料 | - | userInfo或{ needLogin } |
user.updateName | 修改姓名 | name | { success } |
店铺模块(shop)
| 接口 | 说明 | 入参 | 出参 |
|---|---|---|---|
shop.getInfo | 获取店铺信息 | - | 店铺配置对象 |
shop.updateInfo | 更新店铺信息 | 各店铺字段 | 更新结果 |
会员模块(member)
| 接口 | 说明 | 入参 | 出参 |
|---|---|---|---|
member.list | 会员列表 | 筛选/分页参数 | 列表 + 分页 |
member.getByMemberNo | 按编号查会员 | memberNo | 会员信息 |
财务模块(finance)
| 接口 | 说明 | 入参 | 出参 |
|---|---|---|---|
finance.recharge | 充值 | memberNo/phone, amount | 会员最新余额 |
finance.consume | 消费扣费 | memberNo, project, amount | 会员最新余额 |
finance.getMyRecords | 我的消费记录 | page, pageSize | 分页记录列表 |
finance.getMemberRecords | 会员记录(管理员) | memberNo, page, pageSize | 消费+充值记录 |
系统模块(system)
| 接口 | 说明 |
|---|---|
system.getItems / addItem / deleteItem | 消费项目 CRUD |
system.getPrices / addPrice / deletePrice | 常用价格 CRUD |
system.getAlerts / dismissAlert | 警报查看/关闭 |
system.getAdminLogs | 管理员操作日志 |
9. 安全机制
9.1 身份认证
微信授权体系 │ ┌───────────────┼───────────────┐ ▼ ▼ ▼ OpenID 自动获取 手机号授权 管理员白名单 (cloud.getWXContext) (getPhoneNumber) (t_admin) │ │ │ └───────────────┼───────────────┘ ▼ 三级权限判定 公开 < 已登录 < 管理员| 层级 | 条件 | 可访问接口 |
|---|---|---|
| 公开 | 仅需 OpenID | user.login、user.getProfile |
| 已登录 | OpenID + 已绑定手机号 | 所有非管理员接口 |
| 管理员 | OpenID + t_admin 存在记录 | ADMIN_ACTIONS 列表中的接口 |
9.2 调用频率限制
| 对象 | 限额 | 超限行为 |
|---|---|---|
| 普通用户 | 500 次/月 | 返回 429,拒绝服务 |
| 管理员(全体) | 200,000 次/月 | 返回 429,拒绝服务 |
| 全局日统计 | 10,000 次/日 | 自动生成 t_alert 警报 |
9.3 业务安全校验
充值金额:必须 > 0 且 <= 100,000 元
消费金额:必须 > 0 且 <= 100,000 元,且不超过会员余额
姓名修改:非空且 <= 20 字符
会员编号:4 位数字(0001-9999),通过
t_counter原子自增保证唯一性
利用Cursor AI编程 Agent生成项目
我们点Build生成项目
大概等待20分钟左右,项目生成完成了。
我们把项目导入微信开发者工具,尝试运行。
利用Cursor AI编程 Agent修复bug和完善功能
我们用得是旗舰模型Opus4.6,目前生成的项目基本也没啥问题,我测试了一遍。假如大家还有不满意的话,可以然AI继续改即可。
