RORK LABEN
BUILD — Rork Max はクラウド上の実機 Mac に Xcode と iOS SDK を載せ、SwiftUI を書き、ビルドし、エラーを読んで直す反復を回します。コードを吐いて終わりではない点が生成物の質に効いていますNATIVE — 生成されるのは React Native ではなく純粋な Swift / SwiftUI です。AR や Metal、ウィジェットなど React Native からは届かない機能に手が届くことが、他ビルダーとの実質的な差になりますPLATFORMS — 対応は iPhone・iPad・Apple Watch・Apple TV・Vision Pro に加えて iMessage まで含みます。ウォッチや拡張から入る設計を試すのに向いていますCOMPANION — Rork Companion により、有料の Apple Developer アカウントなしで生成したアプリを実機の iPhone で確認できます。最初の一本を試す段階の障壁が一段下がりましたPRICING — 無料で開始でき有料プランは月額25ドルから、Rork Max は月額200ドルの Max プランです。回収できる本数と規模を先に見積もっておく価値がありますDEADLINE — Google Play は2026年8月31日以降、新規アプリと更新の双方に対象 API レベル36 以上を要求します。残り10日で、生成物の targetSdkVersion は自分で確認が必要ですBUILD — Rork Max はクラウド上の実機 Mac に Xcode と iOS SDK を載せ、SwiftUI を書き、ビルドし、エラーを読んで直す反復を回します。コードを吐いて終わりではない点が生成物の質に効いていますNATIVE — 生成されるのは React Native ではなく純粋な Swift / SwiftUI です。AR や Metal、ウィジェットなど React Native からは届かない機能に手が届くことが、他ビルダーとの実質的な差になりますPLATFORMS — 対応は iPhone・iPad・Apple Watch・Apple TV・Vision Pro に加えて iMessage まで含みます。ウォッチや拡張から入る設計を試すのに向いていますCOMPANION — Rork Companion により、有料の Apple Developer アカウントなしで生成したアプリを実機の iPhone で確認できます。最初の一本を試す段階の障壁が一段下がりましたPRICING — 無料で開始でき有料プランは月額25ドルから、Rork Max は月額200ドルの Max プランです。回収できる本数と規模を先に見積もっておく価値がありますDEADLINE — Google Play は2026年8月31日以降、新規アプリと更新の双方に対象 API レベル36 以上を要求します。残り10日で、生成物の targetSdkVersion は自分で確認が必要です
記事一覧/開発ツール
開発ツール/2026-06-30上級

返金申請に12時間以内で応答する — CONSUMPTION_REQUEST を Cloudflare Workers で受け止める

Rork で作ったサブスクアプリに届く App Store の CONSUMPTION_REQUEST 通知を、Cloudflare Workers で受信して Send Consumption Information API に12時間以内で応答する実装を、フィールドの意味づけと運用判断まで含めて解説します。

App Store Server API4返金Cloudflare Workers24サブスクリプション63StoreKit 216

プレミアム記事

サブスクの解約理由を眺めていて、「使い込んだ直後に返金申請が通っている」取引にいくつか気づいたのは、Rork で出したアプリの売上がようやく月単位で読めるようになった頃でした。返金そのものは利用者の権利ですし、止めたいわけではありません。ただ、明らかにコンテンツを消費しきった後の申請まで自動で通っていくのは、個人開発の収益としては地味に効いてきます。

そこで初めて真面目に向き合ったのが CONSUMPTION_REQUEST という通知でした。利用者が App Store に返金を申請すると、Apple はアプリ側に「このユーザーはどれくらいこの購入を消費しましたか」と尋ねてきます。これに12時間以内で誠実に応答すると、Apple が返金可否を判断する材料になります。応答しなくても罰則はありませんが、応答しなければ「使い込んだ後の返金」を抑える手段を一つ放棄することになります。

