private void ProductRestoredCallback(IAPOperationStatus status, string errorMessage, StoreProduct storeProduct) { if (status == IAPOperationStatus.Success) { if (storeProduct.productName == ShopProductNames.Subscription1.ToString()) { if (CheckProductActive(storeProduct)) { Mediator.Instance.CustomStatisticsManager.IsSubscriptionPurchased = true; } } if (storeProduct.productName == ShopProductNames.DiceBR.ToString()) { if (CheckProductActive(storeProduct)) { Mediator.Instance.CustomStatisticsManager.UserData.ApplyPurchasedDice("BR"); } } if (storeProduct.productName == ShopProductNames.DiceBW.ToString()) { if (CheckProductActive(storeProduct)) { Mediator.Instance.CustomStatisticsManager.UserData.ApplyPurchasedDice("BW"); } } } }
private void ProductBoughtCallback(IAPOperationStatus status, string message, StoreProduct product) { if (status == IAPOperationStatus.Success) { if (product.productName == "RemoveAds") { noAds = true; return; } else if (product.productName == "UnlockChaos") { unlockedChaos = true; } else if (product.productName == "UnlockImpossible") { unlockedImpossible = true; } else if (product.productName == "UnlockUnfair") { unlockedUnfair = true; } GameObject.Find("Game Mode Manager").GetComponent <GameModeManager>().UpdateGameModeDisplay(); } }
/// <summary> /// automatically called after one product is bought /// </summary> /// <param name="status">The purchase status: Success/Failed</param> /// <param name="message">Error message if status is failed</param> /// <param name="product">the product that was bought, use the values from shop product to update your game data</param> private void ProductBought(IAPOperationStatus status, string message, StoreProduct product) { purchaseInProgress = false; if (status == IAPOperationStatus.Success) { if (IAPManager.Instance.debug) { Debug.Log("Buy product completed: " + product.localizedTitle + " receive value: " + product.value); GleyEasyIAP.ScreenWriter.Write("Buy product completed: " + product.localizedTitle + " receive value: " + product.value); } //each consumable gives coins in this example if (product.productType == ProductType.Consumable) { coins += product.value; } //non consumable Unlock Level 1 -> unlocks level 1 so we set the corresponding bool to true if (product.productName == "UnlockLevel1") { //unlockLevel1 = true; } //non consumable Unlock Level 2 -> unlocks level 2 so we set the corresponding bool to true if (product.productName == "UnlockLevel2") { //unlockLevel2 = true; } //subscription has been bought so we set our subscription variable to true if (product.productName == "Subscription") { //subscription = true; } if (product.productType == ProductType.NonConsumable) { if (product.active) { nonCOnsumableProducts.First(cond => cond.name.ToString() == product.productName).bought = true; } } if (product.productType == ProductType.Subscription) { if (product.active) { subscriptions.First(cond => cond.name.ToString() == product.productName).bought = true; } } } else { //en error occurred in the buy process, log the message for more details if (IAPManager.Instance.debug) { Debug.Log("Buy product failed: " + message); GleyEasyIAP.ScreenWriter.Write("Buy product failed: " + message); } } }
private void InitializeResultCallback(IAPOperationStatus status, string message, List <StoreProduct> shopProducts) { if (status == IAPOperationStatus.Success) { //IAP was successfully initialized //loop through all products for (int i = 0; i < shopProducts.Count; i++) { //if active variable is true, means that user had bought that product //so enable access if (shopProducts[i].active) { if (shopProducts[i].productName == "RemoveAds") { noAds = true; } if (shopProducts[i].productName == "UnlockChaos") { unlockedChaos = true; } if (shopProducts[i].productName == "UnlockImpossible") { unlockedImpossible = true; } if (shopProducts[i].productName == "UnlockUnfair") { unlockedUnfair = true; } } } GameObject.Find("Game Mode Manager").GetComponent <GameModeManager>().UpdateGameModeDisplay(); } }
private static void BuyComplete(IAPOperationStatus status, string message, StoreProduct product) { if (status == IAPOperationStatus.Success) { CustomEvent.Trigger(buyEventTarget, "BuyComplete", true); } else { CustomEvent.Trigger(buyEventTarget, "BuyComplete", false); } }
private void RestoreResult(IAPOperationStatus status, string message, StoreProduct product) { if (status == IAPOperationStatus.Success) { Fsm.Event(eventTarget, restoreDone); } else { Fsm.Event(eventTarget, restoreFailed); } }
private void ProductBought(IAPOperationStatus status, string arg1, StoreProduct arg2) { callbackReceived = true; if (status == IAPOperationStatus.Success) { _output.SetValue(true); } else { _output.SetValue(false); } }
private void BuyComplete(IAPOperationStatus status, string message, StoreProduct storeProduct) { if (status == IAPOperationStatus.Success) { Fsm.Event(eventTarget, buySuccessful); } else { Fsm.Event(eventTarget, buyFailed); } Finish(); }
private void InitializationResult(IAPOperationStatus status, string arg1, List <StoreProduct> arg2) { callbackReceived = true; if (status == IAPOperationStatus.Success) { _output.SetValue(true); } else { _output.SetValue(false); } }
private void InitializationResult(IAPOperationStatus status, string message, List <StoreProduct> storeProducts) { if (status == IAPOperationStatus.Success) { Fsm.Event(eventTarget, initializationDone); } else { Fsm.Event(eventTarget, initializationFailed); } Finish(); }
private static void InitializeResult(IAPOperationStatus status, string message, List <StoreProduct> products) { if (status == IAPOperationStatus.Fail) { Debug.Log(message); CustomEvent.Trigger(initializeEventTarget, "InitComplete", false); } else { CustomEvent.Trigger(initializeEventTarget, "InitComplete", true); } }
// ----------------- End of Public Methods ------------------ // ----------------- Private Helper Methods ----------------------- private void InitializeResultCallback(IAPOperationStatus status, string message, List <StoreProduct> shopProducts) { if (status == IAPOperationStatus.Success) { debugger.Log("IAP Successfully validated products."); //IAP was successfully initialized NotifyDelegateDidValidateProducts(shopProducts, true, message); } else { debugger.Log("IAP Error validating products: " + message); NotifyDelegateDidValidateProducts(shopProducts, false, message); } }
private void BuyComplete(IAPOperationStatus status, string message, StoreProduct product) { if (status == IAPOperationStatus.Success) { if (product.productName == "RemoveAds") { //remove ads } } else { //an error occurred in the buy process, log the message for more details Debug.Log("Buy product failed: " + message); } }
private void ProductRestoredCallback(IAPOperationStatus status, string message, StoreProduct product) { if (status == IAPOperationStatus.Success) { debugger.Log("IAP Successfully restored product: " + product.productName); NotifyDelegateDidRestorePurchase(product, true, message); } else { //an error occurred in the buy process, log the message for more details debugger.Log("IAP Failed to restore product: " + message); NotifyDelegateDidRestorePurchase(product, false, message); } }
// automatically called after one product is bought // this is an example of product bought callback private void ProductBoughtCallback(IAPOperationStatus status, string message, StoreProduct product) { if (status == IAPOperationStatus.Success) { debugger.Log("IAP Successfully purchased product: " + product.productName); // Notify delegate NotifyDelegateDidBuyProduct(product, true, message); } else { //an error occurred in the buy process, log the message for more details debugger.Log("IAP Buy product failed: " + message); // Notify delegate NotifyDelegateDidBuyProduct(product, false, message); } }
private void InitComplete(IAPOperationStatus status, string errorMessage, List <StoreProduct> storeProducts) { if (status == IAPOperationStatus.Success) { for (int i = 0; i < storeProducts.Count; i++) { if (Mediator.Instance.GameConfig.IsDebug) { Debug.Log($"Init product: {storeProducts[i].productName} && Active: {CheckProductActive(storeProducts[i])}"); } if (storeProducts[i].productName == ShopProductNames.Subscription1.ToString()) { if (CheckProductActive(storeProducts[i])) { Mediator.Instance.CustomStatisticsManager.IsSubscriptionPurchased = true; } } if (storeProducts[i].productName == ShopProductNames.DiceBR.ToString()) { if (CheckProductActive(storeProducts[i])) { Mediator.Instance.CustomStatisticsManager.UserData.ApplyPurchasedDice("BR"); } } if (storeProducts[i].productName == ShopProductNames.DiceBW.ToString()) { if (CheckProductActive(storeProducts[i])) { Mediator.Instance.CustomStatisticsManager.UserData.ApplyPurchasedDice("BW"); } } } } CheckSubscription(); }
private void InitComplete(IAPOperationStatus status, string message, List <StoreProduct> shopProducts) { if (status == IAPOperationStatus.Success) { //IAP was successfully initialized //loop through all products for (int i = 0; i < shopProducts.Count; i++) { if (shopProducts[i].productName == "YourProductName") { //if active variable is true, means that user had bought that product //so enable access if (shopProducts[i].active) { //activate things for the user } } } } else { Debug.Log("Error occurred " + message); } }
/// <summary> /// automatically called after initialization is success /// </summary> /// <param name="status">The initialization result: Success/Failed</param> /// <param name="message">Error message if status is failed</param> /// <param name="shopProducts">list of all shop products, can be used to unlock update some game values</param> private void InitializeResult(IAPOperationStatus status, string message, List <StoreProduct> shopProducts) { initializationInProgress = false; consumableProducts = new List <MyStoreProducts>(); nonCOnsumableProducts = new List <MyStoreProducts>(); subscriptions = new List <MyStoreProducts>(); if (status == IAPOperationStatus.Success) { //IAP was successfully initialized //loop through all products and check which one are bought to update our variables for (int i = 0; i < shopProducts.Count; i++) { if (shopProducts[i].productName == "UnlockLevel1") { //if a product is active, means that user had already bought that product so enable access if (shopProducts[i].active) { //unlockLevel1 = true; } } if (shopProducts[i].productName == "UnlockLevel2") { if (shopProducts[i].active) { //unlockLevel2 = true; } } if (shopProducts[i].productName == "Subscription") { //if a subscription is active means that the subscription is still valid so enable access if (shopProducts[i].active) { //subscription = true; } } //construct a different list of each category of products, for an easy display purpose, not required switch (shopProducts[i].productType) { case ProductType.Consumable: consumableProducts.Add(new MyStoreProducts(IAPManager.Instance.ConvertNameToShopProduct(shopProducts[i].productName), shopProducts[i].active)); break; case ProductType.NonConsumable: nonCOnsumableProducts.Add(new MyStoreProducts(IAPManager.Instance.ConvertNameToShopProduct(shopProducts[i].productName), shopProducts[i].active)); break; case ProductType.Subscription: subscriptions.Add(new MyStoreProducts(IAPManager.Instance.ConvertNameToShopProduct(shopProducts[i].productName), shopProducts[i].active)); break; } } } else { //Error initializing IAP } if (IAPManager.Instance.debug) { Debug.Log("Init status: " + status + " message " + message); GleyEasyIAP.ScreenWriter.Write("Init status: " + status + " message " + message); } }
private void ProductBought(IAPOperationStatus status, string errorMessage, StoreProduct storeProduct) { if (status == IAPOperationStatus.Success) { if (storeProduct.productName == ShopProductNames.Chips100.ToString()) { Mediator.Instance.ResourcesStorage.Chips.AddResources(100); } else if (storeProduct.productName == ShopProductNames.Chips1000.ToString()) { Mediator.Instance.ResourcesStorage.Chips.AddResources(1000); } else if (storeProduct.productName == ShopProductNames.Chips10000.ToString()) { Mediator.Instance.ResourcesStorage.Chips.AddResources(10000); } else if (storeProduct.productName == ShopProductNames.Chips1000_SpecialOffer.ToString()) { Mediator.Instance.ResourcesStorage.Chips.AddResources(1000); } else if (storeProduct.productName == ShopProductNames.Chips200.ToString()) { Mediator.Instance.ResourcesStorage.Chips.AddResources(200); } else if (storeProduct.productName == ShopProductNames.Chips2000.ToString()) { Mediator.Instance.ResourcesStorage.Chips.AddResources(2000); } else if (storeProduct.productName == ShopProductNames.Chips300.ToString()) { Mediator.Instance.ResourcesStorage.Chips.AddResources(300); } else if (storeProduct.productName == ShopProductNames.Chips400.ToString()) { Mediator.Instance.ResourcesStorage.Chips.AddResources(400); } else if (storeProduct.productName == ShopProductNames.Chips500.ToString()) { Mediator.Instance.ResourcesStorage.Chips.AddResources(500); } else if (storeProduct.productName == ShopProductNames.Chips5000.ToString()) { Mediator.Instance.ResourcesStorage.Chips.AddResources(5000); } else if (storeProduct.productName == ShopProductNames.DiceBR.ToString()) { Mediator.Instance.CustomStatisticsManager.UserData.ApplyPurchasedDice("BR"); } else if (storeProduct.productName == ShopProductNames.DiceBW.ToString()) { Mediator.Instance.CustomStatisticsManager.UserData.ApplyPurchasedDice("BW"); } else if (storeProduct.productName == ShopProductNames.Energy1.ToString()) { Mediator.Instance.ResourcesStorage.Energy.AddResources(1); } else if (storeProduct.productName == ShopProductNames.Energy10.ToString()) { Mediator.Instance.ResourcesStorage.Energy.AddResources(10); } else if (storeProduct.productName == ShopProductNames.Energy5.ToString()) { Mediator.Instance.ResourcesStorage.Energy.AddResources(5); } else if (storeProduct.productName == ShopProductNames.Energy_Full_SpecialOffer.ToString()) { Mediator.Instance.ResourcesStorage.Energy.AddResources(10); } else if (storeProduct.productName == ShopProductNames.Subscription1.ToString()) { Mediator.Instance.CustomStatisticsManager.IsSubscriptionPurchased = true; } else if (storeProduct.productName == ShopProductNames.Surprise1.ToString()) { Mediator.Instance.ResourcesStorage.SurpriseBox.AddResources(1); } SendPurchasedDataToDatabase(storeProduct); } else { Debug.LogError(errorMessage); } if (_productBoughtCallback != null) { _productBoughtCallback?.Invoke(); } }