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); }