Android 应用内结算:已退款的应用内购买未取消

Sos*_*Ito 12 android google-play android-billing google-play-services play-billing-library

我在测试应用内结算时遇到问题。
(使用 Google Play In-app Billing Version 3 API)

问题

退款的应用内购买仍然存在于购买列表中,由 提供BillingClient.queryPurchases()

当我在 1 月份尝试退款时,退款的商品从购买清单中消失了。

我做了什么

  1. 购买了一些物品作为测试人员。
    (我很确定一个对话说这是一个测试购买。)
  2. 之后在 Google Play Console 中退款。
  3. 等到他们的付款状态变成“已退款”。
  4. 清除 Google Play 服务和 Google Play 的缓存。
  5. BillingClient.queryPurchases()在我的应用程序中检查了我的购买提供。
  6. 等了几天。重新安装了我的应用程序。他们都没有工作。

最小校验码

private val client: BillingClient // provided

fun check() {
    // client.startConnection() already completed here
    client.queryPurchases(BillingClient.SkuType.INAPP)
        .run {
            purchasesList
                .map     { it.originalJson }
                .forEach { Log.d("billing", "json = $it") }
        }
}
Run Code Online (Sandbox Code Playgroud)

我想做什么

我想取消我所有的测试购买。

有没有人有什么建议?先感谢您。

jek*_*att 4

如果您的取消并未从查询结果中删除您购买的商品,您可以使用它们。当您进行新查询时,它们将不再可用,并且可以再次购买。

int response = client.consumePurchase(3, packageName, purchaseToken);
Run Code Online (Sandbox Code Playgroud)

托管的应用内产品是可消耗的,但订阅不是。

来源:developer.android.com