このガイドは、その応答処理を Cloudflare Workers だけで完結させる構成を、フィールドの埋め方と運用判断まで含めて作るためのものです。サブスクの受信基盤(App Store Server Notifications V2 の受け口)をすでに持っている前提で書きますが、まだの方は先にApp Store Server Notifications V2 を自前運用する構成を読んでおくと、この記事の Worker をそのまま増築できます。

CONSUMPTION_REQUEST が届く条件と締め切り

この通知は、いくつかの条件がそろったときだけ届きます。まず、App Store Connect の「App 情報」で Consumption Request の受信を有効にしていること。そして利用者が返金を申請し、かつその取引が消費型・非消費型・サブスクのいずれかであること。サブスクの自動更新分でも届きます。

締め切りは通知の signedDate から 12時間です。ここを過ぎると応答は受け付けられません。Cloudflare Workers は受信時に同期処理で重い計算をすると応答が遅れるので、受信はすぐ 200 を返し、実際の API 呼び出しは後段に回す設計が安全です。とはいえ12時間という猶予は長いので、waitUntil で受信ハンドラの裏で処理する程度で十分間に合います。

項目内容
通知タイプCONSUMPTION_REQUEST
応答先 APIPUT /inApps/v1/transactions/consumption/{transactionId}
締め切りsignedDate から12時間以内
必須の前提customerConsented を true で送れること(同意の取得)
応答しない場合罰則なし。ただし返金抑止の材料を1つ失う

customerConsented が立たないと、データは無視される

最初に必ず押さえておきたい落とし穴がこれです。Send Consumption Information のリクエストには customerConsented というブール値があり、これが true でないと、他のフィールドをどれだけ正確に埋めても Apple は一切参照しません。「利用者が、消費データを Apple に提供することに同意している」という宣言だからです。

ですから実装の前に、利用規約かプライバシーポリシー、あるいはオンボーディングのどこかで「返金申請時に、適切な判断のため利用状況を Apple と共有することがあります」という旨の同意を取得しておく必要があります。私自身、個人開発で続けている壁紙・癒し系アプリでは、サブスク購入画面のフッターにこの一文への導線を置き、規約への同意をもって customerConsented を立てる運用にしました。同意を取れていないユーザーについては、customerConsented: false で送るのではなく、応答自体を見送る方が誠実だと考えています。

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

この記事の続きを読む

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

この記事で得られること
返金申請時に Apple から届く CONSUMPTION_REQUEST 通知を Cloudflare Workers で受信し、Send Consumption Information API へ12時間以内に応答する最小構成を、動くコード付きで組める
consumptionStatus・deliveryStatus・refundPreference など12個のフィールドを、自前の KV に持つ購読・利用ログからどう埋めるかの対応表が手に入る
誠実なデータ提供で不正な返金を抑えつつ、本当に困っている利用者の返金は妨げない — その線引きを運用ルールとして言語化できる
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

開発ツール2026-04-25
RevenueCat の固定費が気になり始めた人のための、App Store Server Notifications V2 自前運用ガイド
Rork アプリで RevenueCat を経由せず、App Store Server Notifications V2 を Cloudflare Workers で受信する構成を、JWS 検証・冪等処理・テスト戦略まで含めて実装する完全ガイド。
開発ツール2026-05-20
Rork × StoreKit 2 × App Store Server API — 個人開発アプリのサブスク基盤を3層で守る実装設計
Rork製iOSアプリのサブスク収益を、StoreKit 2のクライアント検証、App Store Server APIによるサーバー側JWS検証、Server Notifications V2の監視という3層で守る実装設計です。権利テーブルの設計、定期再同期、サンドボックスの罠、障害時の運用まで公開します。
開発ツール2026-04-30
サブスクの『今・誰が・どの権利を持つか』を取り違えない — Rork で実装するエンタイトルメント状態機械の設計
サブスクの返金・家族共有・解約・再開を取り違えないエンタイトルメント状態機械をRorkアプリ向けに設計します。権限の真実を1つのテーブルに置く原則、ASSN V2とStoreKit 2のイベント正規化、グレースピリオドの扱い、よくある間違い5選まで本番コード付きです。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →