首页 > 解决方案 > Android In-App billing 中“测试卡慢”的情况下未调用 onPurchasesUpdated 回调

问题描述

我正在开发一个Android具有In-App计费功能的应用程序。

我没有使用AIDL,但使用最新的库:

    implementation 'com.android.billingclient:billing:2.1.0'

Google 提供了 4 种测试卡选项。

1. Slow test card, approves after a few minutes
2. Test card, always approves
3. Test card, always declines
4. Slow test card, declines after a few minutes

当我使用我的测试帐户进行测试时,1、2、3 测试卡选项在我的应用程序中运行良好。

但是只有4个没有用...

I think it similar to case 1.
The only difference is "approve or decline"

在 #1 的情况下,“ onPurchasesUpdated()”回调方法在 1 分钟后被调用。

所以我可以处理"slow environment".

但是在#4 的情况下,"onPurchasesUpdated()"1 分钟后没有调用回调方法。

我该如何处理?

我的应用程序需要使用计费收取一些硬币In-App

所以我应该"consume"在充币后调用方法。

但在#4 的情况下,没有响应。

所以我不能调用消费...

标签: androidin-app-purchasein-app-billing

解决方案


我在我的应用程序中遇到了同样的问题。好吧,我收到一个 _on_purchases_updated() 信号,但您必须确认购买。

在 #1 和 #4 的情况下,我会立即收到 _on_purchase_acknowledgement_error() 信号。如果 #1 几分钟后我收到 _on_purchase_acknowledged() 信号,我可以确认购买。但在 #4 中,我从未收到来自 Play 商店的另一个信号,甚至没有收到一个 _on_purchase_acknowledgement_error() 信号。

所以我创建了一个 TimeOut 计时器来管理它。它从我收到第一个 _on_purchase_acknowledgement_error() 信号开始。如果您没有收到 _on_purchase_acknowledged() 信号,几分钟后放弃购买。

PS 我正在使用 Godot 游戏引擎,但这取决于 Play Store,所以我想你的情况也是如此。


推荐阅读