目前,为了检查用户是否购买了高级功能,我们在onQueryInventoryFinished
.
请注意,出于安全目的,我们不会在本地存储应用内购买状态。每次在应用启动期间,我们都会对 Google 应用内购买服务器进行查询。到目前为止,这工作得非常好,没有客户抱怨。
// Do we have the premium upgrade?
Purchase premiumPurchase = inventory.getPurchase(org.yccheok.jstock.gui.billing.Utils.SKU_PREMIUM);
boolean mIsPremium = (premiumPurchase != null && org.yccheok.jstock.gui.billing.Utils.verifyDeveloperPayload(premiumPurchase));
最近,由于营销活动,我们希望为某些忠实用户免费提供此高级功能。例如,用户与 20 人共享了这个应用程序。
有什么方法可以让我们以编程方式访问 Google 应用内购买服务器,这样我们就可以使某些用户的 SKU_PREMIUM 为真,而无需经过信用卡处理?
如果没有,这是我们唯一可以考虑的方法。但是,出于可靠性目的,我们不希望涉及我们自己的服务器。我们希望通过仅与 Google 应用内购买服务器通信来检查整个高级功能。
- 通过查询我们自己的服务器,检查该用户是否与 20 人共享了此应用
mIsPremium
如果是,请在 Android 应用中打开标志。- 如果没有,则与 Google 应用内购买服务器对话,执行正常的应用内购买状态查询流程,通过执行
onQueryInventoryFinished
在高级功能状态查询期间,我们是否可以尝试其他方法,而不涉及我们自己的服务器?