Beispiel #1
0
        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);
                }
            }
        }
Beispiel #2
0
        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
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
 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);
 }
Beispiel #5
0
 protected override void RequestProductList()
 {
     _marketProducts = MarketProduct.CreateProductListFromVirtualItemsConfig(GameKit.Config);
     EndProductListRequest(true);
 }
Beispiel #6
0
 protected abstract void PurchaseProduct(MarketProduct product, int quantity);