IOSOR 知识库

财务导出的 Verify 会话关联:两笔借记,一本账的故事

Verify 与 SMS 投递是两笔独立 prepaid 借记。财务导出需要会话关联 ID,并把 TTL、重发行与投递行对齐,才能对上一本账。

用户要一个码。产品看见一次 OTP。钱包却可能落下两笔:把码送出去的 SMS 投递借记,以及创建、等待、校验的 Verify 会话借记。把它们揉成「一次 OTP 成本」的团队,要么在董事会材料里双计,要么把第二行藏到月底。两者都不是控制。两笔借记需要同一条会话故事,财务才能导出。

IOSOR 在 一本 white-label prepaid 账上同时跑 Verify 与 SMS。目录 live 是真通道;in setup 不是免费会话。月用量接近 USD 1,000+ 时,SMS 行与 Verify 会话行进入更密商务复盘。两笔借记的拆解见 OTP送达借记与验证会话两笔账。无混乱 OTP 运营见 不失控的 OTP 验证。支出停止见 预付费支出控制。

投递借记与 verify 借记

旅程是一次。钱是两笔。相关,但不是别名。投递借记覆盖把码送到目的地的通道:编码、段、目的地、终端 DLR。Verify 会话借记覆盖签发、TTL 窗口、校验、过期或重发策略。财务若只看见 SMS,Verify 看起来「免费」。产品若只看见 Verify,SMS 抽水看起来像「更多会话」。两行都要带着同一个 correlation id 可见。

事件 钱包应显示 合并后的典型失败
码 SMS 已发 段借记、目的地、编码 「一次 OTP」藏起 UCS-2 多段
会话已创建 Verify 借记、TTL、通道 会话看起来像另一条 SMS
用户重发 新 SMS ± 按策略的新会话 冷却被跳过,双烧

财务必须导出的会话 ID 字段

财务导出至少要能按会话拼出:verify_session_id、关联的 message_id 或投递 id、目的地、通道、TTL、终端原因、每行借记金额与时间戳。缺 correlation id 的周导出是收据堆,不是账本。产品仪表盘显示会话成功而 SMS 仍 pending DLR 时,导出必须让两边对得上,而不是各说各的「完成」。把会话 id 写进支持工单与对账表,不要只活在日志里。

重发 TTL 与重复行

重发策略决定会不会多出重复行。冷却挡住会话却仍打出 SMS(或反过来)会让两本账吵架。TTL 到期应闭合同一条 Verify 行,而不是再开一条「幽灵会话」。用户点重发与系统重试是不同主人、不同冷却。导出应把 resend_reason 与 parent_session_id 标出来,财务才不会把合法重发当成重复计费事故。

规模化前的对账

规模化前先做一周对账:创建的会话数对 SMS(或 fallback)尝试数;终端 DLR 对会话终端(已送达+已校验、未送达+已过期、已拒绝+从未校验);用户重发与系统重试分开。尝试远多于会话,说明在群发。会话远多于尝试,说明在没有通道的情况下记 Verify。两者都过不了商务复盘。先在一条 live 走廊证明,再谈接近 USD 1,000+ 的强度。

危险信号

  • 没有 SMS 与会话拆分的混合「OTP 费」
  • Verify 像营销群发一样计费
  • 无策略地退 SMS 却不动会话行(或反过来)
  • 重发按钮忽略两条路径之一的冷却
  • 对客户错误点出上游品牌名
  • 通道仍 in setup 却承诺 Verify
  • 周导出没有 session correlation id

从 IOSOR 开始

从验证控制台导出每周的 CSV 样本,并核实每个 verify_session_id 是否均直接映射到对应的交付 message_id 记录。在推送生产环境更新之前,配置 Webhook 日志以记录会话终端原因以及运营商交付回执。在财务部门成功对照完整七天窗口内的用户主动重发与系统重试扣费之前,请暂停任何流量扩展。

IOSOR 要点

追踪验证成本需要将会话生命周期与底层消息交付扣费分离开来。当财务部门通过单一的混合交付类别(而缺乏会话关联)来查看认证费用时,虚假扣费和未映射的重发成本会污染会计账目。

确保财务导出数据始终包含 verify_session_id、关联的交付 message_id、生存时间窗口、终端状态以及每行的精确扣费明细。切勿允许重发策略在未更新原始会话行或未记录显式关联 ID 的情况下触发交付尝试。

这篇指南有帮助吗?

相关指南