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

时间:2018-03-08 05:48:04

标签: android google-play google-play-services android-billing play-billing-library

我在测试我的应用内结算方面遇到了麻烦 (使用Google Play应用内结算第3版API)

问题

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

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

我做了什么

  1. 作为测试人员购买了一些物品 (我很确定一个对话框说它是测试购买。)
  2. 之后在Google Play台上退款。
  3. 等到付款状态变为"退款"。
  4. 清除了Google Play服务的缓存Google Play。
  5. 在我的应用中检查了我的购买BillingClient.queryPurchases()
  6. 等了几天。重新安装我的应用程序他们都没有工作。
  7. 最少检查代码

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

    我想做什么

    我想取消所有测试购买。

    有没有人有任何建议? 提前谢谢。

2 个答案:

答案 0 :(得分:1)

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

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

托管应用内商品属于消费品,但订阅却不是。

来源:developer.android.com

答案 1 :(得分:0)

根据此documentation,目前,应用内结算API不支持以编程方式取消购买应用内的订阅。然后,在用户取消订阅之后,订阅仍然有效,直到到期日期。因此,它会在Play商店应用中保持可见状态,直到订阅到期为止。您可以查看此support page以获取更多信息。