NATSotp.send.requestedOTP 投递任务(JetStream 事件)

otp_service 发布、otp_worker 消费的事件流:异步执行短信 / 邮件投递。此方向为 service → worker 单向流,无回复。

Request Payload

消息格式:JSON

NameData TypeRequiredDescription
eventIdstringYes事件 ID(JetStream 消息去重键)
channelstringYesphone / email
targetstringYes投递目标
scenestringYeslogin / register / bind(决定模板)
codestringYes验证码(仅事件内可见,不落日志)
occurredAtstringNo请求时间
type RequestBody = {
  /** 事件 ID(JetStream 消息去重键) */
  eventId: string
  /** phone / email */
  channel: string
  /** 投递目标 */
  target: string
  /** login / register / bind(决定模板) */
  scene: string
  /** 验证码(仅事件内可见,不落日志) */
  code: string
  /** 请求时间 */
  occurredAt?: string
}
{
  "eventId": "01JD8SVJN5Y1A8BX",
  "channel": "email",
  "target": "chen.lin@example.com",
  "scene": "login",
  "code": "582914",
  "occurredAt": "2026-10-14T18:00:00Z"
}

Examples

{
  "eventId": "01JD8SVJN5Y1A8BX",
  "channel": "email",
  "target": "chen.lin@example.com",
  "scene": "login",
  "code": "582914",
  "occurredAt": "2026-10-14T18:00:00Z"
}

Remarks

流语义:JetStream 持久化、按 eventId 去重、durable consumer 断点续消费;otp_worker 投递后将成功 / 失败 / 重试结果直接写回 OTP 库(不经 NATS 回传)。发布方不等待投递结果——校验只依赖库内的码与工单状态。