//--------------------------------------
        //  AN_iPurchasesUpdatedListener
        //--------------------------------------

        public void onPurchasesUpdated(SA_iResult billingResult, List <AN_Purchase> purchases)
        {
            foreach (var purchase in purchases)
            {
                if (billingResult.IsSucceeded)
                {
                    m_Purchases.Add(purchase);
                }

                var transaction = new UM_AndroidTransaction(billingResult, purchase);
                UpdateTransaction(transaction);
            }

            if (purchases.Count == 0)
            {
                if (billingResult.IsFailed)
                {
                    var transaction = new UM_AndroidTransaction(billingResult, null);
                    UpdateTransaction(transaction);
                }
                else
                {
                    throw new InvalidEnumArgumentException("billingResult is Succeeded, but no products provided");
                }
            }
        }
 public AN_BillingConnectionResult(SA_iResult result) : base(result)
 {
     if (result.IsSucceeded)
     {
         m_inappState = AN_Billing.RESULT_OK;
         m_subsState  = AN_Billing.RESULT_OK;
     }
 }
    //--------------------------------------
    //  AN_iBillingClientStateListener
    //--------------------------------------

    public void OnBillingSetupFinished(SA_iResult billingResult)
    {
        if (billingResult.IsSucceeded)
        {
            m_IsConnected = true;
            AN_Logger.Log("Service Connected");
            return;
        }
    }
Esempio n. 4
0
    //--------------------------------------
    //  AN_iConsumeResponseListener
    //--------------------------------------

    public void OnConsumeResponse(SA_iResult billingResult, string purchaseToken)
    {
        if (billingResult.IsSucceeded)
        {
            //Let's updated our UI again
            BuildProducts();
        }
        else
        {
            AN_BillingClientSample.ShowErrorMessage(billingResult.Error);
        }
    }
 public UM_AndroidTransaction(SA_iResult billingResult, AN_Purchase purchase)
 {
     if (billingResult.IsSucceeded)
     {
         SetPurchase(purchase, false);
     }
     else
     {
         m_state = UM_TransactionState.Failed;
         m_error = billingResult.Error;
     }
 }
Esempio n. 6
0
            public void onPurchasesUpdated(SA_iResult billingResult, List <BillingClient.AN_Purchase> purchases)
            {
                AN_BillingPurchaseResult result;

                if (billingResult.IsSucceeded)
                {
                    result = new AN_BillingPurchaseResult(new AN_Purchase(purchases[0]));
                }
                else
                {
                    result = new AN_BillingPurchaseResult(billingResult);
                }

                m_BillingPurchaseCallback.Invoke(result);
            }
        //--------------------------------------
        //  AN_iBillingClientStateListener
        //--------------------------------------

        public void OnBillingSetupFinished(SA_iResult billingResult)
        {
            if (billingResult.IsSucceeded)
            {
                //inapp
                var purchasesResult = m_BillingClient.QueryPurchases(AN_BillingClient.SkuType.inapp);
                if (purchasesResult.IsSucceeded)
                {
                    m_Purchases.AddRange(purchasesResult.Purchases);
                }
                else
                {
                    m_ConnectToServiceCallback.Invoke(purchasesResult);
                }

                //subs
                purchasesResult = m_BillingClient.QueryPurchases(AN_BillingClient.SkuType.subs);
                if (purchasesResult.IsSucceeded)
                {
                    m_Purchases.AddRange(purchasesResult.Purchases);
                }
                else
                {
                    m_ConnectToServiceCallback.Invoke(purchasesResult);
                }


                var skuDetailsLoader = new UM_AndroidSkuDetailsLoader();
                skuDetailsLoader.LoadSkuDetails(m_BillingClient, AN_BillingClient.SkuType.inapp, inapps =>
                {
                    m_Products.AddRange(inapps);
                    skuDetailsLoader.LoadSkuDetails(m_BillingClient, AN_BillingClient.SkuType.subs, subs =>
                    {
                        m_Products.AddRange(subs);
                        m_ConnectToServiceCallback.Invoke(billingResult);

                        VerifyPurchases();
                    });
                });
            }
            else
            {
                m_ConnectToServiceCallback.Invoke(billingResult);
            }
        }
        //--------------------------------------
        //  AN_iConsumeResponseListener
        //--------------------------------------

        public void OnConsumeResponse(SA_iResult billingResult, string purchaseToken)
        {
            Assert.IsTrue(billingResult.IsSucceeded);
            AN_Purchase consumePurchase = null;

            foreach (var purchase in m_Purchases)
            {
                if (purchase.PurchaseToken.Equals(purchaseToken))
                {
                    consumePurchase = purchase;
                }
            }

            if (consumePurchase != null)
            {
                m_Purchases.Remove(consumePurchase);
            }
        }
    //--------------------------------------
    //  AN_iPurchasesUpdatedListener
    //--------------------------------------

    public void onPurchasesUpdated(SA_iResult billingResult, List <AN_Purchase> purchases)
    {
        if (billingResult.IsSucceeded)
        {
            foreach (var purchase in purchases)
            {
                if (purchase.PurchaseState == AN_Purchase.State.Purchased)
                {
                    //Reward user for the item purchase
                    InApp.Reward(purchase.Sku);
                }

                PrintPurchaseInfo(purchase);
            }

            //We will subscribed on this even in order to update UI accordingly
            OnStoreStateUpdated.Invoke();
        }
    }
Esempio n. 10
0
 public AN_BillingPurchaseResult(SA_iResult result) : base(result)
 {
 }
Esempio n. 11
0
 public SA_Result(SA_iResult result)
 {
     m_error = result.Error;
 }
Esempio n. 12
0
            public void OnBillingSetupFinished(SA_iResult billingResult)
            {
                AN_BillingConnectionResult result = new AN_BillingConnectionResult(billingResult);

                m_ConnectionResultAction.Invoke(result);
            }
Esempio n. 13
0
 public void OnConsumeResponse(SA_iResult billingResult, string purchaseToken)
 {
     m_OnConsumeCallback.Invoke(billingResult);
 }