Flutterの買い切り課金をテストする:購入・保留・復元の確認ガイド

Flutterの買い切り課金の公開前テスト。購入・保留・復元の3場面を確認するガイド。 Flutter

購入ボタンを押して、Pro機能が使えるようになった。ここまで動くと、課金実装は完成したように感じます。でも、「支払いの途中でアプリを閉じたら?」「再インストールしたら?」という操作は、別に試しておきたいところです。

この記事では、Flutterの買い切り課金を購入成功・支払い保留・購入の復元の3場面に分けて点検します。機能を一度の購入で解除する、非消耗型の商品が対象です。

PURCHASE / PENDING / RESTORE

「買える」だけでなく、
待てる・戻せるところまで。

購入成功

Pro機能を
使える
購入の検証後に
機能を解除
機能を開く

支払い保留

まだ
解除しない
処理中と分かる
表示にする
支払い待ち

購入の復元

買い直さず
使える
購入履歴から
機能を復元
購入を復元
アプリ側の表示を考えるための模式図です。実際のアプリ・ストアの画面や、検証結果を示すものではありません。

テスト前に、アカウントと環境を確認する

用意するのは、テスト用アプリ、購入前の状態を用意できるストアアカウント、操作結果を残すメモです。最初にOS・アプリ・in_app_purchaseのバージョンを記録しておくと、後から条件を再現しやすくなります。

Google Playの「内部テスト版」だけでは、無料の購入テストになりません。

ライセンステスターの登録と、購入画面のテスト表示・支払い方法を確認してください。以下の購入・保留の具体例は、Google Playのテスト用決済を使います。公式の設定手順

iOSではAppleのテスト環境を使います。Androidのテスト用決済をそのまま再現することはできないため、ストアごとに結果を分けて記録してください。

3つの場面を、操作と結果で確かめる

CASE 01と02では、それぞれ未購入の状態を用意します。購入済みの同じ商品をそのまま再購入するテストにはしません。CASE 03は、CASE 01で購入したアカウントを使って試せます。

CASE 01 / 購入

購入した機能を、次の起動でも使えるか

  1. 対象の商品を未購入のアカウントで、Pro機能がロックされていることを確認します。
  2. Google Playの購入画面で、支払いが承認されるテスト用決済を選びます。
  3. 購入後にPro機能を開き、アプリを終了・再起動して、もう一度同じ機能を開きます。
合格の目安購入が検証されてから機能を使える。再起動後も購入済みとして扱われ、買い直しを求められない。
うまくいかないとき「ストアでの購入成立」「購入の検証」「利用権の保存・再取得」のどこまで進んだかを分けて確認します。
CASE 02 / 保留

支払いが終わる前に、機能を解除していないか

  1. 未購入の状態から、遅れて承認されるテスト用決済で購入を始めます。
  2. 支払いが保留になっている間に、Pro機能を開こうとしてみます。
  3. その状態でアプリを終了・再起動し、まだ機能が解除されていないことを確認します。
  4. 支払いが成立した後、購入の検証を経て機能が使えることを確認します。
合格の目安保留中はロックが続き、支払いの成立後に利用できる。処理中なのか失敗なのか、利用者にも分かる。
もう1回試す操作今度は遅れて拒否されるテスト用決済を使います。支払いが成立しなかった購入では、機能が解除されないことを確かめます。

Google Playは、承認・拒否・遅延する支払いを試す方法を公開しています。決済選択肢の表示名や設定は、公式の保留テスト手順で確認できます。

CASE 03 / 復元

再インストール後に、買い直さず使えるか

  1. 購入済みのテストアカウントと、解除できる機能を記録します。
  2. テスト用端末で必要なアプリ内データを退避し、アプリを再インストールします。
  3. 購入時と同じストアアカウントで、アプリの「購入を復元」を実行します。
  4. 購入履歴の検証後に、対象の機能を使えることを確認します。
合格の目安追加の支払いをせずに購入済みの機能へ戻れる。復元中・成功・対象の購入がない場合を区別して案内できる。
うまくいかないときストアアカウント、復元した商品ID、検証結果を順番に確認します。iOSからAndroidへの引き継ぎは、同じストア内の復元とは別の設計です。

「購入済み」は、端末内のフラグだけで決めない

再インストール後は、端末内の保存状態だけでは過去の購入を判断できないことがあります。復元では、購入情報を受け取り、正当性を検証してから機能を使えるようにする流れを確認します。in_app_purchaseの復元処理

RESTORE FLOW

復元は「フラグを戻す」で終わらない。

購入情報を受け取る同じストアアカウントの購入を確認
購入を検証する対象商品・利用権を確認
機能へ戻れる結果を画面に反映して利用者に伝える
復元の役割を整理した図です。具体的な購入検証の方法は、各ストアの仕様とアプリの構成に合わせて実装します。

Google Playは、機能の利用権を付与する前の購入検証を推奨しています。バックエンドを含め、どこで検証するかを決めておきましょう。購入検証に関する公式資料

また、completePurchaseは、購入の検証と機能の提供後に行う完了処理です。保留を購入成功と混同せず、pendingCompletePurchaseの確認を含めた処理を点検します。復元して機能を使えたことと、ストア側への必要な完了通知まで終えたことを分けて確認してください。購入完了処理の説明

結果を残すためのチェック表

表をコピーし、アプリの版・OS・確認日と一緒に記録できます。上の3ケースに加え、キャンセル・返金後の扱いも、公開前の確認に含めてください。

試す操作確認する結果記録欄
購入 → 再起動購入済みの機能を使える□ 合格 □ 要修正
保留 → 再起動支払いが成立するまでロックを維持□ 合格 □ 要修正
保留 → 承認/拒否成立した購入だけ機能を解除□ 合格 □ 要修正
再インストール → 復元買い直さず、対象の機能を使える□ 合格 □ 要修正
購入画面をキャンセル未購入のまま元の操作へ戻れる□ 合格 □ 要修正
購入履歴なしで復元対象の購入がないことを案内できる□ 合格 □ 要修正
返金・利用権の取り消しアプリで決めた方針どおりに状態を更新□ 合格 □ 要修正

購入・保留・復元のどこで結果が食い違うか分かれば、実装の確認箇所も絞れます。最初から全部を追うのが難しければ、まずは「支払いを保留にしたまま再起動する」ところから試してみてください。

このガイドの対象と参照資料

非消耗型の買い切り課金を対象に、公式資料をもとに確認手順を構成しています。実機検証済みのサンプル実装や、特定アプリの体験談ではありません。資料確認日:2026年9月29日。

タイトルとURLをコピーしました