ユーザーがアプリを再インストールしたときには、すでに購入していた非消費型とサブスクリプションのプロダクトを復元する必要があります。アプリストアは、ユーザーの非消費とサブスクリプションのプロダクトを永続的に記録しており、Unity IAP は永続的に記録されたプロダクトを取得することができます。
サポートしているプラットフォーム (Google Play と Universal Windows アプリ)では、Unity IAP は初期化の際に自動的にリストアを行い、初回の初期化時、所有しているアイテムごとに IStoreListener
の ProcessPurchase
メソッドが呼び出されます。
Apple のプラットフォーム上では、リストアするかどうかのボタンを表示して、ユーザーのパスワードを入力させて前回のトランザクションを取得しなければいけません。IStoreListener
の ProcessPurchase
メソッド処理中は、ユーザーがすでに所有しているアイテムのために実行されます。
/// <summary>
/// Your IStoreListener implementation of OnInitialized.
/// </summary>
public void OnInitialized(IStoreController controller, IExtensionProvider extensions)
{
extensions.GetExtension<IAppleExtensions> ().RestoreTransactions (result => {
if (result) {
// This does not mean anything was restored,
// merely that the restoration process succeeded.
} else {
// Restoration failed.
}
});
}