💳revenuecat-customer-center
- プラグイン
- rc
- ソース
- GitHub で見る ↗
説明
RevenueCat Customer Center(セルフサービス型のサブスクリプション管理UI)をアプリに追加します。 次のような場合に使用: - Customer Centerを追加したい - セルフサービス型のサブスクリプション画面を構築したい - ユーザーがアプリ内でサブスクリプションを管理できるようにしたい - サブスクリプション管理画面を追加したい - `CustomerCenterView` を表示したい - `presentCustomerCenter` を呼び出したい - 「サブスクリプションを管理」ボタンをRevenueCat Customer Centerに連携したい 対象プラットフォーム: iOS / Android / Kotlin Multiplatform / Flutter / React Native
原文を表示
Add the RevenueCat Customer Center (self service subscription management UI) to an app. Use when the user asks to add a customer center, build a self service subscriptions screen, let users manage subscriptions in app, add a subscription management screen, present CustomerCenterView, call presentCustomerCenter, or wire a 'manage subscription' button to the RevenueCat customer center on iOS, Android, Kotlin Multiplatform, Flutter, or React Native.
ユースケース
- ✓ユーザーがアプリ内でサブスクリプションを管理したい
- ✓セルフサービス型のサブスクリプション画面を構築したい
- ✓サブスクリプション管理機能をアプリに追加したい
本文(日本語訳)
revenuecat-customer-center: RevenueCat Customer Center の追加
次のような場合に使用:
ユーザーが、カスタム UI を独自実装することなく、顧客がアクティブなサブスクリプションの管理・返金リクエスト・キャンセル・購入の復元・サポートへの連絡を行える既製の UI を必要としているとき。
UI は RevenueCat ダッシュボードで設定され、RevenueCatUI SDK によってレンダリングされます。
前提条件: integrate-revenuecat スキルが実行済みであること。
Customer Center が顧客データを読み込めるようにするため、Purchases.configure(…) が事前に成功している必要があります。
1. プラットフォームの検出
作業ディレクトリを確認し、上から順に最初に一致したものを採用してください:
- 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 { … }のマルチプラットフォームブロックがあるか、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/ フォルダ)は、ビルドを担う最外殻のプロジェクトを採用してください。
それでも判断できない場合は、どのプラットフォームを設定するかユーザーに確認してください。
2. 共通事項(全プラットフォーム共通)
-
Customer Center はダッシュボードで設定する UI です。 アクション、テキスト、プロモーションオファー、返金フロー、キャンセル調査の選択肢、サポートの連絡先情報は、RevenueCat ダッシュボードの Customer Center セクションで定義します。 設定がない状態では、最小限のデフォルトレイアウトしか表示されず、ユーザーにとってほとんど意味のある情報が表示されません。
-
有効な購入履歴があるユーザーとして識別されていることが必要です。 匿名ユーザーで購入履歴がない場合、Customer Center は空の状態(購入の復元のみ可能)で表示されます。 アプリがログイン機能をサポートしている場合は、Customer Center を開く前に
Purchases.logIn(userId)を呼び出してください。 -
Customer Center はペイウォールとは別のものです。 一般的なパターンとして、設定画面に「サブスクリプションの管理」項目を設けて Customer Center を開くようにします。 ペイウォールは新規購入用、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 のアップグレードをユーザーに案内してください。
3. 実装
検出されたプラットフォームに対応するファイルを参照してください:
platforms/ios.mdplatforms/android.mdplatforms/kmp.mdplatforms/flutter.mdplatforms/react-native.md
各プラットフォームファイルは自己完結しており、インストールコマンド・Customer Center を表示するための正確なコードスニペット・コールバックの仕様が含まれています。
4. 動作確認
以下をすべて満たすまで、統合が完了したと見なさないでください:
- 対象プラットフォームでプロジェクトがビルドできること。
- 少なくとも1つのアクティブなサンドボックスサブスクリプションを持つテストユーザーでアプリにサインインし、Customer Center を開くコードパスを実行する。UI が読み込まれ、サブスクリプションが一覧に表示されること。
- 設定済みのアクションが少なくとも1つ、エンドツーエンドで動作すること。最もシンプルな確認方法: 購入の復元をタップし、空でない
customerInfo.entitlements.activeマップとともに復元完了コールバックが発火することを確認する。ダッシュボードにキャンセル / 返金 / サポートアクションが設定されている場合は、ユーザーがタップした際に対応するコールバック(onManagementOptionSelected、onRefundRequestStartedなど)が発火することを確認する。 - Customer Center を閉じたとき、
onDismissコールバックが発火すること。
Customer Center は開くものの中身が空の場合、サインイン中のユーザーに購入履歴がないか、ダッシュボードの Customer Center セクションが設定されていません。 ダッシュボード側を修正してリロードし、再度確認してください。
原文(English)を表示
revenuecat-customer-center: add the RevenueCat Customer Center
Use this skill when the user wants an out of the box UI that lets their customers manage active subscriptions, request refunds, cancel, restore, or contact support, without shipping custom UI. The UI is configured in the RevenueCat dashboard and rendered by the RevenueCatUI SDKs.
Prerequisite: integrate-revenuecat has already run. Purchases.configure(…) must succeed before the Customer Center can load customer data.
1. Detect the platform
Inspect the working directory and pick the first match, from top to bottom:
- React Native:
package.jsonhas areact-native-purchasesentry, orreact-nativeas a dependency. The Customer Center ships inreact-native-purchases-ui. Readplatforms/react-native.md. Ifexpois also a dependency, note it as an Expo project. - Flutter:
pubspec.yamlexists at the project root. The Customer Center ships inpurchases_ui_flutter. Readplatforms/flutter.md. - Kotlin Multiplatform:
build.gradle.ktshas akotlin { … }multiplatform block, or depends oncom.revenuecat.purchases:purchases-kmp*. The Customer Center composable is inpurchases-kmp-ui. Readplatforms/kmp.md. - Android (native):
build.gradle(.kts)appliescom.android.application(and is not KMP). The Customer Center composable is incom.revenuecat.purchases:purchases-ui. Readplatforms/android.md. - iOS (native):
Package.swift,*.xcodeproj,*.xcworkspace, orPodfileat the project root.CustomerCenterViewis inRevenueCatUI. Readplatforms/ios.md.
If several match (e.g. an ios/ folder inside a Flutter project), pick the outermost project, the one that owns the build. If still ambiguous, ask the user which platform they want to configure.
2. Shared concepts (all platforms)
- Customer Center is a dashboard configured UI. Actions, copy, promotional offers, refund flows, cancel survey options, and support contact details are defined in the RevenueCat dashboard under Customer Center. Without configuration, the view renders a minimal default layout; users will see almost nothing useful.
- It needs an identified user with purchases to surface anything meaningful. If the user is anonymous and has never bought anything, the Customer Center renders an empty / restore only state. If the app supports login, call
Purchases.logIn(userId)before opening the Customer Center. - Customer Center is separate from paywalls. The standard pattern: expose a "Manage subscription" row in the settings screen that opens the Customer Center. Paywalls are for new purchases; the Customer Center is for existing subscribers.
- The UI owns the flow. Restore, cancel, refund, and promotional offer flows run inside the component. Listen for the lifecycle callbacks (
onRestoreCompleted,onRefundRequestStarted,onManagementOptionSelected,onPromotionalOfferSucceeded, etc.) to react in app code, not to drive the flow. - Platform availability varies. iOS has had Customer Center longest; Android, KMP, Flutter, and React Native follow. Platform files flag any gaps. Refund requests are an iOS only action because only Apple exposes in app refund requests; on Android, the "Manage subscription" option links out to the Google Play subscriptions screen.
- If the installed SDK version is older than Customer Center support, the fallback is a manual subscription management screen: show the user's active entitlements from
Purchases.customerInfo(), expose aPurchases.restorePurchases()button, and link to the store's subscription management URL. Point the user to upgrade the SDK if they want the full Customer Center.
3. Implementation
Read the platform file that matches detection:
platforms/ios.mdplatforms/android.mdplatforms/kmp.mdplatforms/flutter.mdplatforms/react-native.md
Each platform file is self contained: install command, exact snippet to present the Customer Center, and the callback shape.
4. Verify
Do not claim the integration is complete until:
- The project builds on the target platform.
- Sign into the app with a test user that has at least one active sandbox subscription. Trigger the code path that opens the Customer Center. The UI loads and the subscription appears in the list.
- At least one configured action runs end to end. The simplest check: tap Restore purchases and confirm the restore completed callback fires with a non-empty
customerInfo.entitlements.activemap. If the dashboard has Cancel / Refund / Support actions configured, verify the corresponding callback (onManagementOptionSelected,onRefundRequestStarted, etc.) fires when the user taps through. - Dismissing the Customer Center fires the
onDismisscallback.
If the Customer Center opens but is empty, the signed in user has no purchases, or the dashboard Customer Center section is not configured. Fix in the dashboard, reload, and retry.
原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。