private void BuyProductID(string productId) { if (IsInitialized()) { OnStartBuying?.Invoke(true); Product product = m_StoreController.products.WithID(productId); if (product != null && product.availableToPurchase) { m_StoreController.InitiatePurchase(product); } } }
public void RestorePurchases() { if (!IsInitialized()) { return; } OnStartBuying?.Invoke(true); _isRestoreClicked = true; var apple = m_StoreExtensionProvider.GetExtension <IAppleExtensions>(); apple.RestoreTransactions((result) => { _isRestoreClicked = false; OnStartBuying?.Invoke(false); }); }
public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason) { OnStartBuying?.Invoke(false); }
public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs args) { Debug.Log("ProcessPurchase " + args.purchasedProduct.metadata.localizedPrice + " " + args.purchasedProduct.metadata.localizedTitle + " " + args.purchasedProduct.metadata.localizedDescription); string transactionID = string.Empty; string purchaseDate = string.Empty; //if (String.Equals(args.purchasedProduct.definition.id, _currentProductId, StringComparison.Ordinal) || _isRestoreClicked) //{ bool validPurchase = true; #if UNITY_ANDROID || UNITY_IOS var validator = new CrossPlatformValidator(GooglePlayTangle.Data(), AppleTangle.Data(), Application.identifier); try { var result = validator.Validate(args.purchasedProduct.receipt); foreach (IPurchaseReceipt productReceipt in result) { transactionID = productReceipt.transactionID; purchaseDate = productReceipt.purchaseDate.ToString(); } } catch (IAPSecurityException) { validPurchase = false; } #endif if (validPurchase) { bool parseRes = System.Enum.TryParse(args.purchasedProduct.definition.id, out IAPEnum outType); if (!parseRes) { return(PurchaseProcessingResult.Complete); } switch (outType) { //case IAPEnum.rr_gems_small: // _analyticsManager.LogShopBuyClickEvent(AnalyticsEnum.Shop_buy_gems_small_click, StaticData.CurrentLevel.ToString()); // _dataManager.PurchaseGems(outType); // break; //case IAPEnum.rr_gems_medium: // _analyticsManager.LogShopBuyClickEvent(AnalyticsEnum.Shop_buy_gems_medium_click, StaticData.CurrentLevel.ToString()); // _dataManager.PurchaseGems(outType); // break; //case IAPEnum.rr_gems_big: // _analyticsManager.LogShopBuyClickEvent(AnalyticsEnum.Shop_buy_gems_big_click, StaticData.CurrentLevel.ToString()); // _dataManager.PurchaseGems(outType); // break; //case IAPEnum.rr_gold_small: // _analyticsManager.LogShopBuyClickEvent(AnalyticsEnum.Shop_buy_gold_small_click, StaticData.CurrentLevel.ToString()); // _dataManager.PurchaseGold(outType); // break; //case IAPEnum.rr_gold_medium: // _analyticsManager.LogShopBuyClickEvent(AnalyticsEnum.Shop_buy_gold_medium_click, StaticData.CurrentLevel.ToString()); // _dataManager.PurchaseGold(outType); // break; //case IAPEnum.rr_gold_big: // _analyticsManager.LogShopBuyClickEvent(AnalyticsEnum.Shop_buy_gold_big_click, StaticData.CurrentLevel.ToString()); // _dataManager.PurchaseGold(outType); // break; //case IAPEnum.rr_no_ads: // _dataManager.PurchaseNoAds(); // break; //case IAPEnum.rr_special_24: // _analyticsManager.LogShopBuyClickEvent(AnalyticsEnum.Shop_buy_special_24_click, StaticData.CurrentLevel.ToString()); // _dataManager.PurchaseSpecial24h(); // break; //case IAPEnum.rr_special_low: // _analyticsManager.LogShopBuyClickEvent(AnalyticsEnum.Shop_buy_special_low_click, StaticData.CurrentLevel.ToString()); // _dataManager.PurchaseSpecialLow(); // break; //case IAPEnum.rr_special_medium: // _analyticsManager.LogShopBuyClickEvent(AnalyticsEnum.Shop_buy_special_medium_click, StaticData.CurrentLevel.ToString()); // _dataManager.PurchaseSpecialVlad(); // break; //case IAPEnum.rr_battle_pass: // _dataManager.PurchasePremiumBattlePass(); // break; } } // _currentProductId = ""; //} //else //{ // _currentProductId = ""; //} OnStartBuying?.Invoke(false); return(PurchaseProcessingResult.Complete); }