示例#1
0
        public void onActiveSubscriptionsRetrieved(IEnumerable <string> subscriptions)
        {
            foreach (var sub in InventoryDatabase.AllSubscriptions)
            {
                transactionDatabase.clearPurchases(sub);
            }

            foreach (var id in subscriptions)
            {
                if (!remapper.canMapProductSpecificId(id))
                {
                    logger.LogError("Entitled to unknown subscription: {0}. Ignoring", id);
                    continue;
                }
                transactionDatabase.onPurchase(remapper.getPurchasableItemFromPlatformSpecificId(id));
            }
        }
        public void onSetupComplete(List <ProductDescription> products)
        {
            foreach (var product in products)
            {
                if (remapper.canMapProductSpecificId(product.PlatformSpecificID))
                {
                    var item = remapper.getPurchasableItemFromPlatformSpecificId(product.PlatformSpecificID);

                    item.AvailableToPurchase  = true;
                    item.localizedPriceString = product.Price;
                    item.localizedTitle       = product.Title;
                    item.localizedDescription = product.Description;
                    item.isoCurrencySymbol    = product.ISOCurrencyCode;
                    item.priceInLocalCurrency = product.PriceDecimal;
                    item.receipt = product.Receipt;

                    if (!string.IsNullOrEmpty(product.Receipt))
                    {
                        // Consider these purchases as restored rather than new.
                        // Interrupted purchases will (falsely) be marked
                        // as restored.
                        onPurchaseSucceeded(product.PlatformSpecificID, false, product.Receipt, product.TransactionID);
                    }
                }
                else
                {
                    logger.LogError("Warning: Unknown product identifier: {0}", product.PlatformSpecificID);
                }
            }

            var available = false;

            foreach (var item in InventoryDatabase.AllPurchasableItems)
            {
                if (!item.AvailableToPurchase)
                {
                    logError(UnibillError.UNIBILL_MISSING_PRODUCT, item.Id, item.LocalId);
                }
                else
                {
                    available = true;
                }
            }

            onSetupComplete(available);
        }