我正在使用 Android anjlab 应用内结算库,并注意到了以下行为:
进行购买(包括所有订阅)并立即为卡充值后,一切正常:
onProductPurchased()方法被调用,然后我可以调用服务器以授予用户 Premium 访问我的应用的权限。
但是,在Merchant工具(Google控制台)上查看交易日志后,我注意到很多时候信用卡没有被立即收费-它们停留在收费状态,持续了几个小时到几天,直到他们实际迁移到收费状态。
问题是,当付款进入此可计费状态时,onProductPurchased()方法不会被调用,因此也不会调用我的服务器。
在这些情况下,我的用户需要付费(在我的应用中购买了订阅后的几个小时),但是他们却无法获得“高级”访问权限,因为我无法在我的应用中识别付款(仅通过查看商家日志即可)! !
如何解决此问题?
我是否需要在我的应用程序上运行某种检查,以验证用户是否购买了订阅?
答案 0 :(得分:1)
通常,您的应用应该始终在可能的情况下(例如在启动时)检查用户钱包中是否有尚未转换为升级的有效收据。
如果在购买过程中出错,或者在用户更换手机或卸载并重新安装应用程序时恢复购买,这也很有用。
自从我上次处理这些东西已经有一段时间了,但是我认为,根据Google Play政策,实际上需要来提供恢复机制。