SuperAPI AI 工具集

revenuecat-purchase-flow

通用与其它

查看项目

更新于 10-16 07:58

技能介绍

用途:实现 RevenueCat 的购买与恢复购买部分,包括获取 offerings、调用 purchase、处理用户取消与报错,并提供“Restore”恢复操作。不涉及 paywall 界面渲染(见 revenuecat-paywall)与功能门控(见 revenuecat-entitlements-gate)。

主要能力:按平台给出完整的购买函数与恢复函数。先检测平台:React Native 看 package.json 中的 react-native-purchases 或 react-native 依赖;Flutter 看 pubspec.yaml;Kotlin Multiplatform 看 build.gradle.kts 的 kotlin{} 多平台源集或 com.revenuecat.purchases:purchases-kmp 依赖;Android 原生看 com.android.application 且非 KMP;iOS 原生看 Package.swift、.xcodeproj、.xcworkspace 或 Podfile。多个匹配时取拥有构建的最外层项目,仍不明确则询问用户。

用法:调用 getOfferings(),从当前 offering 选一个 Package,调用 purchase(package);成功后返回的 customerInfo 已含购买结果,读取 customerInfo.entitlements.active["<id>"] 确认权限。用户取消不算应用错误,各 SDK 表现不同(iOS 抛 purchaseCancelledError;Android 抛 PurchasesException 且 PurchasesErrorCode.PurchaseCancelledError;Flutter 为同码的 PlatformException;React Native 置 e.userCancelled === true),此时静默返回、不弹提示。

限制与注意:不要购买回调里解锁内容,应刷新 customer info 由权限监听翻转门控界面,保持单一数据源。restorePurchases() 是用户操作,须暴露为可见按钮(iOS 法规要求),从商店取当前票据并同步到 RevenueCat。同一时刻只允许一笔购买,进行中禁用购买按钮以防重复扣费。仅对支付被拒、网络错误、商店不可用、票据已被使用等展示提示,其余记录日志让用户重试;购买失败不得静默成功。验证需通过沙盒购买成功、取消不弹错不卡加载、重复购买不崩溃、新装恢复按钮可恢复权限。各平台文件具体代码资料未逐条列出。