03 · Monetization

商业化体系

Vivi 的钱从哪来:四档订阅 + Gems 商店 + 礼物 + Your Character。所有付款走 Telegram Stars,钱在 Telegram 平台,不经过我们的银行账户。这一页讲清楚定价、机制、付费漏斗的关键节点,PM/运营/客服都该读完。

商业化逻辑总览

计费 v2(2026-04-01 上线)将原本"买💎→买订阅"的两步路径改为"⭐直购会员"一步。当前主要营收渠道:

会员订阅(4 档)

所有订阅在前端 #/plan 页展示,⭐ 直接付款激活,会员期内不消耗能量:

Basic
99 ⭐
2 天
+20 💎 赠
Plus
229 ⭐
1 个月
+30 💎 赠
Ultra
1659 ⭐
1 年
+210 💎 赠

定价对标 Lucid 等 Telegram 头部竞品。Pro 三月档默认选中、UI 上标 popular。订阅信息存 users.subscription_expires,过期后回退到能量模式。

Gems 钻石商店(6 档)

#/store 进入或聊天页内点💎图标。最低门槛 29⭐ 入门档(2026-04 新增):

20 💎
29 ⭐
入门
80 💎
119 ⭐
BEST OFFER
210 💎
319 ⭐
推荐
540 💎
779 ⭐
1360 💎
1949 ⭐
3000 💎
4129 ⭐
超大

定义在 app/api/routes.pyGEM_PACKAGES 常量。改价格直接改这里 → 推 main → 自动部署。

首充翻倍

用户首次购买任意 Telegram Stars 商品(订阅 / Gems)会自动双倍发放💎,Bot 主动发消息告知。机制:

能量与签到(免费用户漏斗节流)

详细机制见 Product 篇,简短回顾:

⚠️ 历史变更:"前 20 条免费"已在 #76 移除(2026-04),现在统一是"前 10 条免费 + 每日 10⚡"。改测试断言时注意。

Telegram Stars 支付完整流程

钱不经过我们的银行账户 —— 全部走 Telegram Stars,钱在 Telegram 平台。提现需通过 Telegram 后台。

  1. 用户点击订阅档位 前端 plan_subscribegems_purchase_click 埋点 → POST /api/store/create-invoicepackage_id
  2. 后端创建 invoice 调 Telegram Bot API createInvoiceLink(带 currency=XTR、amount=stars、payload=user_id|package_id)→ 返回 invoice URL。
  3. 前端 openInvoice tg.openInvoice(url, callback) 唤起 Telegram 内置支付 UI。callback 必须埋 invoice_callback 事件,状态 paid / cancelled / failed,让 PostHog 能看到取消率。
  4. Telegram 推 successful_payment 支付成功后 Telegram 推 update 到 /webhookhandlers.py 收到 successful_payment
  5. 幂等入账 telegram_payment_charge_id 唯一约束防重复入账;加💎或激活订阅 + 首充翻倍逻辑;写 transactions 表。
  6. Bot 发确认消息 用户在 Telegram 收到"购买成功,你已获得 XX 💎 / Pro 已激活"消息。
⚠️ invoice_callback 去重:同一笔支付 Telegram 会在 client 多次回调(重连、重试),必须去重,否则 PostHog 上付费转化漏斗会虚高。已修过(#103)。

退款流程(必看)

用户找客服要退款时,不能直接打回银行卡 / 微信,因为钱从未经过我们这。流程:

  1. 客服记录用户 TG ID + 订单时间 + 退款理由
  2. PM 在 Bot 后台用 Telegram Bot API refundStarPayment 发起退款(需要 charge_id)
  3. Telegram 在用户 Stars 余额里加回;如果该 Stars 是用户充值买来的,可由用户自己再去申请提现
  4. 退款后必须手动从 users 扣回赠送的💎 / 取消订阅状态
  5. 记录到运营日志(Lark 群通报)

付费漏斗(PostHog 可查)

PM 关注的核心漏斗,每个节点都有埋点:

1
用户激活 Mini Appapp_open / onboarding_complete
app_open
2
触达付费墙能量耗尽 popup 弹出
paywall_shown
3
点击订阅 / Gems 档位选档行为
plan_subscribe / gems_purchase_click
4
完成支付Telegram successful_payment webhook
invoice_callback (paid)
5
回流二次付费同一用户多次成功付费
repeat_purchase

PostHog Project ID 377981。每个事件都有 char_name(识别哪个角色带来转化)。禁止事件里上传消息内容字段(NSFW 合规),只传 message_length / message_index 等元数据。

Your Character(差异化付费)

角色列表第 3 位的"自定义角色"卡片,点击扣 99💎 → 用户输入想见的角色名 → LLM 现编人设 → 进入聊天。

Premium 锁定角色(已下线)

历史上锁过 9 个奇幻类角色(Seraphina / Kiera Thorne / Lysandra Velaris 等),仅订阅用户可访问。当前 characters.json 里没有任何 premium: true,相当于全部解锁。这是产品策略变化(先给体验、后做付费转化)。

NSFW 与定价的关系

NSFW 是核心付费驱动力。用户为体验"非审查 RP + 露骨生图"付费的意愿显著高于普通陪伴。但 NSFW 内容在埋点 / 模型选型 / 数据流转都有合规约束 —— 详见 06 · Lessons

每日营收速查

Admin Dashboard 查 7 日营收:

← 上一篇
02 · 产品形态与角色体系