# 【前端调整·管理后台】司机自助录入「发短信」按钮应直接发短信(调 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`:成功返**脱敏收件号**(用于 toast);短信经通知中心 afterCommit 异步发,出参不回投递结果(到达由 notification_send_log 承载) | | 可发状态 | 仅 `VALID_UNSUBMITTED`(有效·未提交)/ `REJECTED`(已驳回)可发;其它状态返 600308 | | 网关 | `/admin/fleet/**` 已覆盖,无需改网关 | ## 3. 错误码(前端按 code 提示) - **600307** 该链接无可用手机号 → 提示「请先补录手机号」(可弹输入框,把手机号塞进 body.phone 重试) - **600308** 当前状态不可发送(已提交/已通过/已作废)→ 提示对应状态 - **600402** 记录不存在 - 401 未登录 ## curl 实测(测试服网关 9443,真 admin token;截图那条链接就是可发状态) ```bash # 截图链接 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 " -H "Content-Type: application/json" -d '{}' # → {"code":200,"success":true,"data":{... 脱敏收件号 ...}} 且司机手机真实收到入职短信(含短链) # ⚠️ 联调注意: 这会真发一条短信(走阿里云,计费),请用你自己的测试号、别狂点 ``` ## 验收 点「发短信」→ 不再是复制提示,而是「短信已发送至 1xx****xxxx」;对应手机收到「【呼籁旅行】师傅您好,请点击完成司机入职信息录入:https://…/s/{码},N天内有效。」短信,点链接进司机入职登记表单。