RORK LABEN
PLAY — Google Play の target API level 36 要件が昨日8月31日に発効しました。今日以降、新規アプリと既存アプリの更新は Android 16 対応が必須ですVISIBILITY — API 35 のままのアプリは掲載こそ続きますが、新しい Android 版のユーザーには表示されなくなります。エラーが出ないまま新規インストールだけが減る点に注意が要りますEXTENSION — 間に合わなかった場合は、Play Console から2026年11月1日までの延長申請が出せます。恒久対応の計画とセットで進めるのが実務的ですAPPLE — Apple 側は9月9日にイベント、iOS 27 の正式リリースは9月14日と報じられています。生成したアプリの iOS 27 実機確認はリリース週の前に済ませておきたいところですEXPO — Expo が expo-paste-input を公開しました(8月28日)。React Native の TextInput に画像・GIF・ステッカーの貼り付けを追加するネイティブモジュールですEAS — EAS Observe が8月20日に GA になりました。クラッシュや性能の観測を、ビルドや配信と同じ EAS 上で持てるようになっていますPLAY — Google Play の target API level 36 要件が昨日8月31日に発効しました。今日以降、新規アプリと既存アプリの更新は Android 16 対応が必須ですVISIBILITY — API 35 のままのアプリは掲載こそ続きますが、新しい Android 版のユーザーには表示されなくなります。エラーが出ないまま新規インストールだけが減る点に注意が要りますEXTENSION — 間に合わなかった場合は、Play Console から2026年11月1日までの延長申請が出せます。恒久対応の計画とセットで進めるのが実務的ですAPPLE — Apple 側は9月9日にイベント、iOS 27 の正式リリースは9月14日と報じられています。生成したアプリの iOS 27 実機確認はリリース週の前に済ませておきたいところですEXPO — Expo が expo-paste-input を公開しました(8月28日)。React Native の TextInput に画像・GIF・ステッカーの貼り付けを追加するネイティブモジュールですEAS — EAS Observe が8月20日に GA になりました。クラッシュや性能の観測を、ビルドや配信と同じ EAS 上で持てるようになっています
記事一覧/開発ツール
開発ツール/2026-03-14上級

Rork Max × Stripe サブスクリプションを本番運用へ — Webhook冪等性・状態遷移・照合の実装

Rork Max と Stripe でサブスクリプションを構築する手順に加え、テストモードでは見えない本番の落とし穴(Webhookの二重配信・順序逆転・状態遷移・DBとStripeの照合)を実装コードとともに解説します。

rork-max41stripe3subscription10アプリ内課金9決済7

プレミアム記事

テストモードで通ったのに、本番で二重課金の問い合わせが来た

サブスクリプションの実装で一番怖いのは、テストモードのチェックリストを全部通過して安心した数日後に届く「二重に請求されています」という一通のメールでした。個人開発でメンバーシップ課金を運用していて、私が最初に痛感したのはこの点です。決済フローを組むこと自体は難しくありません。難しいのは、Stripe から届くイベントが「必ず一度だけ、順番どおりに来る」という暗黙の前提を、コードが勝手に置いてしまうことでした。

Stripe の Webhook は、同じイベントを複数回送ることがあります。ネットワークの都合で subscription.updatedsubscription.created より先に着くこともあります。テストモードで手動クリックしているうちは、これらはまず起きません。起きるのは、実ユーザーが増えて、リトライとタイムアウトが日常になった本番だけです。

以下では、Rork Max と Stripe でサブスクリプションを立ち上げる基本手順をおさえたうえで、その「本番でだけ壊れる」層に絞って実装を掘り下げます。基本のつなぎ込みができている方は、前半を飛ばして「Webhookを冪等にする」から読み進めていただければと思います。

前提条件

このガイドに取り組む前に、以下の準備を整えておいてください。

  • Rork Max アカウント: 基本的な操作に慣れていることが望ましいです。はじめての方はStripe 決済連携ガイドから着手すると流れをつかみやすいです。
  • Stripe アカウント: 管理画面にアクセスでき、公開可能キーとシークレットキーを取得できる状態にしてください。
  • REST API と JSON の基礎: Webhook の署名検証やイベント処理を読み解くうえで必要です。
  • データベース: ユーザーとサブスクリプション情報を保存します。Supabase / Firebase いずれでも構いません(バックエンドガイド参照)。

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

この記事の続きを読む

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

この記事で得られること
Webhookの二重配信・順序逆転をイベントID台帳で吸収する冪等処理の実装
past_dueやincompleteを含むサブスクリプション状態遷移の扱いと、DBをStripeへ照合する再同期ジョブ
Stripe CLIでのローカル検証手順と、手数料を織り込んだ損益分岐の試算表
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

開発ツール2026-05-25
Rork で作る iOS アプリに StoreKit 2 で買い切り課金を実装するノート
Rork が生成する Swift / SwiftUI コードに StoreKit 2 で買い切り課金を後付け実装する手順メモ。累計 5,000 万 DL の壁紙アプリで StoreKit 1 から 2 へ移行した経験を踏まえて、ProductID 設計・Transaction 検証・Paywall UI・本番ハマりどころまで実装サンプル込みで共有します。
開発ツール2026-07-13
Detox と Maestro の E2E が全部緑なのに本番でクラッシュが出ていたとき — 自動リトライが握りつぶした不安定テストをフレーク率で炙り出す運用メモ
DetoxとMaestroのE2Eが全部緑なのに本番でクラッシュが出た原因は、自動リトライがフレークを握りつぶしていたことでした。JUnit XMLを試行単位で読んでテスト別フレーク率を計測し、隔離とリトライ予算で本物の失敗だけを残す運用を記録します。
開発ツール2026-07-01
Rork Max のクラウドコンパイル — Mac を持たずにネイティブアプリを仕上げる
Rork Max のクラウドコンパイルで、ローカル Mac なしに iOS/iPadOS のネイティブアプリをビルド・実機テスト・公開する流れを、失敗時の切り分けと実機 Mac を残す判断基準まで含めて実務目線でまとめます。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →