2016年6月20日之后取消Google Play IAB测试购买的订单

时间:2016-06-30 17:45:55

标签: android google-play in-app-purchase

我长期使用Google Play应用内购买(IAP),但最近(2016年6月20日)他们更新了Payments Merchant Center,以便不再显示测试购买。我引用最近发给开发人员的电子邮件:

“之前,测试购买一次性IAP会生成订单ID。从2016年6月20日开始,一次性IAP将不会生成订单ID,也不会显示在Merchant Center中。”

我在链接中找不到有关购买(非订阅)的信息: https://developer.android.com/google/play/billing/billing_testing.html 该页面有一个“取消已完成的测试购买”,仅对订阅进行评论。

我的问题是,如果他们没有出现在Payments Merchant Center中,我在哪里取消测试购买?

更新 - Google支持的官方回答:

感谢您与Google Play开发人员支持小组联系。 我检查了它,Play Developer Console目前不支持取消测试IAP。唯一的方法是消费IAP或等待14天的消费时间。

更新2-感谢Mike的回答,我插入了下面的代码:

            Purchase premiumPurchase = inventory.getPurchase(Constants.SKU_PRO);
            if (premiumPurchase != null) {
                App.mHelper.consumeAsync(premiumPurchase, new IabHelper.OnConsumeFinishedListener() {
                    @Override
                    public void onConsumeFinished(Purchase purchase, IabResult result) {
                        Log.d(TAG, "Test purchase is consumed.");
                    }
                });
            }

我只运行此代码取消测试购买,并再次调试完整的购买流程。

5 个答案:

答案 0 :(得分:12)

取消应用内购买的最简单方法是使用它。如果您使用Google提供的IabHelper,您只需拨打consumeAsync并传递购买。我维护一个功能来消费所有应用程序的应用程序内产品;这基本上是用于测试的计费重置功能。<​​/ p>

答案 1 :(得分:1)

我从Android开发者网站获得的是,如果是测试购买,他们会阻止购买流程到达必须付费的程度。它更容易,因为Google确保您不支付测试购买的费用。它会在14天内停止。要执行此操作的帐户需要测试可以从开发人员控制台激活的许可证。

因此,您不必取消它们,因为从技术上讲,您从未购买任何东西,同时您可以测试购买物品时会发生什么。但商家中心从未收到过请求。

修改

如果您要尝试直接取消并查看会发生什么,请进行真实购买并取消。

答案 2 :(得分:1)

我迟到了,但这是从Google退款/取消应用内购买的最新方式。在左侧菜单中的Google Play控制台上,有一个名为订单管理的菜单项。这会打开一个订单摘要,底部带有蓝色REFUND按钮。点击此处,选择退款原因并提交。

Explanation on official docs

答案 3 :(得分:0)

这是最新的Kotlin代码,它将消耗您所有购买的商品,因此您可以再次购买。请不要在生产代码中使用此功能,因为这样做肯定会导致不良行为。

很显然,您必须事先购买商品。

fun consumeAllTestPurchases(purchases: ArrayList<Purchase>) {
    purchases.value?.forEach {
        val consumeParams = ConsumeParams.newBuilder().setPurchaseToken(it.purchaseToken).build()
        billingClient.consumeAsync(consumeParams) { billingResult, _ ->
            if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) {
                var purchaseConsumed = true
            }
        }
    }
}

答案 4 :(得分:0)

如果您使用的方式与TrivialDriveKotlin类似,我将在本文中发布一个功能性答案https://stackoverflow.com/a/61141740/1568148