Rivya 支付与结账指南
了解 Rivya 套餐和积分包结账、Stripe 成功回跳、/payment 中转页、webhook、账单状态更新,以及购买后去哪里核对。
最近审阅于 2026/04/28
当你需要理解购买套餐或积分包之后 Rivya 会发生什么时,先看这篇支付与结账指南。
Rivya 的支付流程里,最容易让人误会的一点是:
Stripe 那边显示支付成功,并不代表产品这边已经完全结束。
用户真正会感受到“完成”的那一刻,取决于 Rivya 自己有没有把状态同步好。
这条支付链路实际上分三段
更准确的理解方式是把支付拆成三段:
- Rivya 创建支付会话
- 用户完成 Stripe 结账
- Rivya 等待自己的产品状态重新变得可信
第三段,正是 /payment 存在的原因。
支付是从哪里开始的
当前结账主要会从这些地方发起:
- 价格页
/settings/billing/settings/credits
从业务上看,主要有两种购买形态:
- 订阅套餐
- 一次性积分包
虽然它们是不同类型的购买,但在用户体验上,最终都会汇聚到同一条确认路径。
套餐结账和积分包结账很像,但不完全一样
套餐结账是订阅形态。
积分包结账是一次性补充钱包额度的形态。
这个差异很重要,因为支付完成后,Rivya 需要知道自己应该优先刷新的是:
- 订阅状态
- 还是钱包状态
所以同样是从 Stripe 成功回来,最后回到产品内部的位置也可能不同。
/payment 到底为什么存在
/payment 不是传统意义上的收据页。
它更像一条处理中转桥。
它负责做这些事:
- 读取 Stripe 返回的
session_id - 检查产品侧支付记录是否已经确认完成
- 如果还没好,短时间继续轮询
- 只有状态足够可信时,才把用户送回正确页面
所以它本质上更像一条“状态同步页”,而不是一个普通内容页。
从产品角度看,什么时候才算真的支付完成
从用户角度看,Stripe 显示成功,支付好像就结束了。
但从产品角度看,真正完成还要满足这些事:
- 支付记录已经被标记成 paid 或 completed
- 订阅或钱包变化已经在 Rivya 里变得可见
- 用户回到账单页或积分页时,不会先看到旧状态
这也是为什么产品不会在用户一回到站内时,就立刻把人扔回去。
为什么已经有 /payment,webhook 仍然是核心
/payment 并不替代 Stripe webhook。
真正负责更新持久化后台状态的,仍然是 webhook。
/payment 的存在意义,是在用户体验层面等待这件事足够完成,再把用户送回应用内部。
你可以把这两件事拆开理解:
- Stripe 负责钱有没有动
- Rivya 负责产品里有没有真正反映出来
支付之后,用户会被送回哪里
回跳目标是跟着“刚刚变化的东西”走的。
如果买的是订阅套餐,通常会回到账单页。
如果买的是积分包,通常会回到积分页。
这不是视觉层的小设计,而是在对齐用户支付后的真实问题:
- 我的套餐更新了吗?
- 还是我的钱包更新了吗?
超时或失败到底意味着什么
如果 /payment 进入超时或失败状态,并不自动等于“支付丢了”。
很多时候,它只是意味着下面这些情况之一:
- 产品侧支付记录还没真正确认完成
- 当前回跳正在等的状态还没追上来
- 如果现在过早把用户送回去,他看到的仍然会是旧状态
所以超时页其实比“假装成功”更清楚。它至少明确告诉用户:还没确认好的,是产品状态,不一定是付款本身。
支付后最稳的确认顺序
支付结束之后,更稳的检查路径通常是:
- 先让
/payment自己跑完 - 如果买的是套餐,就看
/settings/billing - 如果买的是积分包,就看
/settings/credits - 如果账号状态看起来还是不对,再去 通知中心 看看
这通常比在几个页面里来回刷新猜测更有效。
支付也会变成账号记忆的一部分
支付不只是结账动作,它也会变成账号层的事件记录,比如:
- 订阅开通
- 订阅续费
- 支付失败
- 积分包到账
这也是为什么通知系统在这里仍然重要。关掉 Stripe 标签页,不代表账号层的故事结束了。
一个更好记的理解方式
可以直接这样记:
- Stripe 负责钱的动作
/payment负责把你安全带回产品里的正确页面
把这两层分开理解,整个结账流程就会清楚很多。
下一步建议
结账状态检查清单
当一次购买看起来没有完成或状态混乱时,先判断:
- 先确认 Checkout 从哪里开始:公开价格页、账单设置页,还是积分设置页。
- 检查 Stripe 是否完成支付,并把用户带回 /payment。
- 等 Rivya 刷新订阅、积分包、invoice 和钱包状态后,再启动新的付费任务。
- 订阅问题看 billing,积分包和钱包历史看 credits。
- 不要把浏览器跳转本身当成 webhook 和账号状态已经落定的证明。
重新支付前先复核
如果用户看到旧套餐、积分没到账、重复 Checkout 窗口、支付失败,或 Stripe 已成功但 Rivya 内还没体现,先复核再重试支付。