Ejemplo n.º 1
0
        protected override void OnServiceUI()
        {
            using (new SA_WindowBlockWithSpace(new GUIContent("Your license key"))) {
                EditorGUILayout.HelpBox("RSA public key will be used for app licensing. &  in-app billing purchases",
                                        MessageType.Info);

                EditorGUILayout.LabelField("Base64-encoded RSA public key");

                AN_Settings.Instance.RSAPublicKey = EditorGUILayout.TextArea(AN_Settings.Instance.RSAPublicKey, SA_PluginSettingsWindowStyles.TextArea, GUILayout.Height(95));
                AN_Settings.Instance.RSAPublicKey.Trim();
            }

            using (new SA_WindowBlockWithSpace(new GUIContent("Licensing "))) {
                EditorGUILayout.HelpBox("Licensing allows you to prevent unauthorized distribution of your App.", MessageType.Info);
                AN_Settings.Instance.Licensing = SA_EditorGUILayout.ToggleFiled("API Status", AN_Settings.Instance.Licensing, SA_StyledToggle.ToggleType.EnabledDisabled);
            }

            using (new SA_WindowBlockWithSpace(new GUIContent("In-App Products List"))) {
                if (AN_Settings.Instance.InAppProducts.Count == 0)
                {
                    EditorGUILayout.HelpBox("Use this menu to specify in-app products available for your App.", MessageType.Info);
                }

                SA_EditorGUILayout.ReorderablList(AN_Settings.Instance.InAppProducts, GetProductDisplayName, DrawProductContent, () => {
                    var product   = new AN_Product("your.product.sku", AN_ProductType.inapp);
                    product.Title = "New Product";
                    AN_Settings.Instance.InAppProducts.Add(product);
                });
            }
        }
Ejemplo n.º 2
0
        private void DrawProductContent(AN_Product product)
        {
            product.ProductId    = SA_EditorGUILayout.TextField(ProductIdDLabel, product.ProductId);
            product.Title        = SA_EditorGUILayout.TextField(DisplayNameLabel, product.Title);
            product.Type         = (AN_ProductType)SA_EditorGUILayout.EnumPopup(ProductType, product.Type);
            product.IsConsumable = SA_EditorGUILayout.ToggleFiled(ConsumableLabel, product.IsConsumable, SA_StyledToggle.ToggleType.YesNo);

            product.Price = SA_EditorGUILayout.TextField(PriceLabel, product.Price);


            EditorGUILayout.LabelField(DescriptionLabel);
            using (new SA_GuiBeginHorizontal()) {
                product.Description = EditorGUILayout.TextArea(product.Description, GUILayout.Height(60), GUILayout.MinWidth(190));
                EditorGUILayout.Space();
                product.Icon = (Texture2D)EditorGUILayout.ObjectField("", product.Icon, typeof(Texture2D), false, GUILayout.Width(75));
            }
        }
Ejemplo n.º 3
0
        public override void Test()
        {
            AN_Product product = new AN_Product("android.test.purchased", AN_ProductType.inapp);

            AN_Billing.Purchase(product, (result) => {
                AN_Logger.Log("Purchase result.IsSucceeded: " + result.IsSucceeded);
                if (result.IsSucceeded)
                {
                    var purchase = result.Purchase;
                    PrintPurchaseInfo(purchase);
                }


                AN_Logger.Log("Now print it from invent");
                foreach (var purchase in AN_Billing.Inventory.Purchases)
                {
                    PrintPurchaseInfo(purchase);
                }

                SetAPIResult(result);
            });
        }
        public void SetUp()
        {
            var settings = AN_Settings.Instance;

            settings.RSAPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAonqY2kxgUKeAioN2tnMB2jtS1tBVwm0RHvsrFkDewHfzMGyBZvHsg9UN47H1MO6omXtNvsVuOnACV02MWIY16w7TPnttYTY7e2pULARafq7GwPuh9F7gLDdGluIoi/dJGjhaCTzvY6TpslI/FegJ/tDXVsNZh7urAxO1pWP4vrs412lANAjN8O6KF2dxF0VSThejyjzhyL0QWVtXtB6mJ9Ulsw16+0ndY4/Y4gL0BYSiJ4Qa+y7Ron6IXEGOnimixvGWasQQSKZHtEOLrh593ssp4a9PKMLQHWP7Pu2AYDmzhfR/ZkR1ZupKattjsviPnz5fTpsZ3oggSK+7IDBWQwIDAQAB";
            settings.InAppProducts.Clear();

            var p0 = new AN_Product(UM_InAppService.TEST_ITEM_PURCHASED, AN_ProductType.inapp);

            p0.Title        = "Android Purchased";
            p0.IsConsumable = false;
            settings.InAppProducts.Add(p0);

            var p1 = new AN_Product(UM_InAppService.TEST_ITEM_UNAVAILABLE, AN_ProductType.inapp);

            p1.Title        = "Android Unavailable";
            p1.IsConsumable = false;
            settings.InAppProducts.Add(p1);

            m_Observer = new TestTransactionObserver();
            UM_InAppService.Client.SetTransactionObserver(m_Observer);
        }
