wx 反馈应在页面直接发短信。后端 POST /admin/fleet/h5/tokens/{pendingId}/resend
早已存在且端到端验证过(真发到手机,收件人确认收到),走通知中心+阿里云SMS_508070093。
现状前端「发短信」只复制链接到剪贴板;前端把按钮接到 resend 端点即可,后端零改动。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
3.5 KiB
3.5 KiB
【前端调整·管理后台】司机自助录入「发短信」按钮应直接发短信(调 resend 端点),别只复制链接
端:hl-ui(车务 → 司机自助录入 → 新招专属链接卡片「发短信」按钮)| 服务:hl-fleet-service
H5TokenAdminController(§4.6.4,端点早已存在)| 后端零改动,且已端到端验证过真发到手机 | wx 2026-06-15 反馈「应该在页面中直接发送短信」
⚠️ 关键说明:现状 vs 应该
- 现状:点「发短信」只是前端把短链复制到剪贴板(toast「短链已复制,可粘贴到短信/微信发送」),还要人工再粘到短信里发。
- 应该:点「发短信」后端直接把入职短信发到司机手机——这个能力后端早就有(走通知中心 + 阿里云 SMS_508070093,短信内含短链)。上次已端到端验证:真发到 185****2756(18547062756),收件人确认收到。
设计上 generate 只生成不发短信,「发短信」(=§4.6.4 重发端点) 才真发。所以前端把「发短信」按钮接到下面这个现成端点即可。
1. 前端要改什么
把「发短信」按钮的点击动作从「复制到剪贴板」改成「调 resend 端点真发短信」,发送成功后弹 toast(如「短信已发送至 185****2756」)。
- URL 旁那个独立的「复制」按钮保留(人工粘到微信用),只改「发短信」这一个按钮的行为。
2. 调这个现成端点(后端零改动)
| 项 | 内容 |
|---|---|
| 方法 + 路径 | POST /admin/fleet/h5/tokens/{pendingId}/resend |
| pendingId | 取自「生成 token」(POST /admin/fleet/h5/token) 或列表项的 pendingId(雪花,字符串透传) |
| body(可选) | {"phone":"13800001111"} 覆盖默认收件号;不传则用该链接生成时录入的手机号(新招生成时手机号已必填,正常不用传) |
| 出参 | Result<SendOnboardLinkRespVO>:成功返脱敏收件号(用于 toast);短信经通知中心 afterCommit 异步发,出参不回投递结果(到达由 notification_send_log 承载) |
| 可发状态 | 仅 VALID_UNSUBMITTED(有效·未提交)/ REJECTED(已驳回)可发;其它状态返 600308 |
| 网关 | /admin/fleet/** 已覆盖,无需改网关 |
3. 错误码(前端按 code 提示)
- 600307 该链接无可用手机号 → 提示「请先补录手机号」(可弹输入框,把手机号塞进 body.phone 重试)
- 600308 当前状态不可发送(已提交/已通过/已作废)→ 提示对应状态
- 600402 记录不存在
- 401 未登录
curl 实测(测试服网关 9443,真 admin token;截图那条链接就是可发状态)
# 截图链接 token=5ce987cc... 对应 pendingId=2066367115152986113, status=VALID_UNSUBMITTED, phone=185****2756
curl -k -X POST "https://api.test.1814.love:9443/admin/fleet/h5/tokens/2066367115152986113/resend" \
-H "Authorization: Bearer <adminToken>" -H "Content-Type: application/json" -d '{}'
# → {"code":200,"success":true,"data":{... 脱敏收件号 ...}} 且司机手机真实收到入职短信(含短链)
# ⚠️ 联调注意: 这会真发一条短信(走阿里云,计费),请用你自己的测试号、别狂点
验收
点「发短信」→ 不再是复制提示,而是「短信已发送至 1xx****xxxx」;对应手机收到「【呼籁旅行】师傅您好,请点击完成司机入职信息录入:https://…/s/{码},N天内有效。」短信,点链接进司机入职登记表单。