Files
xin-procurement/docs/小程序端修改文档.md
T
2026-08-20 14:45:06 +08:00

6.7 KiB
Raw Blame History

小程序端修改文档(门店端)

版本:2026-08-17 后端变更:用户表与门店表合并(一个用户就是一个门店),门店登录由「微信静默登录」改为「账号 + 密码登录」。 本文档面向小程序(门店端)开发者,说明需要配合修改的内容。未列出的接口均无变化


一、变更总览

事项
登录方式 wx.login 拿 code,调 /mini/auth/login 静默登录 账号 + 密码登录(账号由商家后台分配)
注册 POST /mini/auth/register(微信 code + 手机号 + 门店编码) 接口下线,门店账号由商家在 PC 后台创建
登录主体 微信用户(user),再绑定门店(store) 门店即用户:登录成功返回的就是门店本身
修改密码 新增 PUT /mini/auth/password
Token 鉴权 Bearer Token 不变
其他业务接口 购物车 / 订单 / 账单 / 支付 / 通知 / 商品 / 首页 全部不变(路径、入参、出参)

需要小程序端配合的改动

  1. 重做登录页:去掉 wx.login 流程,改为账号 + 密码表单(账号密码由商家线下告知门店)。
  2. 删除注册页/绑定门店页:注册接口已下线,「尚未绑定门店」的场景已不存在。
  3. 用户信息结构调整:登录与 auth/info 返回的对象字段变化(见下文)。
  4. 新增「修改密码」入口(建议放在「我的」页面)。
  5. 重新登录:旧 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 嵌套,也不再有 openidunionidnicknameemailstore_id 字段。
  • 门店名称取 user.name(原 user.store.name);客户等级取 user.level
  • password 字段永不返回。

失败响应(success: falsemsg 提示):

场景 msg
账号不存在或密码错误 账号或密码错误
门店已停用 账号已被停用,请联系客服处理
参数缺失 请输入登录账号 / 请输入登录密码

Token 使用(不变): 后续所有请求携带请求头 Authorization: Bearer {token}


三、注册接口(下线)

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/categoriesGET /mini/product/listGET /mini/product/{id}(登录后按本店等级显示价格)
购物车 POST /mini/cartGET /mini/cartPUT /mini/cart/{id}DELETE /mini/cart/{id}DELETE /mini/cart
订单 POST /mini/orderGET /mini/orderGET /mini/order/summaryGET /mini/order/{id}PUT /mini/order/{id}/cancel
账单 GET /mini/billGET /mini/bill/{id}GET /mini/bill/export
支付 GET /mini/payment/configGET /mini/paymentPOST /mini/paymentGET /mini/payment/{id}
通知 GET /mini/noticePUT /mini/notice/{id}/read
上传 POST /mini/upload

唯一语义差异:数据隔离现在天然按门店划分(一个门店一个账号),原「同一门店多个微信账号各自购物车」的合并场景不再存在。


八、错误语义(不变)

  • 未携带/无效 tokenHTTP 401
  • 业务错误:HTTP 200 + { success: false, msg: "..." },直接 toast msg 即可。
  • 「门店未设置客户等级,无法加购/下单,请联系客服」等提示文案不变。
  • 「尚未绑定门店」提示已移除(该场景不存在)。

九、上线 Checklist(小程序端)

  • 登录页改为账号 + 密码表单,移除 wx.login / wx.getPhoneNumber 调用
  • 移除注册页、门店绑定页及路由
  • 全局用户信息读取点从 user.store.* 调整为 user.*(门店名、等级、回款周期等)
  • 「我的」页面新增修改密码入口
  • 旧版本缓存的 token 失效处理:401 时引导重新登录
  • 等级价格展示逻辑不变(接口返回的 price 字段含义不变)