Ejemplo n.º 5
0
 private string GetProductDisplayName(AN_Product product)
 {
     return(product.Title + "           " + product.Price + "$");
 }
Ejemplo n.º 6
0
        public static void ApplyExampleConfig()
        {
            PlayerSettings.productName = "Android Native";
            PlayerSettings.SetApplicationIdentifier(BuildTargetGroup.Android, "com.stansassets.androidnative.pro");

            PlayerSettings.Android.keystorePass = "******";

            PlayerSettings.Android.keyaliasName = "android native pro";
            PlayerSettings.Android.keyaliasPass = "******";


            var settings = AN_Settings.Instance;

            settings.LogLevel.Info    = true;
            settings.LogLevel.Warning = true;
            settings.LogLevel.Error   = true;

            settings.WTFLogging = true;

            //Making environment for Vending Test
            settings.Vending   = true;
            settings.Licensing = true;


            settings.RSAPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAonqY2kxgUKeAioN2tnMB2jtS1tBVwm0RHvsrFkDewHfzMGyBZvHsg9UN47H1MO6omXtNvsVuOnACV02MWIY16w7TPnttYTY7e2pULARafq7GwPuh9F7gLDdGluIoi/dJGjhaCTzvY6TpslI/FegJ/tDXVsNZh7urAxO1pWP4vrs412lANAjN8O6KF2dxF0VSThejyjzhyL0QWVtXtB6mJ9Ulsw16+0ndY4/Y4gL0BYSiJ4Qa+y7Ron6IXEGOnimixvGWasQQSKZHtEOLrh593ssp4a9PKMLQHWP7Pu2AYDmzhfR/ZkR1ZupKattjsviPnz5fTpsZ3oggSK+7IDBWQwIDAQAB";

            settings.InAppProducts.Clear();

            var p0 = new AN_Product("android.test.purchased", AN_ProductType.inapp);

            p0.Title        = "Android Purchased";
            p0.IsConsumable = false;
            settings.InAppProducts.Add(p0);

            var p1 = new AN_Product("example.product.1", AN_ProductType.inapp);

            p1.Title = "Example 1";
            settings.InAppProducts.Add(p1);

            var p2 = new AN_Product("example.product.2", AN_ProductType.inapp);

            p2.Title = "Example 2";
            settings.InAppProducts.Add(p2);

            var p3 = new AN_Product("android.test.item_unavailable", AN_ProductType.inapp);

            p3.Title        = "Android Unavailable";
            p3.IsConsumable = false;
            settings.InAppProducts.Add(p3);



            //Application
            settings.LocalNotifications    = true;
            settings.SkipPermissionsDialog = true;


            //Contacts
            settings.Contacts = true;

            //Social
            settings.Social = true;

            //CameraAndGallery
            settings.CameraAndGallery = true;


            //Google Play
            settings.GooglePlay         = true;
            settings.GooglePlayGamesAPI = true;
            AN_GoolgePlayRersources.OverrideGamesIds(GAMES_IDS);
        }
