Version: Unity 6.0 (6000.0)
言語 : 日本語
購入の開始
購入失敗したときの処理

購入処理

購入が完了するときに、ストアリスナーの ProcessPurchase 関数が呼び出されます。アプリケーションは、ユーザーの購入に関するすべての処理を実行する必要があります。例えば、ローカルコンテンツのロックを解除する、レシートをサーバーに送信してサーバー側のゲームモデルを更新する、などです。

戻り値は、課金処理が終了したかどうかを返します。

結果 説明
PurchaseProcessingResult.Complete 購入処理が終了し、再度通知する必要はありません。
PurchaseProcessingResult.Pending まだ購入処理中で、IStoreControllerConfirmPendingPurchase 関数が呼び出されない限り、次にアプリケーションを起動したときに ProcessPurchase がもう一度呼び出されます。

ProcessPurchase は、初期化が成功した後のどこかのタイミングで呼び出されます。ProcessPurchase ハンドラーの実行中にアプリがクラッシュした場合は、Unity IAP が次に初期化されるときにこのハンドラがもう一度呼び出されるため、独自に重複排除機能を実装することをお勧めします。

信頼性

Unity IAP では、ネットワークの停止やアプリケーションのクラッシュが発生した場合でも、購入が確実に行われたことを確認するために明示的な承認が必要です。アプリケーションがオフラインのときに行われた購入は、次に初期化するときにアプリケーションに送信されます。

購入を即座に完了

PurchaseProcessingResult.Complete が返されると、Unity IAP はトランザクションを即座に終了します (下図参照)。

消費型プロダクトを販売してサーバーから処理を行っている場合 (オンラインゲームで金貨を提供するときなど) は、PurchaseProcessingResult.Complete を返してはいけません

`PurchaseProcessingResult.Complete` を返してしまうと、クラウドで保存される前にアプリケーションがアンインストールされた場合に、消費型購入品が失われてしまうことがあります。

即座に完了
即座に完了

購入処理をクラウドに保存

消費型購入処理をクラウドに保存する場合は PurchaseProcessingResult.Pending を返す必要があり、購入処理が問題なく完了した場合のみ ConfirmPendingPurchase を呼び出します。

Pending を返すとき場合、Unity IAP は、処理が確認されるまで対象ストアでトランザクションを終了しないで維持し、この状態にある間はユーザーがアプリケーションを再インストールしても消費型の購入品が失われないようにします。

購入処理
購入処理
購入の開始
購入失敗したときの処理