public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs args) { IAPItem item = null; foreach (var i in iapItems) { if (String.Equals(args.purchasedProduct.definition.id, i.productID, StringComparison.Ordinal)) { Debug.Log(string.Format("ProcessPurchase: PASS. Product: '{0}'", args.purchasedProduct.definition.id)); item = i; } } if (args.purchasedProduct.hasReceipt) { string receipt = args.purchasedProduct.receipt; JSONNode receiptJson = JSON.Parse(JSON.Parse(receipt)["Payload"]); item.receipt = receiptJson["json"]; item.signature = receiptJson["signature"]; } if (onItemPurchased != null) { onItemPurchased(item, Array.IndexOf(iapItems, item)); } // Return a flag indicating whether this product has completely been received, or if the application needs // to be reminded of this purchase at next app launch. Use PurchaseProcessingResult.Pending when still // saving purchased products to the cloud, and when that save is delayed. return(PurchaseProcessingResult.Complete); }
//============================================================================= public void PurchaseEventComplete(bool bSuccess, IAPItem PurchasedItem, eIAPReturnCode ErrorCode) { LockView(false); if (bSuccess) { // Add items to our total if (PurchasedItem != null) { Debug.Log("Product Purchased: " + PurchasedItem.ItemTitle + " (" + PurchasedItem.Quantity + ")"); GameDataManager.Instance.AddPlayerDiamonds(PurchasedItem.Quantity, true); GameDataManager.Instance.BroadcastGuiData(); // Continue game RevivePlayer(); } } else { // Log purchase of pack cancellation Debug.Log("Purchase failed!"); // Restart timer _isCountdownActive = true; } }
private void OnItemPurchased(IAPItem item, int index) { // A consumable product has been purchased by this user. if (item.productType == ProductType.Consumable) { CurrencyController.CreditBalance(item.value); Toast.instance.ShowMessage("Your purchase is successful"); // 判断是否是去除广告的 if (item.isRemoveAd) { CUtils.SetBuyItem(); CUtils.HideBannerAd(); } EventTrackingController.instance.LogGemsAdd(item.value, "IAP", item.productID); EventTrackingController.instance.LogPurchaseEvent(item.price * 100, item.productID, "shopdialog", item.receipt, item.signature); } // Or ... a non-consumable product has been purchased by this user. else if (item.productType == ProductType.NonConsumable) { // TODO: The non-consumable item has been successfully purchased, grant this item to the player. } // Or ... a subscription product has been purchased by this user. else if (item.productType == ProductType.Subscription) { // TODO: The subscription item has been successfully purchased, grant this to the player. } }
private void PopulateScreen() { #if ENABLE_IAP IAPManager iapManager = IAPManager.Instance; if (iapManager == null || !iapManager.Initialized) { return; } if (m_ItemPrefab != null && m_ItemParent != null) { List <IAPItem> availableItems = iapManager.AvailableItems; for (int i = 0; i < availableItems.Count; ++i) { IAPItem item = availableItems[i]; ShopItem spawnedItem = Instantiate <ShopItem>(m_ItemPrefab); spawnedItem.ShowItem(item); spawnedItem.transform.SetParent(m_ItemParent, false); } } #endif }
//============================================================================= public void PurchaseEventComplete(bool bSuccess, IAPItem PurchasedItem, eIAPReturnCode ErrorCode) { LockView(false); if (bSuccess) { // Add items to our total if (PurchasedItem != null) { Debug.Log("Product Purchased: " + PurchasedItem.ItemTitle + " (" + PurchasedItem.Quantity + ")"); switch (m_CurrentPage) { case eShopPageType.GEMS: GameDataManager.Instance.AddPlayerGems(PurchasedItem.Quantity, true); break; case eShopPageType.DIAMONDS: GameDataManager.Instance.AddPlayerDiamonds(PurchasedItem.Quantity, true); break; } GameDataManager.Instance.BroadcastGuiData(); } } else { // Log purchase of pack cancellation Debug.Log("Purchase failed!"); } }
//Converts model (IAPItem) to view public void ShowItem(IAPItem itemToShow) { displayedItem = itemToShow; nameLabel.text = itemToShow.Name; costLabel.text = itemToShow.PriceString; sprite.texture = itemToShow.GetThumbnail(); }
public void CreateIAPShopData() { for (int i = 0; i < (int)IAPType.Count; i++) { itemList[i] = new List <IAPItem>(); } IAPItem cash50w = new IAPItem(); cash50w.ID = "com.trinitigame.callofminizombies.099cents"; cash50w.iType = IAPType.Cash; cash50w.Name = IAPName.Cash50W; cash50w.Desc = "$500,000\nMINI PACK"; cash50w.textureRect = ShopTexturePosition.CashLogo; AddIAPItem(cash50w); IAPItem cash120w = new IAPItem(); cash120w.ID = "com.trinitigame.callofminizombies.199cents"; cash120w.iType = IAPType.Cash; cash120w.Name = IAPName.Cash120W; cash120w.Desc = "$1,200,000\nMEDIUM PACK"; cash120w.textureRect = ShopTexturePosition.CashLogo; AddIAPItem(cash120w); IAPItem cash270w = new IAPItem(); cash270w.ID = "com.trinitigame.callofminizombies.299cents"; cash270w.iType = IAPType.Cash; cash270w.Name = IAPName.Cash270W; cash270w.Desc = "$2,700,000\nMEGA PACK"; cash270w.textureRect = ShopTexturePosition.CashLogo; AddIAPItem(cash270w); IAPItem cash750w = new IAPItem(); cash750w.ID = "com.trinitigame.callofminizombies.999cents"; cash750w.iType = IAPType.Cash; cash750w.Name = IAPName.Cash750W; cash750w.Desc = "$7,500,000\n XL MEGA PACK"; cash750w.textureRect = ShopTexturePosition.CashLogo; AddIAPItem(cash750w); IAPItem cash1650w = new IAPItem(); cash1650w.ID = "com.trinitigame.callofminizombies.1999cents"; cash1650w.iType = IAPType.Cash; cash1650w.Name = IAPName.Cash1650W; cash1650w.Desc = "$16,500,000\n XXL MEGA PACK"; cash1650w.textureRect = ShopTexturePosition.CashLogo; AddIAPItem(cash1650w); }
public void Start() { Text TextCmp = GetComponent(typeof(Text)) as Text; if (TextCmp != null) { if ((IAPManager.instance != null) && IAPManager.instance.IsStoreAvailable()) { IAPItem CurItem = IAPManager.instance.GetIAPItem(iapID); TextCmp.text = "" + CurItem.ItemTitle; } else { TextCmp.text = "Store unavailable"; } } }
private void OnItemPurchased(IAPItem item, int index) { // A consumable product has been purchased by this user. if (item.productType == PType.Consumable) { } // Or ... a non-consumable product has been purchased by this user. else if (item.productType == PType.NonConsumable) { CUtils.SetRemoveAds(true); Toast.instance.ShowMessage("Removing ads is successful"); } // Or ... a subscription product has been purchased by this user. else if (item.productType == PType.Subscription) { // TODO: The subscription item has been successfully purchased, grant this to the player. } }
private void OnItemPurchased(IAPItem item, int index) { // A consumable product has been purchased by this user. if (item.productType == ProductType.Consumable) { CurrencyController.CreditBalance(item.value); Toast.instance.ShowMessage("Your purchase is successful"); CUtils.SetBuyItem(); } // Or ... a non-consumable product has been purchased by this user. else if (item.productType == ProductType.NonConsumable) { // TODO: The non-consumable item has been successfully purchased, grant this item to the player. } // Or ... a subscription product has been purchased by this user. else if (item.productType == ProductType.Subscription) { // TODO: The subscription item has been successfully purchased, grant this to the player. } }
public void AddIAPItem(IAPItem item) { itemList[0].Add(item); }