public bool ShouldOfferService(OwnedPurchasesResult result, String productId)
        {
            if (null == result)
            {
                Log.Error(TAG, "OwnedPurchasesResult is null");
                return(false);
            }

            IList <String> inAppPurchaseDataList = result.InAppPurchaseDataList;

            foreach (String data in inAppPurchaseDataList)
            {
                try
                {
                    InAppPurchaseData inAppPurchaseData = new InAppPurchaseData(data);
                    if (productId.Equals(inAppPurchaseData.ProductId))
                    {
                        return(inAppPurchaseData.IsSubValid);
                    }
                }
                catch (JSONException e)
                {
                    Log.Error(TAG, "parse InAppPurchaseData JSONException", e);
                    return(false);
                }
            }
            return(false);
        }
            public void OnSuccess(Java.Lang.Object result)
            {
                Log.Info(TAG, "obtainOwnedPurchaseRecord, success");
                OwnedPurchasesResult InResult = (OwnedPurchasesResult)result;
                IList <String>       inAppPurchaseDataList = InResult.InAppPurchaseDataList;

                if (inAppPurchaseDataList == null)
                {
                    CurrentActivity.OnFinish();
                    return;
                }
                for (int i = 0; i < inAppPurchaseDataList.Count(); i++)
                {
                    CurrentActivity.billList.Add(inAppPurchaseDataList.ElementAt(i));
                }
                continuationToken = InResult.ContinuationToken;
                if (!TextUtils.IsEmpty(continuationToken))
                {
                    CurrentActivity.QueryHistoryInterface();
                }
                else
                {
                    CurrentActivity.OnFinish();
                }
            }
            public void OnSuccess(Java.Lang.Object result)
            {
                if (result == null)
                {
                    Log.Error(TAG, " result is null");
                    return;
                }
                Log.Info(TAG, "obtainOwnedPurchases, success");
                OwnedPurchasesResult InResult = (OwnedPurchasesResult)result;

                if (InResult.InAppPurchaseDataList != null)
                {
                    IList <String> inAppPurchaseDataList = InResult.InAppPurchaseDataList;
                    IList <String> inAppSignature        = InResult.InAppSignature;
                    for (int i = 0; i < inAppPurchaseDataList.Count; i++)
                    {
                        String inAppPurchaseData          = inAppPurchaseDataList.ElementAt(i);
                        String inAppPurchaseDataSignature = inAppSignature.ElementAt(i);
                        CurrentActivity.DeliverProduct(inAppPurchaseData, inAppPurchaseDataSignature);
                    }
                }
                if (!TextUtils.IsEmpty(InResult.ContinuationToken))
                {
                    CurrentActivity.QueryPurchases(InResult.ContinuationToken);
                }
            }
 private void OwnedPurchases(OwnedPurchasesResult obj)
 {
     if (obj == null)
     {
         return;
     }
     isOwned = obj.ItemList.Contains(HMSIAPConstants.AdsRemove);
 }
            public void OnSuccess(Java.Lang.Object result)
            {
                Log.Info(TAG, "obtainOwnedPurchases, success");
                OwnedPurchasesResult InResult = (OwnedPurchasesResult)result;

                cacheOwnedPurchasesResult = InResult;
                view.UpdateProductStatus(cacheOwnedPurchasesResult);
            }
Пример #6
0
            public void OnSuccess(Java.Lang.Object result)
            {
                Log.Info(TAG, "obtainOwnedPurchases, success");
                OwnedPurchasesResult InResult = (OwnedPurchasesResult)result;

                CurrentActivity.CheckHiddenLevelPurchaseState(InResult);
                if (InResult != null && !TextUtils.IsEmpty(InResult.ContinuationToken))
                {
                    CurrentActivity.QueryPurchases(InResult.ContinuationToken);
                }
            }
Пример #7
0
        void ParseOwned(OwnedPurchasesResult result)
        {
            if (result == null || result.InAppPurchaseDataList == null)
            {
                return;
            }

            foreach (var inAppPurchaseData in result.InAppPurchaseDataList)
            {
                this.purchasedData[inAppPurchaseData.ProductId] = inAppPurchaseData;
            }
        }
