Google应用内购买:如何检查消耗品的购买状态是否处于待处理状态?

Hab*_*bib 6 android in-app-purchase in-app-billing

我已经将android应用内购买集成到了android应用中。我重写了onPurchaseUpdated方法以获得购买的响应。

@Override
public void onPurchasesUpdated(int responseCode, @Nullable List<Purchase> purchases) {
    if (responseCode == BillingResponse.OK) {
        //handling purchase logic here
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,我注意到一个用户尝试购买应用内消费产品,并且在其购买状态为待定时,一段时间后,他取消了购买。他一遍又一遍地重复此过程。

因此,如果购买状态为待处理,Google是否会返回BillingResponse.OK作为响应代码?如果不是,如何检查购买状态是否为待处理或购买状态为待处理?

我在Google Play帐单参考文档中查看了响应代码,但未找到有关待定购买的信息。

这是链接:https : //developer.android.com/google/play/billing/billing_reference.html

May*_*jra 0

我找不到确切的解决方案,但有一个解决方法(非常可靠),使用实时开发人员通知来处理订阅相关状态:

\n\n

您应该从以下指南开始:\n https://developer.android.com/google/play/billing/billing_subscriptions#Handle-states

\n\n

然后按照添加实时开发者通知的指南:\n https://developer.android.com/google/play/billing/realtime_developer_notifications

\n\n

因此,基本上,当任何播放托管订阅的状态发生变化时,它都会通知您,您将在该推送通知中获得诸如 、SUBSCRIPTION_RENEWEDSUBSCRIP\xef\xbf\xbc\xef\xbf\xbcTION_PURCHASED等标志SUBSCRIPTION_CANCELED

\n\n

因此,您可以做的是将所有订阅条目添加到您的服务器(或您管理它的方式)作为待处理,并使用实时开发人员通知处理所有更新。

\n\n

例如:用户 A 续订了订阅,但付款确认可能需要 24 小时,因此您将该条目置于待处理状态(默认情况下),在用户决定取消该订阅之间,您可能会收到 的标志,并且SUBSCRIPTION_CANCELED用户再次决定撤销该帐户因此您可能会得到一个标志SUBSCRIPTION_REVOKED,您可以在用户一遍又一遍地重复此过程时更新您的条目。

\n\n

这可能看起来有点令人困惑,但阅读文档可能会清除障碍。

\n\n

希望这有帮助,让我知道结果。

\n