前端对接供应商

供应商入驻协议授权

入驻申请页协议弹窗:协议列表 / 注册回传协议版本、712 错误码处理;运营后台供应商详情【协议授权记录】及协议版本正文查看

端
供应商小程序 / App / 运营后台
后端服务
supplier / admin
状态
已上测
需求单
XYLZ-3569
更新
2026-10-17
接口数
4

Markdown 原文(给 AI 用):https://doc.xfun.fun/supplier-agreement-auth-api.md

总览

端接口变更鉴权
供应商端 xm-bulky-supplierPOST /login/agreement/list新增 入驻协议 + 隐私政策当前版本及正文免登录
供应商端 xm-bulky-supplierPOST /login/register入参新增 agreementVersionIds免登录(同原接口)
运营后台 xm-bulky-adminPOST /supplier/agreementAuth/list新增 供应商详情右上角【协议授权记录】,返回入驻申请时的授权信息需登录(同现有后台接口)
运营后台 xm-bulky-adminPOST /supplier/agreementAuth/versionContent新增 查看某次授权对应的协议版本正文需登录

入驻申请页前端流程

进入入驻申请页 → ① /login/agreement/list 拉协议,自动弹窗 → 3 秒倒计时后点「我已阅读并同意」(不调接口,记下全部 versionId) → 勾选复选框,第一步「下一步」 → ② /login/register 带上 agreementVersionIds

纯前端交互(后端无接口)

当前情况点击「下一步」后的处理
未同意协议toast「请先阅读并同意平台入驻协议和隐私政策」,打开协议弹窗(倒计时重新开始)
已同意,资料未填写完整或格式错误提示具体问题(如「请填写卖家名称」),并 滚动定位到第一个错误字段(按表单从上到下的顺序取第一个)
已同意,资料校验通过在页面内保留当前资料,进入第二步「提交申请」(第一步不调后端,第二步提交时才调 ②)

供应商端接口

POST/login/agreement/list

新增

入驻协议列表。进入入驻申请页时调用;也在 ② 注册返回 712 时重新调用刷新。

请求参数

无,传 {} 即可。

响应 data(数组)

字段类型说明
agreementIdLong协议 id
versionIdLong协议版本快照 id,② 注册时放进 agreementVersionIds 回传
versionInteger版本号(同一协议从 1 递增,可选展示)
typeInteger4 = 平台入驻协议;2 = 隐私政策
nameString协议名称,不带书名号,如「平台入驻协议」;直接作 tab 标题,复选框后的链接文字由前端加书名号
contentString协议正文(富文本 HTML,与现有接口 /home/agreement/content 格式一致)

响应示例

json
{
  "code": 0,
  "msg": "success",
  "data": [
    { "agreementId": 13, "versionId": 1, "version": 1, "type": 4, "name": "平台入驻协议", "content": "<p>…</p>" },
    { "agreementId": 15, "versionId": 2, "version": 1, "type": 2, "name": "隐私政策",     "content": "<p>…</p>" }
  ]
}

POST/login/register

入参新增

提交入驻申请(原接口,第二步「提交申请」时调用),原有字段不变,新增一个字段。

新增请求参数

字段类型必填说明
agreementVersionIdsLong[]可选① 返回的 全部 versionId(顺序无所谓,最多 10 个)。传了:须与当前版本集合完全一致(缺、多、过期都不行),否则返回 712。不传 / null / []:后端按当前协议版本写授权记录,等同于传了 ① 此刻返回的全部 versionId;版本快照尚不存在时按 ① 同样规则生成;运营关闭了全部协议时不写记录。新版入驻页用户同意后应传,以便协议在填写期间更新时能拦截(712)
json
{
  "...原有字段...": "...",
  "agreementVersionIds": [1, 2]
}

失败处理

说明

注册成功后,后端以 入驻时间作为授权同意时间写入授权记录,同时保存协议版本、IP 和 deviceType(不记录弹窗点击时间)。

错误码速查(供应商端)

codemsg接口前端处理
712协议内容已更新,请重新阅读并同意/login/registertoast + 回到第一步(保留资料)+ 取消勾选 + 重新调 ① 刷新并弹窗,倒计时重来

运营后台接口

POST/supplier/agreementAuth/list

新增

供应商详情页右上角【协议授权记录】按钮,点击打开右侧抽屉「协议授权信息」。返回 单个对象:供应商入驻申请时授权的平台入驻协议和隐私政策。

请求参数

字段类型必填说明
idLong必填供应商 id

响应 data(对象,可能为 null)

字段类型说明
authStatusString授权状态,固定「已授权」,直接展示为绿色标签
authTimeString授权时间 = 入驻(注册)时间;历史已入驻供应商为补录记录的授权时间
authStageString授权环节,固定「入驻申请」(含历史已入驻供应商的补录记录)
agreementsArray授权协议:平台入驻协议在前、隐私政策在后
agreementIdLong协议 id
agreementTypeInteger4 = 入驻协议;2 = 隐私政策
agreementNameString协议名称,不带书名号,直接作卡片标题
versionIdLong协议版本快照 id;非空时卡片右侧显示「查看协议 >」,点击调 versionContent
versionInteger版本号(可不展示)

响应示例

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "authStatus": "已授权",
    "authTime": "2026-10-16 09:15:32",
    "authStage": "入驻申请",
    "agreements": [
      { "agreementId": 13, "agreementType": 4, "agreementName": "平台入驻协议", "versionId": 1, "version": 1 },
      { "agreementId": 15, "agreementType": 2, "agreementName": "隐私政策",     "versionId": 2, "version": 1 }
    ]
  }
}

无授权记录时:

json
{ "code": 0, "msg": "success", "data": null }

抽屉布局(对照原型图)

失败处理

POST/supplier/agreementAuth/versionContent

新增

点击协议卡片的「查看协议」,展示该次授权对应版本的协议正文(快照,不随运营后续修改变化),可用弹窗或新抽屉展示,标题用 name。

请求参数

字段类型必填说明
idLong必填协议卡片的 versionId

响应 data

字段类型说明
versionIdLong版本快照 id
agreementIdLong协议 id
nameString协议名称,不带书名号
versionInteger版本号
contentString正文(富文本 HTML)
createTimeString该版本生成时间(即首次下发时间)
json
{
  "code": 0,
  "msg": "success",
  "data": { "versionId": 1, "agreementId": 13, "name": "平台入驻协议", "version": 1,
            "content": "<p>…</p>", "createTime": "2026-10-20 09:58:11" }
}

联调注意