如何存储 Android 应用内计费的订阅数据?

Kal*_*ina 3 security android subscription in-app-purchase in-app-billing

我正在尝试实施应用内计费,其中我的应用唯一销售的是按月订阅。我已经几乎复制了 Android 提供的地下城示例并且它可以工作,但是对于我必须出售的一件事来说似乎过于复杂(而且我知道无论如何我都不应该复制它)。

Dungeons 示例有一个 PurchaseDatabase 类,用于跟踪用户的所有购买。由于我的应用程序中只有一次购买,而不是拥有一个数据库,因此在我启动应用程序时,只拥有一个 SharedPreference/boolean“isPurchased”并更新/检查它似乎更有意义。 . 现在我对安全知之甚少,但这似乎只是敲响了警钟,并且可能非常容易被黑客入侵。

那么,我应该如何存储/恢复这一份数据?无论如何,我需要保存和跟踪什么?

编辑:找到这个应用内结算。如何存储用户已支付的信息?. 看起来我应该使用 SharedPreference,但这个问题仍然存在:我是只保存一个布尔值“isPurchased”还是应该跟踪 orderId、developerPayload 等?

Nik*_*kov 5

如果您只是在共享首选项中保存一个标志,任何拥有 root 设备的用户都可以随意翻转标志并“订阅”而无需付费。所以你至少应该做一些混淆。这是一个示例方法。此外,还有一个用于检查订阅状态的API,因此您应该定期检查以确保订阅有效。