/// <summary> /// restore already purchased user's transactions for non consumable iaps. /// For Android/WP8 we use the received list for detecting previous purchases /// </summary> public static void RestoreTransactions() { #if UNITY_IPHONE OpenIAB.restoreTransactions(); #elif UNITY_ANDROID || UNITY_WP8 if (inventory == null) { RestoreFailed("Restoring transactions failed. Please try again."); return; } List <string> prods = inventory.GetAllOwnedSkus(); for (int i = 0; i < prods.Count; i++) { string id = GetIAPIdentifier(prods[i]); if (!DBManager.isPurchased(id)) { DBManager.SetToPurchased(id); } } RestoreSucceeded(); #endif //update ShopManager GUI items if (ShopManager.GetInstance()) { ShopManager.SetItemState(); } }
/// <summary> /// Restore already purchased user's transactions for non consumable IAPs. /// For Android we use the received list for detecting previous purchases. /// </summary> public static void RestoreTransactions() { #if UNITY_IOS extensions.GetExtension <IAppleExtensions>().RestoreTransactions(OnTransactionsRestored); #else Product[] purchasedProducts = controller.products.all; foreach (Product product in purchasedProducts) { string id = product.definition.id; if (DBManager.isPurchased(id) || product.definition.type == ProductType.Consumable || !product.hasReceipt || String.IsNullOrEmpty(product.receipt)) { continue; } DBManager.SetToPurchased(id); } OnTransactionsRestored(true); #endif //update ShopManager GUI items if (ShopManager.GetInstance()) { ShopManager.SetItemState(); } }
/// <summary> /// restore already purchased user's transactions for non consumable iaps. /// For Android we use the received list for detecting previous purchases /// </summary> public static void RestoreTransactions() { #if UNITY_IPHONE StoreKitBinding.restoreCompletedTransactions(); #elif UNITY_ANDROID if (prods == null) { RestoreFailed("Restoring transactions failed. Please try again."); return; } for (int i = 0; i < prods.Count; i++) { string id = GetIAPIdentifier(prods[i].productId); if (!DBManager.isPurchased(id)) { DBManager.SetToPurchased(id); } } RestoreSucceeded(); #endif //update ShopManager GUI items if (ShopManager.GetInstance()) { ShopManager.SetItemState(); } }