Ejemplo n.º 7
0
#pragma warning restore 649

    void Start()
    {
        m_checkBillingAvalibility.onClick.AddListener(() => {
        });

        m_consumeButton.onClick.AddListener(() => {
            AN_Billing.Consume(AN_Billing.Inventory.Purchases[0], (SA_Result result) => {
                AN_Logger.Log("Consume result.IsSucceeded: " + result.IsSucceeded);
            });
        });

        m_purchaseButton.onClick.AddListener(() => {
            AN_Product product = new AN_Product("android.test.purchased", AN_ProductType.inapp);
            AN_Billing.Purchase(product, (result) => {
                AN_Logger.Log("Unity Purchase result.IsSucceeded: " + result.IsSucceeded);
                if (result.IsSucceeded)
                {
                    var purchase = result.Purchase;
                    AN_Logger.Log("purchase.OrderId: " + purchase.OrderId);
                    AN_Logger.Log("purchase.ProductId: " + purchase.ProductId);
                    AN_Logger.Log("purchase.PackageName: " + purchase.PackageName);
                    AN_Logger.Log("purchase.PurchaseState: " + purchase.PurchaseState);
                    AN_Logger.Log("purchase.PurchaseTime: " + purchase.PurchaseTime);
                    AN_Logger.Log("purchase.Signature: " + purchase.Signature);
                    AN_Logger.Log("purchase.Token: " + purchase.Token);
                    AN_Logger.Log("purchase.Type: " + purchase.Type);
                    AN_Logger.Log("purchase.DeveloperPayload: " + purchase.DeveloperPayload);
                    AN_Logger.Log("purchase.AutoRenewing: " + purchase.AutoRenewing);
                    AN_Logger.Log("purchase.OriginalJson: " + purchase.OriginalJson);
                    AN_Logger.Log("----------------------------------------------------");
                }
                else
                {
                    AN_Logger.Log("Unity  Purchase failed: " + result.Error.FullMessage);
                }
            });
        });

        m_connectButton.onClick.AddListener(() => {
            AN_Billing.Connect((result) => {
                AN_Logger.Log("Connect result.IsSucceeded: " + result.IsSucceeded);
                AN_Logger.Log("Connect result.IsInAppsAPIAvalible: " + result.IsInAppsAPIAvalible);
                AN_Logger.Log("Connect result.IsSubsAPIAvalible: " + result.IsSubsAPIAvalible);

                if (result.IsSucceeded)
                {
                    AN_Logger.Log("AN_Billing.Inventory.Purchases.Count: " + AN_Billing.Inventory.Purchases.Count);
                    AN_Logger.Log("AN_Billing.Inventory.Products.Count: " + AN_Billing.Inventory.Products.Count);

                    //Let's print all purchases info
                    foreach (AN_Purchase purchase in AN_Billing.Inventory.Purchases)
                    {
                        AN_Logger.Log("purchase.OrderId: " + purchase.OrderId);
                        AN_Logger.Log("purchase.ProductId: " + purchase.ProductId);
                        AN_Logger.Log("purchase.PackageName: " + purchase.PackageName);
                        AN_Logger.Log("purchase.PurchaseState: " + purchase.PurchaseState);
                        AN_Logger.Log("purchase.PurchaseTime: " + purchase.PurchaseTime);
                        AN_Logger.Log("purchase.Signature: " + purchase.Signature);
                        AN_Logger.Log("purchase.Token: " + purchase.Token);
                        AN_Logger.Log("purchase.Type: " + purchase.Type);
                        AN_Logger.Log("purchase.DeveloperPayload: " + purchase.DeveloperPayload);
                        AN_Logger.Log("purchase.AutoRenewing: " + purchase.AutoRenewing);
                        AN_Logger.Log("purchase.OriginalJson: " + purchase.OriginalJson);
                        AN_Logger.Log("----------------------------------------------------");
                    }

                    //And products info as well
                    foreach (AN_Product product in AN_Billing.Inventory.Products)
                    {
                        AN_Logger.Log("product.ProductId: " + product.ProductId);
                        AN_Logger.Log("product.Type: " + product.Type);
                        AN_Logger.Log("product.Price: " + product.Price);
                        AN_Logger.Log("product.Title: " + product.Title);
                        AN_Logger.Log("product.Description: " + product.Description);
                        AN_Logger.Log("product.PriceAmountMicros: " + product.PriceAmountMicros);
                        AN_Logger.Log("product.PriceCurrencyCode: " + product.PriceCurrencyCode);
                        AN_Logger.Log("product.SubscriptionPeriod: " + product.SubscriptionPeriod);
                        AN_Logger.Log("product.FreeTrialPeriod: " + product.FreeTrialPeriod);
                        AN_Logger.Log("product.SubscriptionPeriod: " + product.SubscriptionPeriod);
                        AN_Logger.Log("product.FreeTrialPeriod: " + product.FreeTrialPeriod);
                        AN_Logger.Log("product.IntroductoryPrice: " + product.IntroductoryPrice);
                        AN_Logger.Log("product.IntroductoryPriceAmountMicros: " + product.IntroductoryPriceAmountMicros);
                        AN_Logger.Log("product.IntroductoryPricePeriod: " + product.IntroductoryPricePeriod);
                        AN_Logger.Log("product.IntroductoryPriceCycles: " + product.IntroductoryPriceCycles);
                        AN_Logger.Log("product.IsValid: " + product.IsValid);
                        AN_Logger.Log("product.OriginalJson: " + product.OriginalJson);
                        AN_Logger.Log("----------------------------------------------------");
                    }
                }
                else
                {
                    AN_Logger.Log("Billing service connection failed: " + result.Error.FullMessage);
                }
            });
        });

        m_checkLicenseButton.onClick.AddListener(() => {
            AN_LicenseChecker.CheckAccess((result) => {
                switch (result.PolicyCode)
                {
                case AN_Policy.LICENSED:
                    AN_Logger.Log("AN_LicenseChecker: LICENSED");
                    break;

                case AN_Policy.NOT_LICENSED:
                    AN_Logger.Log("AN_LicenseChecker: NOT_LICENSED");
                    break;

                case AN_Policy.RETRY:
                    AN_Logger.Log("AN_LicenseChecker: RETRY");
                    break;
                }

                if (result.IsFailed)
                {
                    Debug.Log("AN_LicenseChecker error: " + result.ErrorCode.ToString());
                }
            });
        });
    }