購入失敗したときの処理
購入レシート

トランザクションのリストア

ユーザーがアプリケーションを再インストールするときは、すでに所有している非消費型とサブスクリプションのプロダクトを復元する必要があります。アプリストアは、Unity IAP が取得できる各ユーザの非消費型および更新可能なサブスクリプションのプロダクトの永続的に記録します。Apple プラットフォームの更新不可のサブスクリプションは復元できません。Apple プラットフォームで更新不可のサブスクリプション製品を使用する場合は、アクティブなサブスクリプションの記録を保持し、デバイス間のサブスクリプションを同期することはユーザー自身の判断で行ってください。

サポートしているプラットフォーム (Google Play と Universal Windows アプリ)では、Unity IAP は初期化の際に自動的にリストアを行い、初回の初期化時、所有しているアイテムごとに IStoreListenerProcessPurchase メソッドが呼び出されます。

Apple のプラットフォーム上では、リストアするかどうかのボタンを表示して、ユーザーのパスワードを入力させて前回のトランザクションを取得しなければいけません。IStoreListenerProcessPurchase メソッド処理中は、ユーザーがすでに所有しているアイテムのために実行されます。

/// <summary>
/// OnInitialized の IStoreListener の実装
/// </summary>
public void OnInitialized(IStoreController controller, IExtensionProvider extensions)
{
    extensions.GetExtension<IAppleExtensions> ().RestoreTransactions (result => {
        if (result) {
            // 何かが復元されたというわけではありません
            // 単に復元のプロセスが成功したというだけです
        } else {
            // 復元が失敗しました
        }
    });
}
購入失敗したときの処理
購入レシート