public PurchaseError StartPurchase(string productIdentifier, int quantity, Action onPurchaseSucceeded, Action onPurchaseFailed) { _onPurchaseSucceeded = onPurchaseSucceeded; _onPurchaseFailed = onPurchaseFailed; if (Application.internetReachability == NetworkReachability.NotReachable) { return(PurchaseError.NoNetwork); } else if (IsTransactionPending) { return(PurchaseError.TransactionPending); } else { IsTransactionPending = true; MarketProduct product = null; if (_marketProducts.TryGetValue(productIdentifier, out product)) { PurchaseProduct(product, quantity); return(PurchaseError.None); } else { Debug.LogError("The purchasing product [" + productIdentifier + "] doesn't exist"); EndPurchase(false); return(PurchaseError.InvalidProductId); } } }
protected override void PurchaseProduct(MarketProduct product, int quantity) { #if UNITY_EDITOR UnityEngine.Debug.Log("Cost real currency" + product.FormattedPrice + "x" + quantity + " and purchased product [" + product.ProductIdentifier + "] named [" + product.Title + "]"); EndPurchase(true); #else EndPurchase(false); #endif }
public static Dictionary <string, MarketProduct> CreateProductListFromVirtualItemsConfig(GameKitConfig config) { Dictionary <string, MarketProduct> list = new Dictionary <string, MarketProduct>(); foreach (var item in config.VirtualItems) { MarketProduct product = TryCreateMarketProductFromVirtualItem(item); if (product != null) { list.Add(product.ProductIdentifier, product); } } return(list); }
public static MarketProduct TryCreateMarketProductFromVirtualItem(VirtualItem item) { if (item is PurchasableItem) { PurchasableItem purchasableItem = item as PurchasableItem; foreach (Purchase purchase in purchasableItem.PurchaseInfo) { if (purchase.IsMarketPurchase) { MarketProduct product = new MarketProduct(); product.ProductIdentifier = purchase.MarketID; product.Title = item.Name; product.Price = purchase.Price.ToString(); product.Description = item.Description; product.CurrencySymbol = "¥"; product.CurrencyCode = "RMB"; product.FormattedPrice = string.Format("{0}{1}.00", product.CurrencySymbol, product.Price); return(product); } } } return(null); }
protected override void RequestProductList() { _marketProducts = MarketProduct.CreateProductListFromVirtualItemsConfig(GameKit.Config); EndProductListRequest(true); }
protected abstract void PurchaseProduct(MarketProduct product, int quantity);