模块说明
distribution 提供会员分销体系:入口按"是否已是分销商"分流;分销商可查看分销明细与下线会员;非分销商可填写并提交申请。
鉴权级别:全部必须登录。
本模块大量使用 redirect 分流协议:业务分流(未成为分销 → 引导申请页)不返回 HTTP 错误,而是 200 + data.redirect(小程序形态地址),客户端应识别该字段做页面跳转。
接口一览
| 方法 |
URL |
鉴权 |
说明 |
| GET |
/api/distribution |
必须 |
分销入口(按身份分流) |
| GET |
/api/user/distribution |
必须 |
我的分销明细 |
| GET |
/api/user/distribution/people |
必须 |
我的下线 |
| GET |
/api/user/distribution/apply |
必须 |
申请表单 |
| POST |
/api/user/distribution/apply_post |
必须 |
提交申请 |
分销入口 GET /api/distribution
{
"code": "OK",
"message": "",
"data": {
"redirect": "pages/distribution/user"
},
"errors": {},
"request_id": "9f2a5c8e1b3d7f40"
}
- 已是分销商 →
redirect 指向我的分销页;未开通 → 指向申请页。
我的分销明细 GET /api/user/distribution
| 参数 |
必填 |
说明 |
user_sn |
否 |
按下线会员编号筛选 |
page |
否 |
页码,默认 1 |
{
"code": "OK",
"message": "",
"data": {
"title": "我的分销",
"money_list": [ { "id": 1, "money": "...", "add_time": "...", "...": "" } ],
"pager": { "...": "分页信息" },
"apply_exist": false
},
"errors": {},
"request_id": "9f2a5c8e1b3d7f40"
}
| 场景 |
响应 |
| 未成为分销商 |
200 + data.redirect(指向申请页) |
我的下线 GET /api/user/distribution/people
返回 title、people_list(下线会员列表)、pager;未成为分销商时同样走 redirect 分流。
申请表单 GET /api/user/distribution/apply
{
"code": "OK",
"message": "",
"data": {
"title": "申请分销",
"distribution": { "...": "申请表单数据" },
"item_id": 0,
"img_list": [ "...图集..." ]
},
"errors": {},
"request_id": "9f2a5c8e1b3d7f40"
}
| 场景 |
响应 |
| 已是分销商 |
200 + data.redirect(指向我的分销页) |
提交申请 POST /api/user/distribution/apply_post
提交字段由 DistributionApplyPostFormRequest 校验(如联系方式、申请说明等,以实际表单为准)。
| 场景 |
响应 |
| 字段校验失败 |
422 INVALID_PARAMS,errors 带字段级错误 |
| 业务规则拒绝 |
422 INVALID_PARAMS,errors.toast 为用户可读原因 |
| 成功 |
200,message=申请成功 |
注意事项
redirect 协议:distribution、distribution/user、distribution/user/people、distribution/user/apply 均可能在 data.redirect 返回跳转地址(小程序形态),通用客户端需将其映射到自身路由;
- 业务校验失败(如重复申请)返回
422 且原因在 errors.toast 中,与普通字段错误(errors 字段映射)需分别处理。