mcpField
R
revenuecat

revenuecat

github.com/rawveg开发40283 次安装37 周前更新
代码仓库

关于 revenuecat

revenuecat 是帮助开发者在应用中实现订阅和应用内购买的技能,面向 iOS、Android、Flutter 和 React Native 等项目。内容覆盖 SDK 配置、购买流程、权益检查及服务端 API 使用。

主要功能

  1. 01多平台 SDK 初始化
  2. 02订阅及应用内购买流程
  3. 03权益与客户信息检查
  4. 04Offerings 与产品获取
  5. 05恢复购买及 REST API

适用场景

  1. 01在移动应用中接入订阅
  2. 02依据权益控制高级内容访问
  3. 03展示远程配置的商品选项
  4. 04处理恢复购买与服务端校验

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/rawveg/skillsforge-marketplace --skill revenuecat

安装后在 Claude Code 中输入/revenuecat确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

plugin.json
references/
index.md
other.md

详细介绍

RevenueCat 技能

为在 iOS、Android、Flutter、React Native 和 Web 平台上使用 RevenueCat 实现应用内订阅和购买提供专业指导。

何时使用此技能

在以下情况应触发此技能:

  • SDK 设置:在 iOS、Android、Flutter 或 React Native 应用中初始化 RevenueCat SDK
  • 订阅实现:添加订阅或应用内购买功能
  • 权益检查:验证用户是否有权访问高级功能或内容
  • 购买流程:实现购买按钮、处理交易或完成购买
  • 恢复购买:为更换设备的用户添加恢复功能
  • 产品套餐/产品:获取并展示订阅选项或产品目录
  • 付费墙设计:构建或配置付费墙和购买页面
  • 客户信息:获取订阅状态或客户数据
  • 购买问题调试:排查订阅问题或交易失败
  • REST API 集成:在服务端验证订阅或处理 Webhook

快速参考

SDK 配置

Swift(iOS)

import RevenueCat

Purchases.logLevel = .debug
Purchases.configure(withAPIKey: "your_public_api_key", appUserID: "user_123")

Kotlin(Android)

Purchases.logLevel = LogLevel.DEBUG
Purchases.configure(PurchasesConfiguration.Builder(this, "your_public_api_key").build())

Flutter

await Purchases.setLogLevel(LogLevel.debug);
PurchasesConfiguration configuration = PurchasesConfiguration("your_public_api_key");
await Purchases.configure(configuration);

React Native

Purchases.setLogLevel(Purchases.LOG_LEVEL.DEBUG);
Purchases.configure({ apiKey: "your_public_api_key" });
检查权益

Swift

let customerInfo = try await Purchases.shared.customerInfo()
if customerInfo.entitlements["pro"]?.isActive == true {
    // User has premium access
}

Kotlin

Purchases.sharedInstance.getCustomerInfoWith(
    onSuccess = { customerInfo ->
        if (customerInfo.entitlements["pro"]?.isActive == true) {
            // User has premium access
        }
    }
)

React Native

const customerInfo = await Purchases.getCustomerInfo();
if (customerInfo.entitlements.active["pro"] !== undefined) {
    // User has premium access
}
获取产品套餐

Swift

Purchases.shared.getOfferings { (offerings, error) in
    if let packages = offerings?.current?.availablePackages {
        self.display(packages)
    }
}

Kotlin

Purchases.sharedInstance.getOfferingsWith({ error -> }) { offerings ->
    offerings.current?.availablePackages?.let { packages ->
        // Display packages
    }
}
进行购买

Swift

Purchases.shared.purchase(package: package) { (transaction, customerInfo, error, userCancelled) in
    if customerInfo.entitlements["pro"]?.isActive == true {
        // Unlock premium content
    }
}

Kotlin

Purchases.sharedInstance.purchase(
    packageToPurchase = aPackage,
    onError = { error, userCancelled -> },
    onSuccess = { storeTransaction, customerInfo ->
        if (customerInfo.entitlements["pro"]?.isActive == true) {
            // Unlock premium content
        }
    }
)
恢复购买

Swift

Purchases.shared.restorePurchases { customerInfo, error in
    // Check customerInfo to see if entitlement is now active
}

Kotlin

Purchases.sharedInstance.restorePurchases(
    onError = { error -> },
    onSuccess = { customerInfo ->
        // Check customerInfo to see if entitlement is now active
    }
)
REST API - 获取客户信息
curl --request GET \
  --url https://api.revenuecat.com/v1/subscribers/app_user_id \
  --header 'Authorization: Bearer PUBLIC_API_KEY'

核心概念

权益

用户有权使用的一系列访问权限、功能或内容。大多数应用使用单个权益(例如 “pro”)。在 RevenueCat 控制面板中创建,并关联到产品。购买产品后,其关联权益即会生效。

产品套餐

提供给用户的一组产品。在控制面板中远程配置,因此无需更新应用即可更改可用产品。通过 offerings.current 访问默认产品套餐。

套餐

产品套餐中的产品容器。包含 .monthly、.annual、.lifetime 等便捷访问器。每个套餐都包含一个提供定价详情的 storeProduct。

客户信息

包含用户所有订阅和购买数据的核心对象。可通过 getCustomerInfo() 获取,或在购买后由其返回。包含用于访问权限检查的 entitlements 字典。

应用用户 ID

每位用户的唯一标识符。可在配置时提供,也可自动生成为匿名 ID。用于跨设备同步购买记录。

参考文件

此技能在 references/ 中包含完整文档:

  • other.md - RevenueCat 通用文档和概览

如需了解快速参考之外的详细实现模式,请参阅官方文档:https://www.revenuecat.com/docs/

使用此技能

初学者
  1. 先在应用的初始化代码中配置 SDK
  2. 在 RevenueCat 控制面板中创建权益和产品套餐
  3. 在展示高级内容前实现简单的权益检查
  4. 使用 purchase(package:) 添加购买按钮
  5. 添加“恢复购买”按钮,以符合 App Store 要求
中级用户
  • 获取产品套餐并展示其中的套餐,以实现动态付费墙
  • 处理多个权益,以实现分级访问权限
  • 设置客户信息监听器,以实时接收订阅更新
  • 使用 REST API 在服务端验证订阅
高级用户
  • 配置 Webhook 以在服务端处理事件
  • 通过不同的产品套餐实现 A/B 测试
  • 设置与分析和归因平台的集成
  • 处理宽限期和账单重试等边界情况

常见模式

付费墙显示逻辑
// Show paywall only if user doesn't have active subscription
if customerInfo.entitlements["pro"]?.isActive != true {
    showPaywall()
}
有条件的产品套餐
if user.isPaidDownload {
    packages = offerings?.offering(identifier: "paid_download_offer")?.availablePackages
} else {
    packages = offerings?.current?.availablePackages
}

重要说明

  • 始终在应用生命周期的早期初始化 SDK
  • 开发期间使用调试日志(Purchases.logLevel = .debug)
  • SDK 会自动完成/确认交易
  • 仅在用户交互时调用 restorePurchases(例如点击按钮)
  • 使用 Project Settings 中的公开 API 密钥;切勿暴露密钥
  • Test Store 支持开发测试,无需实际扣费

资源

官方文档
references/

从官方来源整理的文档,包含详细说明和代码示例。

scripts/

在此处添加常见自动化任务的辅助脚本。

assets/

在此处添加模板、样板代码或示例项目。

评论

支持 Markdown