6.7 KiB
6.7 KiB
小程序端修改文档(门店端)
版本:2026-08-17 后端变更:用户表与门店表合并(一个用户就是一个门店),门店登录由「微信静默登录」改为「账号 + 密码登录」。 本文档面向小程序(门店端)开发者,说明需要配合修改的内容。未列出的接口均无变化。
一、变更总览
| 事项 | 旧 | 新 |
|---|---|---|
| 登录方式 | wx.login 拿 code,调 /mini/auth/login 静默登录 |
账号 + 密码登录(账号由商家后台分配) |
| 注册 | POST /mini/auth/register(微信 code + 手机号 + 门店编码) |
接口下线,门店账号由商家在 PC 后台创建 |
| 登录主体 | 微信用户(user),再绑定门店(store) | 门店即用户:登录成功返回的就是门店本身 |
| 修改密码 | 无 | 新增 PUT /mini/auth/password |
| Token 鉴权 | Bearer Token | 不变 |
| 其他业务接口 | 购物车 / 订单 / 账单 / 支付 / 通知 / 商品 / 首页 | 全部不变(路径、入参、出参) |
需要小程序端配合的改动
- 重做登录页:去掉
wx.login流程,改为账号 + 密码表单(账号密码由商家线下告知门店)。 - 删除注册页/绑定门店页:注册接口已下线,「尚未绑定门店」的场景已不存在。
- 用户信息结构调整:登录与
auth/info返回的对象字段变化(见下文)。 - 新增「修改密码」入口(建议放在「我的」页面)。
- 重新登录:旧 token 全部失效,需引导用户用账号密码重新登录一次。
二、登录接口(变更)
POST /mini/auth/login
请求参数(变更):
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| username | string | 是 | 登录账号(商家后台分配,4~20 位) |
| password | string | 是 | 登录密码 |
旧参数
code(wx.login 凭证)已废弃,无需再传,也无需调用wx.login。
成功响应:
{
"success": true,
"msg": "登录成功",
"data": {
"token": "1|xxxxxxxxxxxxxxxx",
"user": {
"id": 3,
"name": "好又多超市",
"code": "S000003",
"username": "hyd001",
"avatar": "",
"level_id": 1,
"level": { "id": 1, "name": "一级客户" },
"contact": "张三",
"phone": "13800000000",
"address": "xx路 1 号",
"payment_cycle_days": 2,
"status": 1,
"last_login_at": "2026-08-17 10:00:00",
"created_at": "2026-08-01 09:00:00"
}
}
}
user 字段变化要点:
user现在就是门店对象(扁平结构),不再有user.store嵌套,也不再有openid、unionid、nickname、email、store_id字段。- 门店名称取
user.name(原user.store.name);客户等级取user.level。 password字段永不返回。
失败响应(success: false,msg 提示):
| 场景 | msg |
|---|---|
| 账号不存在或密码错误 | 账号或密码错误 |
| 门店已停用 | 账号已被停用,请联系客服处理 |
| 参数缺失 | 请输入登录账号 / 请输入登录密码 |
Token 使用(不变): 后续所有请求携带请求头 Authorization: Bearer {token}。
三、注册接口(下线)
POST /mini/auth/register —— 已删除
POST /mini/auth/register- 门店账号全部由商家在 PC 后台「客户管理 → 门店管理」创建并分配(含登录账号、初始密码)。
- 小程序端请移除注册页、「输入门店编码绑定」页及相关逻辑。
- 同步移除
wx.getPhoneNumber手机号授权流程(后端已不再使用)。
四、当前用户信息(结构变化)
GET /mini/auth/info(需登录)
返回当前登录门店完整信息(含 level 等级嵌套),字段与登录接口的 user 一致(见上文示例)。原来读取 info.store.xxx 的地方改为直接读 info.xxx。
五、修改密码(新增)
PUT /mini/auth/password(需登录)
请求参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| oldPassword | string | 是 | 原密码 |
| newPassword | string | 是 | 新密码(6~20 位) |
| rePassword | string | 是 | 确认新密码(须与 newPassword 一致) |
失败场景: 原密码不正确 / 两次输入的密码不一致 / 新密码至少 6 位。
修改密码成功后现有 token 仍然有效,无需强制重新登录。
六、门店信息(不变)
GET /mini/store/info(需登录)
返回:{ id, name, code, contact, phone, address, payment_cycle_days }(门店名称/编码/回款周期只读,由后台维护)。
PUT /mini/store/info(需登录)
可改字段不变:contact(联系人)、phone(联系电话)、address(地址)。
七、以下接口完全不变
路径、入参、出参均无变化,仅内部归属从「用户」变为「门店」(对小程序透明):
| 模块 | 接口 |
|---|---|
| 首页 | GET /mini/home/*(轮播/导航/促销) |
| 商品 | GET /mini/product/categories、GET /mini/product/list、GET /mini/product/{id}(登录后按本店等级显示价格) |
| 购物车 | POST /mini/cart、GET /mini/cart、PUT /mini/cart/{id}、DELETE /mini/cart/{id}、DELETE /mini/cart |
| 订单 | POST /mini/order、GET /mini/order、GET /mini/order/summary、GET /mini/order/{id}、PUT /mini/order/{id}/cancel |
| 账单 | GET /mini/bill、GET /mini/bill/{id}、GET /mini/bill/export |
| 支付 | GET /mini/payment/config、GET /mini/payment、POST /mini/payment、GET /mini/payment/{id} |
| 通知 | GET /mini/notice、PUT /mini/notice/{id}/read |
| 上传 | POST /mini/upload |
唯一语义差异:数据隔离现在天然按门店划分(一个门店一个账号),原「同一门店多个微信账号各自购物车」的合并场景不再存在。
八、错误语义(不变)
- 未携带/无效 token:HTTP
401。 - 业务错误:HTTP
200+{ success: false, msg: "..." },直接 toastmsg即可。 - 「门店未设置客户等级,无法加购/下单,请联系客服」等提示文案不变。
- 「尚未绑定门店」提示已移除(该场景不存在)。
九、上线 Checklist(小程序端)
- 登录页改为账号 + 密码表单,移除
wx.login/wx.getPhoneNumber调用 - 移除注册页、门店绑定页及路由
- 全局用户信息读取点从
user.store.*调整为user.*(门店名、等级、回款周期等) - 「我的」页面新增修改密码入口
- 旧版本缓存的 token 失效处理:401 时引导重新登录
- 等级价格展示逻辑不变(接口返回的
price字段含义不变)