SuperAPI AI 工具集

rc-price-changes

编程与开发

查看项目

更新于 10-15 18:08

技能介绍

用途

rc-price-changes 用于在 Android 上为现有订阅产品推出新价格时,让 RevenueCat 代为管理用户分组与同意流程。适用于需要调整订阅价格、又希望减少客户端改动和人工处理同意逻辑的场景。

主要能力

Google Play 对活跃订阅者支持两类价格变更:

  • Opt out 变更:通常是降价,或涨幅在 Google 的 opt out 阈值内。新价格在下次续订时自动生效,无需用户操作。
  • Opt in 变更:较大幅度涨价。Google 会显示自己的应用内同意对话框。用户同意则继续按新价订阅;拒绝则订阅在当期结束时取消。

RevenueCat 在后端处理 SUBSCRIPTION_PRICE_CHANGE_UPDATED 及相关 RTDN,并在订阅者的分组或同意状态变化时更新 CustomerInfo。应用读取权益的方式保持不变。对于大多数价格变更场景,应用或后端无需实现任何内容。

使用方式

第一阶段:理解

先判断适用哪条路径:

问题 Opt out Opt in
典型触发 降价,或 Google 阈值内的小幅涨价 超过 Google 阈值的大幅涨价
用户同意 不需要 需要,由 Google Play UI 提示
用户拒绝时 不适用 订阅在当期结束时取消,触发 CANCELLATION webhook
新价格生效 下次续订时自动生效 用户在 Play 对话框同意后
RevenueCat 消费的 RTDN SUBSCRIPTION_PRICE_CHANGE_UPDATED SUBSCRIPTION_PRICE_CHANGE_UPDATED,若拒绝则随后 SUBSCRIPTION_CANCELED
应用代码改动 无需 无需
付费墙价格来源 pkg.product.price.formatted(仅新购买) pkg.product.price.formatted(仅新购买)

执行前需回答的问题:

  • 变更是降价、小幅涨价还是大幅涨价?这决定 opt out 还是 opt in。
  • 是否希望在变更生效前于应用内通知现有订阅者?这是可选项,由 webhook 或 Targeting 规则驱动,并非必需。
  • 当前存在哪些旧分组?现有订阅者会继续按旧价付费,直到 Google 迁移他们。这属于 Google Play 的关注点,在 SDK 中不可见。

第二阶段:执行

大部分工作在 Play Console 和 RevenueCat 后台完成,应用保持不变。

  1. 在 Play Console 更新价格:打开订阅,选择基础方案,编辑价格。Google 会根据变更幅度和地区提示你选择如何对待现有订阅者(opt out 或 opt in)。

  2. 让 RevenueCat 接收变更:RevenueCat 自动处理来自 Google 的 RTDN。价格变更本身无需在 RevenueCat 后台切换任何开关。在 Google 传播后,确认更新后的产品价格出现在 RevenueCat 后台的产品上。

  3. 在客户端刷新 offerings(可选):若希望付费墙立即向新购买者显示新价格,在 Play Console 变更传播后刷新 offerings。SDK 调用不变:

val offerings = Purchases.sharedInstance.awaitOfferings()
val pkg = offerings.current?.availablePackages?.firstOrNull() ?: return
val displayPrice = pkg.product.price.formatted

旧分组订阅者继续按旧价付费,直到 Google 迁移他们。pkg.product.price.formatted 对新购买始终正确。

  1. 在同意结果确定时观察 CustomerInfo:对于 opt in 涨价,RevenueCat 在同意结果已知时更新 CustomerInfo。按常规方式读取权益:
val info = Purchases.sharedInstance.awaitCustomerInfo()
val isPro = info.entitlements["pro"]?.isActive == true

不要自行构建同意对话框,Google Play 会显示它。

  1. 如需处理拒绝,通过 webhook:若用户拒绝 opt in 涨价,订阅在当期结束时取消。RevenueCat 触发 CANCELLATION webhook 事件。在服务端按处理其他取消的方式处理它。

  2. 可选:通知受影响用户:若希望在 Google 对话框出现前提醒订阅者即将涨价,可由 RevenueCat webhook 事件驱动应用内横幅,或用 Targeting 规则向受影响分组展示特定 Offering。这是增强项,不属于价格变更契约的一部分。

适用场景

  • 在 Android 上调整现有订阅产品价格,并希望由 RevenueCat 处理分组与同意流程。
  • 需要区分 opt out 与 opt in 两类变更并了解各自后果。
  • 希望在不改动应用代码的前提下完成价格变更。

限制

  • 主要面向 Android 平台与 Google Play。
  • 旧分组订阅者继续按旧价付费,直到 Google 迁移,这属于 Google Play 的关注点,在 SDK 中不可见。
  • 同意对话框由 Google Play 显示,不应自行构建。
  • 应用内提前通知属于可选增强,不属于价格变更契约的一部分。
  • 资料未提供收费、价格、平台支持范围等更多信息。