Пример #8
0
        void ParseOwned(OwnedPurchasesResult result)
        {
            if (result == null || result.InAppPurchaseDataList == null)
            {
                return;
            }

            foreach (string inAppPurchaseData in result.InAppPurchaseDataList)
            {
                InAppPurchaseData inAppPurchaseDataBean = new InAppPurchaseData(inAppPurchaseData);
                this.purchasedData[inAppPurchaseDataBean.ProductId] = inAppPurchaseDataBean;
            }
        }
        public void Buy(string productId)
        {
            Log.Info(TAG, "buy");
            cacheOwnedPurchasesResult = null;
            PurchaseIntentReq req = new PurchaseIntentReq();

            req.ProductId = productId;
            req.PriceType = IapClientPriceType.InAppSubscription;


            Task task = mClient.CreatePurchaseIntent(req);

            task.AddOnSuccessListener(new BuyListenerImpl(this.view, this, productId)).AddOnFailureListener(new BuyListenerImpl(this.view, this, productId));
        }
 public void UpdateProductStatus(OwnedPurchasesResult ownedPurchasesResult)
 {
     foreach (String productId in SUBSCRIPTION_PRODUCT)
     {
         View   view   = GetView(productId);
         Button button = (Button)view.FindViewById(Resource.Id.action);
         button.Tag = productId;
         if (ShouldOfferService(ownedPurchasesResult, productId))
         {
             button.Text   = GetString(Resource.String.active);
             button.Click += (sender, e) => {
                 presenter.ShowSubscription((sender as Button).Tag.ToString());
             };
         }
         else
         {
             button.Text   = GetString(Resource.String.buy);
             button.Click += (sender, e) => {
                 presenter.Buy((sender as Button).Tag.ToString());
             };
         }
     }
 }
Пример #11
0
        private void CheckHiddenLevelPurchaseState(OwnedPurchasesResult result)
        {
            if (result == null || result.InAppPurchaseDataList == null)
            {
                Log.Info(TAG, "result is null");
                QueryProducts();
                return;
            }
            IList <String> inAppPurchaseDataList = result.InAppPurchaseDataList;

            for (int i = 0; i < inAppPurchaseDataList.Count(); i++)
            {
                try
                {
                    InAppPurchaseData inAppPurchaseDataBean = new InAppPurchaseData(inAppPurchaseDataList.ElementAt(i));
                    if (inAppPurchaseDataBean.PurchaseStatus == InAppPurchaseData.PurchaseState.Purchased)
                    {
                        if (HIDDEN_LEVEL_PRODUCTID.Equals(inAppPurchaseDataBean.ProductId))
                        {
                            isHiddenLevelPurchased = true;
                        }
                    }
                }
                catch (JSONException e)
                {
                    Log.Error(TAG, "delivery:" + e.Message);
                }
            }
            if (isHiddenLevelPurchased)
            {
                DeliverProduct();
            }
            else
            {
                QueryProducts();
            }
        }
Пример #12
0
        void ParseOwned(OwnedPurchasesResult result)
        {
            if (result == null || result.InAppPurchaseDataList == null)
            {
                return;
            }

            // foreach (string inAppPurchaseData in result.InAppPurchaseDataList)
            // {
            //     InAppPurchaseData inAppPurchaseDataBean             = new InAppPurchaseData(inAppPurchaseData);
            //     this.purchasedData[inAppPurchaseDataBean.ProductId] = inAppPurchaseDataBean;
            // }

            for (var i = 0; i < result.InAppPurchaseDataList.Count; i++)
            {
                string            inAppPurchaseData     = result.InAppPurchaseDataList[i];
                InAppPurchaseData inAppPurchaseDataBean = new InAppPurchaseData(inAppPurchaseData);
                var productId = inAppPurchaseDataBean.ProductId;

                this.inAppSignature[productId]    = result.InAppSignature[i];
                this.inAppPurchaseData[productId] = inAppPurchaseData;
                this.purchasedData[productId]     = inAppPurchaseDataBean;
            }
        }