RevenueCat Customer Center 是一个开箱即用的界面,让客户管理其活跃订阅、申请退款、取消、恢复购买或联系客服,而无需自行开发自定义 UI。该界面在 RevenueCat 仪表盘中配置,由 RevenueCatUI SDK 渲染。
【前提条件】 需要先运行 integrate-revenuecat。在 Customer Center 能够加载客户数据之前,Purchases.configure(…) 必须成功。
【平台检测】 检查工作目录并从上到下选择第一个匹配项:
- React Native:package.json 中有 react-native-purchases 条目,或依赖中有 react-native。Customer Center 随 react-native-purchases-ui 提供。阅读 platforms/react-native.md。如果同时也依赖 expo,则标记为 Expo 项目。
- Flutter:项目根目录存在 pubspec.yaml。Customer Center 随 purchases_ui_flutter 提供。阅读 platforms/flutter.md。
- Kotlin Multiplatform:build.gradle.kts 中有 kotlin { … } multiplatform 块,或依赖 com.revenuecat.purchases:purchases-kmp*。Customer Center composable 位于 purchases-kmp-ui 中。阅读 platforms/kmp.md。
- Android(原生):build.gradle(.kts) 应用了 com.android.application(且不是 KMP)。Customer Center composable 位于 com.revenuecat.purchases:purchases-ui 中。阅读 platforms/android.md。
- iOS(原生):项目根目录存在 Package.swift、.xcodeproj、.xcworkspace 或 Podfile。CustomerCenterView 位于 RevenueCatUI 中。阅读 platforms/ios.md。 如果多项匹配(例如 Flutter 项目中有 ios/ 文件夹),选择最外层的、拥有构建的那个项目。若仍不明确,询问用户想要配置哪个平台。
【跨平台共享概念】 Customer Center 是仪表盘配置的 UI。操作、文案、促销优惠、退款流程、取消调查选项以及支持联系方式均在 RevenueCat 仪表盘的 Customer Center 下定义。若未配置,视图将渲染极简的默认布局,用户几乎看不到有用的内容。
它需要一个已识别且拥有购买记录的用户才能显示有意义的内容。如果用户是匿名且从未购买过任何东西,Customer Center 会渲染为空 / 仅恢复状态。如果应用支持登录,请在打开 Customer Center 之前调用 Purchases.logIn(userId)。
Customer Center 与 paywall 是分开的。标准模式:在设置界面暴露一行“管理订阅”,用于打开 Customer Center。Paywall 用于新购买;Customer Center 用于现有订阅者。
UI 拥有整个流程。恢复、取消、退款和促销优惠流程均在组件内部运行。监听生命周期回调(onRestoreCompleted、onRefundRequestStarted、onManagementOptionSelected、onPromotionalOfferSucceeded 等)以便在应用代码中响应,而不是驱动流程。
平台可用性存在差异。iOS 支持 Customer Center 时间最长;Android、KMP、Flutter 和 React Native 随后跟进。平台文件会标注任何差异。退款请求是仅限 iOS 的操作,因为只有 Apple 提供应用内退款请求;在 Android 上,“管理订阅”选项会链接到 Google Play 订阅界面。
如果已安装的 SDK 版本早于 Customer Center 支持,回退方案是手动订阅管理界面:从 Purchases.customerInfo() 显示用户活跃权益,暴露 Purchases.restorePurchases() 按钮,并链接到商店的订阅管理 URL。如果用户想要完整的 Customer Center,请引导其升级 SDK。
【实现】 阅读与检测匹配的平台文件:platforms/ios.md、platforms/android.md、platforms/kmp.md、platforms/flutter.md、platforms/react-native.md。每个平台文件都是自包含的:安装命令、呈现 Customer Center 的确切代码片段以及回调形状。
【验证】 在以下条件满足之前,不要声明集成已完成:
- 项目在目标平台上构建成功。
- 使用至少有一个活跃沙盒订阅的测试用户登录应用。触发打开 Customer Center 的代码路径。UI 加载,订阅出现在列表中。
- 至少一个已配置操作端到端运行。最简单的检查:点击“恢复购买”,确认恢复完成回调触发,且 customerInfo.entitlements.active 映射非空。若仪表盘配置了取消 / 退款 / 支持操作,验证用户点击时对应回调(onManagementOptionSelected、onRefundRequestStarted 等)触发。
- 关闭 Customer Center 会触发 onDismiss 回调。 如果 Customer Center 打开但为空,则已登录用户没有购买记录,或仪表盘的 Customer Center 部分未配置。请在仪表盘中修复,重新加载并重试。
【限制】 各平台的 SDK 版本支持情况不同,较早版本可能不支持 Customer Center;退款请求目前仅 iOS 支持。该技能本身不提供定价、收费等信息。