コード例 #1
0
        public void FinishTransaction(UM_iTransaction transaction)
        {
            if (transaction.State == UM_TransactionState.Failed)
            {
                //noting to fninish since it's failed
                //it will not have product or transaction id
                return;
            }

            var product = AN_Billing.Inventory.GetProductById(transaction.ProductId);

            if (product != null)
            {
                if (product.Type == AN_ProductType.inapp && product.IsConsumable)
                {
                    var purchase = (transaction as UM_AndroidTransaction).Purchase;
                    if (purchase != null)
                    {
                        AN_Billing.Consume(purchase, (result) => { });
                    }
                }
            }
            else
            {
                Debug.LogError("Transaction is finished, but no product found with such id");
            }


            UM_AndroidInAppTransactions.RegisterCompleteTransaction(transaction.Id);
        }
コード例 #2
0
        //--------------------------------------
        //  UM_iInAppClient
        //--------------------------------------

        public void AddPayment(string productId)
        {
            var product = AN_Billing.Inventory.GetProductById(productId);

            AN_Billing.Purchase(product, (result) => {
                var transaction = new UM_AndroidTransaction(result);
                UpdateTransaction(transaction);
            });
        }
コード例 #3
0
        public override void Test()
        {
            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.OriginalJson " + product.OriginalJson);
                        AN_Logger.Log("----------------------------------------------------");
                    }
                }

                SetAPIResult(result);
            });
        }
コード例 #4
0
        //--------------------------------------
        //  UM_AbstractInAppClient
        //--------------------------------------

        protected override void ConnectToService(Action <SA_Result> callback)
        {
            AN_Billing.Connect((result) => {
                if (!result.IsInAppsAPIAvalible && !result.IsSubsAPIAvalible)
                {
                    var error            = new SA_Error(100, "Current device does not support InApps");
                    var connectionResult = new SA_Result(error);
                    callback.Invoke(connectionResult);
                    return;
                }

                callback.Invoke(result);
            });
        }
コード例 #5
0
    private void SubscriptionReplace()
    {
        var oldProductId = "old_subscription_id";
        var newProductId = "new_subscription_id";

        AN_Billing.PurchaseSubscriptionReplace(new List <string> {
            oldProductId
        }, newProductId, string.Empty, (result) =>
        {
            if (result.IsSucceeded)
            {
                UM_DialogsUtility.ShowMessage("Replace Succeeded", result.Purchase.ToString());
            }
            else
            {
                UM_DialogsUtility.ShowMessage("Failed", result.Error.FullMessage);
            }
        });
    }
コード例 #6
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);
            });
        }
コード例 #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());
                }
            });
        });
    }
コード例 #8
0
 public override void Test()
 {
     AN_Billing.Consume(AN_Billing.Inventory.Purchases[0], (SA_Result result) => {
         SetAPIResult(result);
     });
 }