USER JOURNEY · 用户旅程 · 案例 #007
她试了 3 次订阅 · 每次都失败
5 次 invoice_callback 在数据里
她对 Vivi 有明确的付费意愿:10 次 paywall、3 次 plan_subscribe、5 次 invoice_callback、2 次 invoice_open。但plan_purchase_complete = 0,至今 free。这是付费失败漏斗里最痛的一类。
⭐ 0 · 3 次试单全失败5 次 invoice_callback117 条 · Isabella3 150 xp仍活跃 · 5/05 最后
plan_subscribe
3 次
plan_purchase_complete 0 次
invoice_callback
5 次
invoice_open 2 次
Affinity 主角
Isabella3 / 150 xp
最高 affinity 角色
ACT 01 · 入口 · Valentina
她当前 char 是 Valentina · 但深度在 Isabella
current_char_id = valentina(Vivi 的默认入口角色),但她实际跑深度的角色是 Isabella Rivera(118 条 / 150 xp)。这种「默认入口 ≠ 真实归属」的状态在 Vivi 数据里常见 — 默认入口仅作为冷启动,用户进来后会找到自己的角色。
Isabella Rivera118u=59/a=59
Mona Phantom76u=37/a=39
Nina Harris4u=2/a=2
Zara Khan4u=2/a=2
ACT 02 · 付费意愿明确 · 但成单失败
5 次 invoice_callback 全部空响
事件序列里出现了 invoice_open × 2、invoice_callback × 5、plan_subscribe × 3。plan_purchase_complete = 0。她在 Telegram Stars 支付通道上发起了多次,但都没成单。
paywall_shown10
plan_view15
plan_subscribe3
invoice_open2
invoice_callback5
plan_purchase_complete0
🚨 支付漏斗结构性问题
5 次 invoice_callback 但 0 次 purchase_complete =
Telegram Stars 通道在她这里有结构性故障。可能原因:
(1) 客户端 Telegram Stars 不足以支付(balance 问题)
(2) 地区/语言导致 invoice 显示失败
(3) 前端 invoice_callback 收到 status=cancelled 但没记录 cancel 原因
这正是 PR #131 invoice_failure 埋点的目标 — 它就是为这位用户写的。下一步需要核对她 5 次 invoice_callback 的 status payload。
ACT 03 · 仍未走开
Isabella 150 affinity 是她留下的原因
她最后活跃 5/5,距今 8 天。没流失,但也没付钱。她在 Isabella Rivera 身上拿到的 affinity 是 150 xp(次高),这位用户对 Vivi 内容是认可的 — 仅支付链路把她拦在了门外。
复盘 · 这条支付失败教会我们的
4 个对支付链路的发现
1
5 次 invoice_callback / 0 次 complete 必须能在数据里看见原因。当前 Vivi 的 invoice_callback 事件没有携带 status / reason 字段。PR #131 已经加了 invoice_failure 埋点,回填她的 5 次 callback 应该作为该埋点的验证用例。
2
支付失败应触发 fallback 路径。Telegram Stars 支付失败 ≠ 用户没意愿,应自动 fallback 到「gem 包 + alternative payment」或客服 outreach。
3
她的内容偏好已经清晰(Isabella3, 150 xp)但订阅没卖出去。如果我们做「失败 24 小时后的客服跟进」,这位用户大概率会回来。
4
Vivi 应该补「支付失败原因仪表盘」。把 invoice_failure 按 reason 分桶后看分布 — 是 balance / region / 网络 / cancel?这决定我们投开发资源到哪里。
📋 会议讨论清单
- 验证 invoice_failure 埋点:拉这位用户的 5 次 invoice_callback 原始 payload,对照 PR #131 的字段定义查缺漏。
- 失败补救流程:连续 2 次 invoice 失败应该自动推送一条 bot 消息:「支付遇到问题?联系我们 …」+ 5💎 试用礼。
- 跨 channel 退路:评估给 Telegram Stars 失败用户加一条「web link 充值」入口的可行性(合规风险高,先讨论)。
SYSTEM SNAPSHOT · 这条记录在 Vivi 数据库里长什么样
- user_id
tg_48941 (anonymized)
- language
- en
- chat_mode
- sweet
- nsfw_enabled
- 0
- created_at
- 2026-04-15 21:32
- last_active
- 2026-05-05
- subscription
- free
- sub_expires
- —
- total_messages
- 117
- energy / gems
- 10 ⚡ / 15 💎
- first_purchase
- 是
- current_char
valentina
- tx 数
- 132 条
- events 数
- 831 条
- image 任务
- 1 条
- affinity 角色
- 4 位