Files
shaguabijia-app-server/docs/api/coupon-step.md
T
marco ba946a9d9a fix(docs): 移除 3ff95db merge commit 残留的冲突标记
3ff95db 那次 merge 时, IDE/editor 已经修改文件但 my Edit 被 file-freshness
guard 拒绝,后续 git add/commit/push 把仍带 <<<<<<< / =======/>>>>>>> 的
coupon-step.md 推上去了 —— 已部署文档破损。

按原合并方案 fix-forward:鉴权行用精确版「Bearer access_token(客户端契约;Server
MVP 阶段不强校验)」,⚠️ 段保留「前端已接通」详述 + 用「客户端契约 vs Server
实现」措辞写鉴权状态 + device_id 用途 + P1 链接。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 10:49:01 +08:00

1.7 KiB
Raw Blame History

POST /api/v1/coupon/step — 一键领券任务步进(透传到 pricebot)

所属:Coupon 组(前缀 /api/v1/coupon | 鉴权:Bearer access_token(客户端契约;Server MVP 阶段不强校验) | ← 返回 API 索引

入参

任意 JSON body,不做 schema 校验,原样透传给上游。后端仅从中读 device_idtrace_idstep 用于日志。

出参

pricebot-backend 的响应原样返回(JSON object)。

错误码

  • 400 body 不是合法 JSON
  • 502 pricebot 上游不可达(网络错误)或返回 5xx

说明

把请求体原样转发到 PRICEBOT_BASE_URL/api/coupon/stepasync httpx)。真正的领券逻辑在 pricebot-backend(另一个 repo,GoalEngine + 事件驱动),本接口只是"透传壳"。

是产品"一键领券"的接入点,前端已接通:首页「去领取」→ CouponPromptDialog 确认 → 权限检查 → 无障碍引擎 PriceBotService.startCouponClaim() → 循环调本接口,后端逐张券下发 launch/wait/done。

⚠️ 客户端契约 vs Server 实现:Android 客户端通过 AuthInterceptor 已自动带 Authorization: Bearer <access_token> 头(契约层 OK);Server MVP 阶段暂未启用强校验——coupon.py 没接 Depends(get_current_user),只读 device_id 透传给 pricebot 区分设备,后端拿不到 user_id → 领券行为暂时绑不到登录用户(采集不到用户级画像)。待补强校验 + device_id↔user_id 绑定,详见 待办与技术债.md P1。

相关配置:

  • PRICEBOT_BASE_URL(默认 http://localhost:8000
  • PRICEBOT_REQUEST_TIMEOUT_SEC(默认 30s,因领券单帧最多 wait 6s