ドキュメント

購入の復元

プレイヤーがアプリケーションを再インストールしたりデバイスを切り替えたりしたときに、以前所有していた製品やサブスクリプションへのアクセスを回復できるようにします。
読み終わるまでの所要時間 3 分最終更新 3ヶ月前

復元ePurchase (購入の復元) 特徴を使用すると、プレイヤーは以前に所有した非消費型型製品やアクティブな再生可能なサブスクリプションに、再課金なしでアクセスできます。アプリケーションはこれらのエンタイトルメントの永久の的な記録を保持し、Unity Iap はアクセスを許可するためにそれらを取得できます。
Apple プラットフォームの更新できないサブスクリプションは復元できません。Apple で更新できないサブスクリプションを使用する場合は、独自のサブスクリプションレコードを保持し、デバイス間でエンタイトルメントを同期する必要があります。

Google Play

  • 再インストール後、Unity Iap は最初の
    StoreController.FetchPurchases()
    呼び出しで所有する製品を復元します。
  • IAP は、すべての購入(すべての状態)を含む
    Orders
    オブジェクトで
    OnPurchasesFetched
    リスナーを起動します。
  • PurchaseService.ProcessPendingOrdersOnPurchasesFetched
    設定を true に設定すると、IAP は満たされない購入ごとに
    OnPurchasePending
    リスナーを呼び出します。
  • 同じセッション内の後続の
    FetchPurchases()
    呼び出しは、同じセッション内の開発者によってすでに表示されている注文の
    OnPurchasePending
    をトリガーしません。

Apple プラットフォーム

  • 購入の復元ボタンを指定する必要があります(Apple による必須)。
  • ボタンは、Apple からのトランザクション再同期をリクエストする
    PurchaseService.RestoreTransactions
    を呼び出してトランザクションを再同期し、ユーザーの認証をプロンプトします。
  • 再同期後、Unity Iap は
    FetchPurchases
    を呼び出し、ユーザーのすべてのトランザクションで
    OnPurchasesFetched
    を実行します。

購入の復元(Appleプラットフォーム)

void RestorePurchases() { UnityIAPServices.StoreController().RestoreTransactions((success, error) => { if (success) { // This does not mean anything was restored, // merely that the restoration process succeeded. } else { // Restoration failed. `error` には失敗の理由が含まれます。 } }); }