RORK LABEN
R8 — Expo SDK 58 から、Android のリリースビルドで R8 が既定で有効になります。同じコードで前後を測っておくと、縮んだ分と壊れた箇所が見えますXCODE26.6 — EAS Build の Xcode 27 イメージはまだ準備中で、latest はいまも Xcode 26.6 です。手元の Xcode を 27 に上げているかどうかで、踏む不具合が変わります11/01 — Google Play の target API level の延長申請は11月1日までです。残り40日。新規と更新は API 36 以上、既存アプリは API 35 以上が要りますFETCH — expo/fetch が iOS では応答を返さないまま止まり、Android では切り詰めた本文を 200 のまま返すという報告です。例外が飛ばないため、タイムアウトは自分で被せる形になりますNEW — exit code 0 で止まるビルド — ログを黙らせていた設定と、空ファイルを通した存在チェックSCENE — SDK 57 のまま Xcode 27 で起動させるための opt-in が expo@57.0.23 に入りました。expo-build-properties の ios.enableSceneSupport で有効にしますR8 — Expo SDK 58 から、Android のリリースビルドで R8 が既定で有効になります。同じコードで前後を測っておくと、縮んだ分と壊れた箇所が見えますXCODE26.6 — EAS Build の Xcode 27 イメージはまだ準備中で、latest はいまも Xcode 26.6 です。手元の Xcode を 27 に上げているかどうかで、踏む不具合が変わります11/01 — Google Play の target API level の延長申請は11月1日までです。残り40日。新規と更新は API 36 以上、既存アプリは API 35 以上が要りますFETCH — expo/fetch が iOS では応答を返さないまま止まり、Android では切り詰めた本文を 200 のまま返すという報告です。例外が飛ばないため、タイムアウトは自分で被せる形になりますNEW — exit code 0 で止まるビルド — ログを黙らせていた設定と、空ファイルを通した存在チェックSCENE — SDK 57 のまま Xcode 27 で起動させるための opt-in が expo@57.0.23 に入りました。expo-build-properties の ios.enableSceneSupport で有効にします
記事一覧/ビジネス
ビジネス/2026-09-22上級

決済が成功しても、渡してよい権限は決まりません。1つの Checkout に4種類の商品を載せたあとの分岐設計

チップ・記事単体・月額・買い切りの4商品を1つの Checkout に通したところ、決済成功をそのまま権限に変える実装が三度危うくなりました。金額ではなく metadata で分岐させ、権限ストアが読めない日は拒否側へ倒すまでの運用記録です。

Stripe18課金設計権限管理Cloudflare Workers25収益化67

プレミアム記事

4つ目の商品を足そうとして、決済後の処理を読み返した夜のことでした。そこには、支払いが完了したら会員権を書き込む、という一本道が書いてありました。

商品が1種類しかなかったころは、それで正しかったのです。チップを足し、月額を足し、記事の単体購入を足す段になって、同じ一本道が三度も危うくなりました。

最初にお伝えしたいのは、決済の成功が教えてくれるのは「お金が動いた」という事実だけ、という一点です。誰に何を開けてよいかは、決済側ではなく、こちらが発行のときに決めておくものでした。

支払いの成否は金額が答え、権限の範囲は発行時の宣言が答えます。 この二つを同じ if 文に押し込まないことだけ、いまは崩さないようにしております。

1つ足すたびに、成功の意味が変わりました

私が運用しているサイトには、性格の違う支払いが4つ並んでおります。少額のチップ、記事1本の単体購入、月額のプラン、そして買い切りの永久アクセスです。

入口は1つの Checkout エンドポイントにまとめてあります。まとめたほうが、成功後の戻り先・言語・キャンセル先の扱いを一箇所で揃えられるからです。

問題は出口のほうでした。4つとも payment_status: paid で戻ってきますので、受け取り側から見ると全部同じ顔をしております。

商品mode渡すもの保持期間
チップ(¥150)payment何も渡しません
記事単体(¥200)paymentその slug だけ10年
Pro(¥580/月)subscription会員権31日(更新で延長)
Premium(¥2,480)payment会員権10年

この表の1行目が、いちばん間違えやすいところでした。応援していただいた¥150で永久アクセスが開いてしまう実装は、書こうと思って書くものではありません。「支払いが成功したら会員権」という一行が残っているだけで、そうなってしまうのです。

「払われた」と「何を開ける」は、別々に持ちます

金額で判定したくなる誘惑は、最初にきちんと断っておいたほうがよいと感じています。¥150 と ¥2,480 は見分けがつきますので、一見すると成立してしまうのです。

ところが金額は、こちらの都合で動きます。感謝価格を用意した日、単体購入を¥250から¥200へ下げた日、そして同じ商品を別通貨で並べた日に、判定表は毎回作り直しになります。

種別は動きません。「これはチップです」という宣言は、値段を変えても通貨を変えても、意味が変わらないのです。

ですので、発行の時点で種別を確定し、それを決済の外側まで運ぶ形にしました。Stripe の場合は Checkout Session の metadata がその器になります。詳しい仕様は Stripe の Checkout Session ドキュメント に書かれています。

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

この記事の続きを読む

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

この記事で得られること
Stripe Checkout の成功をそのまま権限に変えている実装を、金額ではなく metadata で分岐する形へ自分の手で書き換えられるようになります
チップや記事単体の支払いで上位プランが開いてしまう事故を、本番に出す前に自分のコードから見つけられるようになります
権限ストアが一時的に読めない場面で「とりあえず見せる」と書いてしまう前に、どちらへ倒すかを自分の基準で決められるようになります
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

ビジネス2026-06-28
リワード広告の報酬を、端末からの合図だけで配らない — Rork(Expo)アプリのSSV検証をWorkerで組む
リワード広告の「視聴完了」を端末側のコールバックだけで信じると、報酬の二重付与やなりすましが起こります。AdMobのサーバーサイド検証(SSV)コールバックをCloudflare Workerで署名検証し、transaction_idで冪等化して報酬を安全に配るまでの実装をまとめます。
ビジネス2026-04-14
Rork アプリで法人契約を獲得する個人開発者の B2B 構築 2026
個人開発者がRorkアプリで法人契約を獲得するための実践ガイドです。マルチテナント設計、法人向け料金設定、最初の契約を得る3つのルート、契約書やNDAへの現実的な対応、ひとりで回すサポート体制、月10万円から100万円への道筋までを解説します。
ビジネス2026-04-06
Rorkアプリの無料ユーザーが定額会員に変わる瞬間 — 個人開発で確かめた価格設計とペイウォールの置きどころ
Rorkアプリの無料ユーザーをサブスクリプションへ転換するための価格設計・ペイウォール設置タイミング・LTV/CAC分析・解約防止フローを、個人開発の実体験とRork+Stripe+PostHogの実装コードで解説します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます