关于 rc-alternative-billing
面向 Android 开发的技能,说明 RevenueCat SDK 对 Google Play 替代计费计划的覆盖范围,以及开发者需自行实现的部分。它区分 Google 计划与 RevenueCat Web Billing,并介绍混合集成的规划方式。
主要功能
- 01查看各计费计划的 SDK 支持情况
- 02确认地区资格要求
- 03区分 Web Billing 与 Play 计划
- 04规划直接集成 Play Billing
- 05设置购买完成处理方
适用场景
- 01选择计费计划前评估支持情况
- 02规划未支持 Play 计费流程的实现
- 03将 RevenueCat 与直接 Play Billing API 结合
- 04核对购买确认由哪一方处理
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ revenuecat/ ai-toolkit --skill rc-alternative-billing安装后在 Claude Code 中输入/rc-alternative-billing确认已加载。
详细介绍
替代结算计划
Google 提供了多个计划,让你可以在标准 Play Store 结算流程之外收款。本指南介绍了 RevenueCat Android SDK 目前支持哪些部分,以及哪些部分需要你自行通过 Play Billing Library 实现。
根据手册章节,截至 SDK 9.x,RevenueCat 对这些计划的支持有限。请以此为准;开始开发前,请查看 RevenueCat 更新日志,确认是否有更新的 SDK 版本。
第 1 阶段:调研
编写任何代码前,请先回答以下问题。
| 问题 | 重要性 |
|---|---|
| 你要采用哪个计划? | User Choice Billing、Alternative Billing Only、External Offers 和 External Payment Links 的 Play 要求各不相同。 |
| 你的应用在目标地区是否符合资格? | Google 会根据国家/地区和应用类别限制这些计划。你需要通过 Play Console 注册,而不是通过 RevenueCat。 |
| 你是否要改用 RevenueCat Web Billing? | RevenueCat 的网页结账是独立于 Google 替代结算计划的产品。请勿将两者混为一谈。 |
| 你使用的是哪个版本的 RevenueCat SDK? | 支持情况会随版本更新。SDK 9.x 中不支持的功能,之后可能会加入。 |
如果你实际上想通过 RevenueCat 托管的网页结账销售订阅,这不属于 Google 的替代结算计划。请使用 Offering.webCheckoutURL 或 Package.webCheckoutURL:
val pkg = offerings.current?.monthly
pkg?.webCheckoutURL?.let { url ->
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(url.toString())))
}
用户在网页上完成购买后,可通过深层链接处理在应用内兑换。
第 2 阶段:规划
决定以下两种路径中哪一种适合你。
路径 A:等待 SDK 支持。 如果你的发布计划较灵活,请关注 RevenueCat 更新日志和文档,了解所需计划何时获得一流支持。这样可以避免在 RevenueCat 之外同时运行原生 Play Billing Library 代码。
路径 B:自行实现集成。 如果必须立即发布,请直接通过 Play Billing Library API 实现目标计划。RevenueCat SDK 拥有 BillingClient 实例,因此与其并行运行原生 BillingClient 调用时需要谨慎处理。
对于路径 B,请设置完成操作的所有权,避免 RevenueCat 干扰你所管理购买的确认:
Purchases.configure(
PurchasesConfiguration.Builder(context, apiKey)
.purchasesAreCompletedBy(PurchasesAreCompletedBy.MY_APP)
.build()
)
规划清单:
- 已在 Play Console 中确认 Play 计划及目标地区的资格。
- 已阅读当前 RevenueCat 文档和更新日志,了解所发布 SDK 版本的情况。
- 已明确选择路径 A 或路径 B,并说明原因。
- 如果选择路径 B,已确定哪些流程仍由 RevenueCat 驱动,哪些由你驱动。
第 3 阶段:执行
根据该章节,RevenueCat SDK 目前对这类流程的支持情况如下:
| 流程 | SDK 支持情况 |
|---|---|
通过 Offering.webCheckoutURL / Package.webCheckoutURL 使用 RevenueCat Web Billing | 支持。这不属于 Google 的替代结算计划。 |
| User Choice Billing | 没有专用 SDK API。请在 RevenueCat 之外通过 Play Billing Library 实现。 |
| Alternative Billing Only | 没有专用 SDK API。请在 RevenueCat 之外通过 Play Billing Library 实现。 |
| External Offers | 没有专用 SDK API。请在 RevenueCat 之外通过 Play Billing Library 实现。 |
| External Payment Links | 没有专用 SDK API。请在 RevenueCat 之外通过 Play Billing Library 实现。 |
发布路径 B 时,请使用 PurchasesAreCompletedBy.MY_APP,以便你掌控所管理购买的确认;标准 Play Store 购买则继续交由 RevenueCat SDK 处理。
验证步骤:
- 标准 Play Store 购买仍通过 RevenueCat 处理,并显示在控制面板中。
- 通过替代结算路径完成的购买已到达你的后端,并与 RevenueCat 订阅者状态同步。
- 每笔购买恰好确认一次,你的代码与 SDK 不会重复处理。
参考资料
-
RevenueCat 文档:https://www.revenuecat.com/docs/
-
RevenueCat Codelabs:https://revenuecat.github.io/