我已将 android 应用内购买集成到 android 应用程序中。我覆盖了 onPurchaseUpdated 方法来获取购买响应。
@Override
public void onPurchasesUpdated(int responseCode, @Nullable List<Purchase> purchases) {
if (responseCode == BillingResponse.OK) {
//handling purchase logic here
}
}
现在我注意到一个用户试图购买应用内消费品,当他的购买状态为待定时,一段时间后他取消了购买。他一遍又一遍地重复这个过程。
因此,如果购买状态为待处理,Google 会返回 BillingResponse.OK 作为响应代码吗?如果不是,如何检查购买状态是否处于待定状态或购买处于待定状态时会发生什么?
我查看了 google play billing reference doc 中的响应代码,但没有找到有关待处理购买的信息。
这是链接:https://developer.android.com/google/play/billing/billing_reference.html
最佳答案
我找不到确切的解决方案,但有一个解决方法(非常可靠)使用实时开发人员通知来处理订阅相关状态:
您应该从以下指南开始: https://developer.android.com/google/play/billing/billing_subscriptions#Handle-states
然后按照指南添加实时开发者通知: https://developer.android.com/google/play/billing/realtime_developer_notifications
所以基本上它会在任何播放管理订阅的状态发生变化时通知您,您将获得类似SUBSCRIPTION_RENEWED、SUBSCRIPTION_PURCHASED、SUBSCRIPTION_CANCELED 等在推送通知中。
因此,您可以做的是将所有订阅条目添加到您的服务器(或您管理它的任何方式)作为待处理,并使用实时开发人员通知处理所有更新。
例如:用户 A 续订了订阅,但付款确认可能需要 24 小时,因此您将该条目设为待处理(默认情况下),并且在用户决定取消该订阅之间,您可能会收到SUBSCRIPTION_CANCELED 的标志,并且用户再次决定撤销该帐户,因此您可能会得到 SUBSCRIPTION_REVOKED 的标志,您可以在用户一遍又一遍地重复此过程时更新您的条目。
这可能看起来有点令人困惑,但阅读文档可能会扫清道路。
希望这有帮助,让我知道结果。
关于android - 谷歌应用内购买 : How to check if a consumable product purchase status is pending?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55508642/