12

我在测试我的应用内结算时遇到了问题。
(使用 Google Play 应用内结算版本 3 API)

问题

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

当我在一月份尝试对购买的商品进行退款时,退款的商品已从购买清单中消失。

我做了什么

  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") }
        }
}

我想做什么

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

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

4

2 回答 2

4

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

int response = client.consumePurchase(3, packageName, purchaseToken);

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

来源:developer.android.com

于 2018-03-12T19:26:56.257 回答
0

根据本文档,目前,应用内结算 API 不支持从购买应用程序内部以编程方式取消订阅。然后在用户取消订阅后,订阅仍然有效,直到到期日期。因此,它在 Play Store 应用程序中一直可见,直到订阅到期。您可以查看此支持页面以获取更多信息。

于 2018-03-08T17:21:31.543 回答