IAB没有返回未消费的购买

Jer*_*ste 9 android in-app-billing

我有一个使用Google的应用内结算API进行应用内购买的应用.这通常很有效,即使在购买之后互联网连接丢失,这使得产品显示为未消费的购买.然而,在某些边缘情况下,涉及在购买期间开启和关闭几次wifi,有时会发生购买处理(即已支付金钱),但尚未在应用中消费.

使用getPurchases()方法时,即使文档说它应该是,也不会将此产品作为未消费的购买返回.但是,当尝试再次购买此产品时,API会返回代码BILLING_RESPONSE_RESULT_ITEM_ALREADY_OWNED.
所以这个产品标记为未消费.

有趣的是,adb shell pm clear com.android.vending在我的终端中运行命令后,此产品确实显示在返回的列表中getPurchases().

这里发生了什么,产品在运行终端命令后才显示为未消耗的产品?如何在getPurchases调用中显示此产品?

(如果无法修复此问题,也许我可以在加载可以进行购买的视图时"模拟"每个项目的购买过程,检查它是否返回BILLING_RESPONSE_RESULT_ITEM_ALREADY_OWNED代码,授予用户购买每个项目和以编程方式解决此次购买.但这似乎有些夸张.)

Iva*_*anP 0

正如文档所说

\n
\n

成功购买后,用户\xe2\x80\x99s的购买数据将由Google Play\xe2\x80\x99s应用内结算服务本地缓存

\n
\n

我遇到了同样的问题,我发现的唯一解决方法是建议用户首先打开 Play 商店应用程序(这应该更新内部计费缓存),然后返回到您的应用程序并完成购买(购买必须可用)库存中)

\n