android - 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 的情况下,没有响应。
所以我不能调用消费...
解决方案
我在我的应用程序中遇到了同样的问题。好吧,我收到一个 _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,所以我想你的情况也是如此。
推荐阅读
- google-kubernetes-engine - 从另一个 GKE 私有集群访问私有 GKE 集群中的节点端口服务
- python - Python(熊猫):如何根据列中的值将每一行除以“绝对”行
- python - 不同维数组之间的numpy加法
- go - golang helloworld 打印出奇怪的错误信息
- python - What does "[()]" mean when called upon a numpy array?
- django - 更改模型中的图像 - Django
- arduino - 使用 Firmata 和 Game Control Plus 控制舵机
- serverless-framework - 如何使无服务器框架中的资源可重用?
- c# - System.Text.Json.JsonException:'检测到不支持的可能对象循环......'
- javascript - 在 tr 中找到 td 的方法。(Javascript)