예제 #1
0
        // Constructor
        void Start()
        {
            var builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());

            for (int i = 0; i < inAppPurchaseSettings.products.Length; i++)
            {
                InAppPurchaseSettings.GameProduct gameProduct = inAppPurchaseSettings.products [i];
                IDs ids = new IDs();
                ids.Add(inAppPurchaseSettings.mainId + "." + gameProduct.id, GooglePlay.Name);
                ids.Add(inAppPurchaseSettings.mainId + "." + gameProduct.id, AppleAppStore.Name);
                builder.AddProduct(gameProduct.id, gameProduct.type, ids);
            }

            UnityPurchasing.Initialize(this, builder);
        }
예제 #2
0
        /// <summary>
        /// Called when Unity IAP is ready to make purchases.
        /// </summary>
        public void OnInitialized(IStoreController controller, IExtensionProvider extensions)
        {
            this.controller = controller;
            this.extensions = extensions;

            for (int i = 0; i < inAppPurchaseSettings.products.Length; i++)
            {
                InAppPurchaseSettings.GameProduct gameProduct = inAppPurchaseSettings.products [i];
                Product product = controller.products.WithID(gameProduct.id);
                if (product == null)
                {
                    Debug.LogError("$ Critical error product with id returns null.");
                }
                foreach (var function in inAppPurchaseSettings.onInitialized)
                {
                    function.SafeInvoke(product);
                }
            }
        }
예제 #3
0
        /// <summary>
        /// Called when a purchase completes.
        ///
        /// May be called at any time after OnInitialized().
        /// </summary>
        public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs e)
        {
            for (int i = 0; i < inAppPurchaseSettings.products.Length; i++)
            {
                InAppPurchaseSettings.GameProduct gameProduct = inAppPurchaseSettings.products [i];

                if (string.Equals(e.purchasedProduct.definition.id, gameProduct.id, System.StringComparison.Ordinal))
                {
                    Debug.Log(string.Format("ProcessPurchase : PASS. Product {0}", e.purchasedProduct.definition.id));

                    foreach (var function in inAppPurchaseSettings.onBuyProduct)
                    {
                        function.SafeInvoke(e.purchasedProduct);
                    }

                    return(gameProduct.result);
                }
            }

            return(PurchaseProcessingResult.Complete);
        }