Может дело и не в компоненте, а просто так Андроид работает?
В документации (здесь) пишут, что "... Google Play клиент кэширует платежную информация локально на устройстве ... и ... вызовы будут обслуживаться через поиск в кэше, а не через сетевое подключение ... ". И вроде, действительно всё работает.
Если у TInAppPurchase вызвать SetupInAppPurchase и QueryProducts, отключить на устройстве интернет, то и с выключенным интернетом метод IsProductPurchased() будет возвращать true для купленных продуктов.
НО! Перезагружаем девайс - и всё, кэш улетучился! IsProductPurchased() будет = false! (Пока не вернём интернет и не выполним заново SetupInAppPurchase + QueryProducts). Не совсем понятно зачем такой кэш нужен-то?
Понятно что можно какое-то своё кэширование придумать, но как-то велосипед изобретать не хочется, может я что-то делаю не так?
Update:
И обратная ситуация: Есть два андроид устройства, аккаунт в Play настроен один и тот же, интернет подключен. Делаем покупку на одном из устройств, всё замечательно. НО! На втором эта покупка не отображается, сколько раз не перезапускай приложение со всеми SetupInAppPurchase и QueryProducts!
А отобразится она только после перезагрузки второго девайса (и видимо, убития таким образом локального кэша). Можно ли этот In-App кэш отключить как-то?