mcpField
R
rc-revenuecat-vs-raw-billing

rc-revenuecat-vs-raw-billing

github.com/revenuecat开发76622 次安装1 天前更新
代码仓库

关于 rc-revenuecat-vs-raw-billing

供 Android 开发者评估 RevenueCat 与直接集成 Google Play Billing Library 的决策指南。它对比客户端和服务端职责,并指出无论选择哪种方案,仍需由应用团队负责的事项。

主要功能

  1. 01对比客户端账单处理工作
  2. 02对比购买后端职责
  3. 03识别两种方案共同的自有事项
  4. 04评估需要直接使用 PBL 的情况
  5. 05按需求梳理决策依据

适用场景

  1. 01选择订阅集成方案
  2. 02估算购买处理的后端工作
  3. 03评估是否保留直接 PBL 调用
  4. 04检查 RevenueCat 未覆盖的职责

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/revenuecat/ai-toolkit --skill rc-revenuecat-vs-raw-billing

安装后在 Claude Code 中输入/rc-revenuecat-vs-raw-billing确认已加载。

详细介绍

RevenueCat 与原始 Google Play Billing

阶段 0:意图

当你需要在集成 RevenueCat 和直接接入 Google Play Billing Library(PBL)之间做选择,并想了解哪些事项会因此免除、哪些事项会转移,以及哪些事项仍由你的团队负责时,请使用此技能。此决策涵盖 Android 客户端,以及支持订阅或一次性购买的任何服务端基础设施。

此技能通常解答以下问题:

  • 如果采用 RevenueCat,我的应用中哪些客户端代码可以不再编写?
  • RevenueCat 会替代哪些后端部分(收据验证、RTDN、状态机)?
  • 无论选择哪种方案,哪些事项仍由我负责?
  • 目前是否有只有原始 PBL 才能处理的事项?

阶段 1:定位事项

在阅读表格之前,先确定你实际要评估的内容。将需求归入以下类别之一,并跳转到相应部分:

类别示例前往
客户端购买处理BillingClient、监听器、确认、消耗客户端表格
服务端购买状态令牌验证、RTDN、权益状态机服务端表格
两者均不涉及身份验证、你的用户数据库、付费墙 UI、推送你的责任表格

如果某项工作涉及多个方面(例如 RevenueCat 验证令牌,但你仍需在 API 上限制高级内容的访问),那么即使验证本身已有人处理,集成衔接工作仍由你负责。

阶段 2:对照参考

客户端
事项原始 PBLRevenueCat
BillingClient 设置和配置由你编写内部处理
连接生命周期和重新连接由你编写内部处理
PurchasesUpdatedListener由你编写由购买回调替代
queryProductDetailsAsync()由你编写由 awaitOfferings() / awaitGetProducts() 替代
launchBillingFlow()由你编写在 awaitPurchase() 内部调用
购买后确认由你编写自动处理
消耗型商品的消耗由你编写自动处理(在控制面板中将商品标记为消耗型)
启动时调用 queryPurchasesAsync()由你编写连接时内部处理
瞬时错误的重试逻辑由你编写由 SDK 内部处理
BillingResponseCode 处理由你编写抽象为 PurchasesErrorCode
应用内支付恢复消息由你编写自动处理(showInAppMessagesAutomatically = true)
优惠的订阅选项选择由你编写自动选择 defaultOption
服务端
事项原始 PBLRevenueCat
Google Play Developer API 集成由你构建RevenueCat 后端
服务账号凭据管理由你管理在 RC 控制面板中配置一次
每次购买时验证收据由你构建自动处理
购买令牌验证和去重由你构建RevenueCat 后端
linkedPurchaseToken 链遍历由你构建RevenueCat 后端
RTDN 处理和分发由你构建RevenueCat 负责处理并发送 Webhook
Cloud Pub/Sub 设置由你设置无需设置
后端订阅状态机由你构建由 RC 计算 CustomerInfo
跨 7 种状态计算权益由你构建由 RC 计算 isActive
宽限期 / 账号保留跟踪由你构建billingIssueDetectedAt
取消后访问权限持续至到期的逻辑由你构建isActive + unsubscribeDetectedAt
价格群组跟踪由你构建由 RC 后端处理
商品到权益的映射由你构建在 RC 控制面板中配置
无论选择哪种方案,以下事项仍由你负责
事项说明
用户身份验证系统由你提供;将用户 ID 传给 RC
自有用户数据库RC 不是你的主要用户数据库
服务端高级内容通过 RC REST API 或 Webhook 验证
Webhook 接收端点由你构建;RC 发送,你接收
Play Console 产品创建仍需在 Play Console 中完成
订阅延期直接调用 Google Play API
订阅撤销直接调用 Google Play API
替代计费计划RC 支持有限;可能需要使用原始 PBL
应用 UI(付费墙、引导流程)由你构建(RC Paywalls UI 可选)
针对支付问题的推送通知基于 Webhook 事件由你构建

第 3 阶段:推荐判定规则

使用以下规则,根据表格做出决策:

  1. 如果你的应用需要订阅延期、订阅撤销,或 RevenueCat 尚未支持的替代计费计划,请计划为这些特定调用保留原始 PBL 路径,无论你的主要选择是什么。
  2. 如果你原本需要从头构建收据验证服务、RTDN 管道和订阅状态机,那么服务端表格至少列出了 RevenueCat 可以免除的八项工作。除非你有明确理由要自行负责这套体系,否则请选择 RevenueCat。
  3. 如果你已经有成熟的计费后端,并且已验证令牌、测试过状态处理,那么收益会小一些。请将其与 RevenueCat 在客户端的简化功能和由控制面板驱动的产品目录进行权衡。
  4. 务必确认“仍由你负责”表格中的事项都有人负责。RevenueCat 不会替代你的身份验证、用户数据库、付费墙 UI 或高级内容访问控制。传递 appUserID,并通过 REST API 或 Webhook 在服务端验证权益,仍然是你的责任。
  5. 如有疑问,请将每项需求映射到三个表格中的某一行。落在“仍由你负责”表格中的事项,无论选择哪种方案,成本都相同,因此不应影响决策。

快速判断:

need custom RTDN pipeline?      -> raw PBL only if you must own it end to end
need deferral or revocation?    -> keep a raw PBL path for those API calls
need fast time to production?   -> RevenueCat, then add raw PBL escape hatches later

参考资料

评论

支持 Markdown