用途:这是 RevenueCat Android SDK(10.x)的入门导向技能,应在编写任何 RevenueCat 代码之前使用,帮助建立词汇与心智模型,使后续的安装、配置、购买流程、权益等技能更易理解。适合初次接触 RevenueCat、从原生 Play Billing 迁移、不清楚概念与后台对象对应关系,或需要判断该调用哪个下游技能的场景;若已了解 Offering、Package、Product、Entitlement 的区别并知道 Purchases.sharedInstance 是唯一入口,可跳过。
主要能力:说明 RevenueCat 将原生 Android 内购的三套系统(客户端 BillingClient、服务端 Google Play Developer API、经 Cloud Pub/Sub 的实时开发者通知)合并为一个 SDK 加一个后台。调用路径为:应用 -> Purchases SDK -> RevenueCat 后端 -> Google Play Developer API -> Google Play。应用与 SDK 通信,SDK 与 Google Play 交互购买界面并与 RevenueCat 后端做校验和权益存储;服务端代码与 RevenueCat 后端通信而非直接对接 Google Play。
核心概念:Product 在 Google Play Console 定义;Package 是带类型标签(Monthly、Annual、Lifetime、自定义)的 Product,是付费墙展示单元;Offering 是 Package 的分组,其中一个标记为 Current 并由 offerings.current 返回;Entitlement 是应用检查的逻辑访问级别,如 pro_access,Product 挂接到 Entitlement。CustomerInfo 是用户购买历史与有效权益的运行时快照,由 RevenueCat 计算并缓存。
使用方式:常用读取为 Purchases.sharedInstance.awaitOfferings() 与 Purchases.sharedInstance.awaitCustomerInfo(),通过 customerInfo.entitlements["pro_access"]?.isActive == true 判断权益;isActive 已在服务端解析 Play 的七种订阅状态(ACTIVE、IN_GRACE_PERIOD、ON_HOLD、PAUSED、CANCELED、EXPIRED、PENDING),无需在客户端重写。Purchases.sharedInstance 是唯一入口,在应用启动时用 Purchases.configure(PurchasesConfiguration.Builder(context, "your_api_key").appUserID("optional_user_id").build()) 配置一次,无需像 BillingClient 那样管理连接状态,会自动重连并排队调用。
适用场景与限制:RevenueCat 不替代 Google Play Console(仍需创建产品、基础计划和优惠)、应用 UI(仍需自建付费墙与展示价格)以及你的认证系统(需自带用户 ID 传入 SDK)。代价是卸载了校验复杂度但引入依赖:若 RevenueCat 后端故障,购买校验会受影响。缓解手段有两种且不同:CustomerInfo 磁盘缓存自动始终开启,返回上次已知服务端状态用于权益检查;离线权益仅在显式配置时启用,基于本地 Play Store 购买在设备上计算权益。两者都不能完全替代可达的后端。
后续路由:安装 SDK 与 Gradle 配置用 rc-setup;调用 configure、传 appUserID、设置日志级别与属性用 rc-configuring-the-sdk;获取 Offerings、展示付费墙、发起购买用 rc-purchase-flow;检查权益与监听更新用 revenuecat/entitlements-and-customerinfo;用户识别、别名与登出用 revenuecat/user-identity;恢复购买、跨设备与促销码用 revenuecat/restore-and-recovery;接收服务端事件用 rc-webhooks;生产环境调试购买、收据或权益用 revenuecat/debugging。若目标不匹配任何一项,应继续澄清意图再路由。