SuperAPI AI 工具集

rc-alternative-billing

编程与开发

查看项目

更新于 10-15 18:09

技能介绍

用途

该技能用于在规划 Google Play 替代结算(Alternative Billing)相关工作时,明确 RevenueCat Android SDK 当前覆盖哪些部分、哪些部分需要开发者自行基于 Play Billing Library 实现。Google 提供多个允许在标准 Play Store 结算之外收款的程序,本技能帮助区分这些程序与 RevenueCat 自身产品之间的边界。

主要能力

  • 说明 RevenueCat 对 Google 替代结算程序的当前支持状态。资料指出,截至 SDK 9.x,RevenueCat 对这些程序的支持有限,并建议以 RevenueCat 更新日志为准,在开始工作前检查是否有更新的 SDK 版本。
  • 提供分阶段的工作方法:发现(Discovery)、规划(Plan)、执行(Execute)。
  • 列出各流程的 SDK 覆盖情况:RevenueCat Web Billing(通过 Offering.webCheckoutURL / Package.webCheckoutURL)为支持,但不属于 Google 替代结算程序;User Choice Billing、Alternative Billing Only、External Offers、External Payment Links 均无专用 SDK API,需通过 Play Billing Library 与 RevenueCat 并行实现。
  • 提供 RevenueCat Web Billing 的代码示例,以及 Path B 下设置完成归属的配置示例。

使用方式

阶段一:发现

在编写任何代码前回答以下问题:

  • 目标程序是哪一个?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())))
}

用户在网页完成购买后,通过深度链接处理在应用内兑换。

阶段二:规划

在两条路径中选择:

  • Path A:等待 SDK 支持。如果发布计划灵活,可关注 RevenueCat 更新日志和文档,等待所需程序的一等支持。这可避免在 RevenueCat 之外运行原始 Play Billing Library 代码。
  • Path B:自行集成。如果必须立即发布,直接为目标程序实现 Play Billing Library API。RevenueCat SDK 拥有 BillingClient 实例,因此与其并行运行原始 BillingClient 调用需要谨慎处理。

对于 Path B,设置完成归属,使 RevenueCat 不干扰你管理的购买确认:

Purchases.configure(
    PurchasesConfiguration.Builder(context, apiKey)
        .purchasesAreCompletedBy(PurchasesAreCompletedBy.MY_APP)
        .build()
)

规划检查清单:

  • 已在 Play Console 确认 Play 程序与地区资格。
  • 已阅读所发布 SDK 版本的当前 RevenueCat 文档与更新日志。
  • 已选择 Path A 或 Path B 并给出明确理由。
  • 若选 Path B,已确定哪些流程仍由 RevenueCat 驱动、哪些由自己驱动。

阶段三:执行

根据资料,RevenueCat SDK 在该领域的当前支持情况如下:

  • RevenueCat Web Billing(通过 Offering.webCheckoutURL / Package.webCheckoutURL):支持,但不属于 Google 替代结算程序。
  • User Choice Billing:无专用 SDK API,需通过 Play Billing Library 与 RevenueCat 并行实现。
  • Alternative Billing Only:无专用 SDK API,需通过 Play Billing Library 与 RevenueCat 并行实现。
  • External Offers:无专用 SDK API,需通过 Play Billing Library 与 RevenueCat 并行实现。
  • External Payment Links:无专用 SDK API,需通过 Play Billing Library 与 RevenueCat 并行实现。

发布 Path B 时,使用 PurchasesAreCompletedBy.MY_APP,使确认权保留在自己手中,并将标准 Play Store 购买留给 RevenueCat SDK。

验证步骤:

  • 标准 Play Store 购买仍通过 RevenueCat 流转并出现在仪表板中。
  • 通过替代结算路径完成的购买到达后端,并与 RevenueCat 订阅者状态对账。
  • 每笔购买仅确认一次,代码与 SDK 之间无重复处理。

适用场景

适用于使用 RevenueCat Android SDK 10.x 规划 Google Play 替代结算工作的 Android 开发者,尤其是需要判断哪些流程可由 RevenueCat 覆盖、哪些需自行基于 Play Billing Library 实现的场景。

限制

资料明确说明 RevenueCat 对这些程序的支持有限(截至 SDK 9.x),且支持情况随版本演进,需查阅最新更新日志。各替代结算程序的资格由 Google 按国家和应用类别限制,需通过 Play Console 注册。RevenueCat Web Billing 与 Google 替代结算程序是不同产品,不应混淆。资料未提供具体价格、收费或效果信息。