◉RORK LABEN
●GPT-6.1 SOL — Rork のモデルメニューに追加(09-29)。Low/Medium/High を選べ、Pro・Max に含まれます●SONNET 5.5 — UI づくりが得意で、Sonnet 5 より出力が速いモデルが選べます(09-28)●SDK 58 — Beta が 09/15 から。stable の案内はまだなく、Expo Go でのプロジェクト実行は 09/03 からログインが必要です●WIDGET — iOS のウィジェットが本番ビルドだけ真っ黒になる原因を追った報告が出ています●OBSERVE — EAS Observe がネイティブクラッシュも記録します(SDK 57.0.21 以降・10/07)●NEW — 起動広告が、背面から戻った回にしか出ていませんでした。「前面に戻った」合図が、…●GPT-6.1 SOL — Rork のモデルメニューに追加(09-29)。Low/Medium/High を選べ、Pro・Max に含まれます●SONNET 5.5 — UI づくりが得意で、Sonnet 5 より出力が速いモデルが選べます(09-28)●SDK 58 — Beta が 09/15 から。stable の案内はまだなく、Expo Go でのプロジェクト実行は 09/03 からログインが必要です●WIDGET — iOS のウィジェットが本番ビルドだけ真っ黒になる原因を追った報告が出ています●OBSERVE — EAS Observe がネイティブクラッシュも記録します(SDK 57.0.21 以降・10/07)●NEW — 起動広告が、背面から戻った回にしか出ていませんでした。「前面に戻った」合図が、…
記事一覧/開発ツール
⬡ 開発ツール/2026-04-15上級

Rork × RevenueCat + Stripe Web 統合ガイド:iOS・Android・Web のサブスクリプションを1つのバックエンドで管理する

Rorkアプリで iOS StoreKit・Android Google Play Billing・Stripe Web の3つの課金チャネルを RevenueCat で一元管理する実装ガイド。クロスプラットフォーム対応の落とし穴と本番運用まで解説します。

RevenueCat30Stripe18StoreKit8Google Play Billing4サブスクリプション66クロスプラットフォーム7課金8バックエンド11

✦ プレミアム記事

アプリをリリースしてしばらくすると、ほぼ確実に「Web でも同じサービスを販売したい」という要望が出てきます。iOS の App Store、Android の Google Play に加えて Stripe で Web 決済を追加したとき、エンタイトルメント(購入済み権限)の管理が一気に複雑になります。

実際に経験してみると「Stripe で購入したユーザーが iOS アプリにログインしても権限が反映されない」「RevenueCat の Customer Info に Stripe の購入履歴が入らない」という問題にぶつかります。ここではRork で開発したアプリを対象に、3チャネルの課金を統一管理するための実装パターンを具体的なコードで解説します。

なぜクロスプラットフォーム課金統合が難しいのか

RevenueCat を使えば iOS と Android の課金は自動で同期されます。ところが Stripe は RevenueCat のエコシステム外にあるため、手動で連携させる必要があります。

問題の核心は3点あります。

まず、エンタイトルメントの更新タイミングのズレです。Stripe の Webhook はサーバーに届きますが、RevenueCat へのデータ反映には API 呼び出しが必要で、この処理に失敗するとアプリ側でユーザーの権限が正しく表示されません。

次に、ユーザー識別の方法が異なるという点です。RevenueCat はアプリ側の appUserId でユーザーを識別しますが、Stripe は customerId で管理します。この2つを正確に紐付けないと、同じユーザーが複数のIDを持つ状態になります。

最後に、レシート検証のタイミング問題です。iOS・Android はデバイス側でレシートを生成して RevenueCat が検証しますが、Stripe は完全にサーバー側の処理です。リアルタイム性の担保方法が異なります。

アーキテクチャの全体像

実装の前に、クロスプラットフォーム課金の全体設計を理解しておきます。

【iOS/Android ユーザー】
  ↓ StoreKit 2 / Google Play Billing
  ↓ RevenueCat SDK(自動でサーバー同期)
  ↓ Cloudflare KV(RevenueCat Webhook で更新)
  ↓ Rork アプリがエンタイトルメントを確認

【Web ユーザー】
  ↓ Stripe Checkout
  ↓ Stripe Webhook → 自作バックエンド(Hono + Cloudflare Workers)
  ↓ RevenueCat REST API でカスタムエンタイトルメントを付与
  ↓ Cloudflare KV(バックエンドが更新)
  ↓ Rork アプリがエンタイトルメントを確認

重要なのは、アプリ側はどのチャネルで購入されたかを意識しない設計にすることです。バックエンドが全チャネルの状態を RevenueCat と KV に反映し、アプリは1か所を見るだけでエンタイトルメントを確認できる状態を目指します。

✦

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦Stripe Webhook の二重配信を KV で冪等化し、エンタイトルメントの誤延長を防ぐ実装
✦Cron Triggers で Stripe を正に置き、KV と権限を突き合わせる定期リコンシリエーション
✦past_due(支払い猶予)と明確な解約を区別し、善良なユーザーを締め出さない権限設計
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

⬡ 開発ツール2026-04-26
Rork × Stripe Meter で AI アプリの使用量課金を実装する — トークン数・API 呼び出し回数で正確に課金する設計ガイド
Stripe Meter Billing で Rork アプリに使用量課金を実装します。メーター報告・冪等キー・リトライキュー・イベント集約・前払いクレジットとの使い分けまで、運用の実感を交えて解説します。
⬡ 開発ツール2026-04-29
Rork × Cloudflare Durable Objects で『リアルタイム協調アプリ』のバックエンドを作る実装ガイド
Rork で作ったアプリに、Cloudflare Durable Objects を使った自前のリアルタイム協調バックエンドを組み込む実装手順を、本番で動くコードと一緒にまとめました。Liveblocks や Yjs ホスティングを使わずに、低コストで多人数同時接続を支える設計をお伝えします。
⬡ 開発ツール2026-04-28
Family Sharing で IAP が消える4つのトリガー — Rork で子ども向けアプリの課金を安全に設計する
Family Sharing 経由の購入で IAP 収益が突然消える原因と、Rork で実装する StoreKit 2・Server Notifications V2 を組み合わせた安全な課金設計を、実コードとテスト手順まで網羅的に解説します。