Android 退款时未将应用内结算标记为撤销

Android In-app billing missed to mark revoke when refund

首先,我的情况是在试购中。不是真正的购买。

我制作了一个用于应用内结算的测试应用。并添加了一个 Google ID 用于测试。

我购买的商品是托管商品(非消耗品)。购买工作正常。但是退款有问题

如果在 Google Play 管理中心的退款对话框中标记撤销复选框,Google 会正确地从用户那里删除该项目。订单和产品 ID 不会出现在用户的购买信息中。没问题。

但是,如果勾选撤销复选框,即使已退款,该项目仍保留在用户手中。即使清除 Google 播放缓存和用户数据,重新登录,重新启动,它也不会删除。

当然,退款的时候可以说保重。但是,如果我忘记标记怎么办?我在退款订单详情页面找不到任何revoke UI。

编辑:Orders: refund参见revoke参数的描述。

您必须通过使用服务器端或应用程序代码将购买标记为已消耗来取消使用。您无法再将其从 Play 管理中心移除。

https://developer.android.com/google/play/billing/billing_onetime

查找文档
ConsumeResponseListener listener = new ConsumeResponseListener() {
    @Override
    public void onConsumeResponse(@BillingResponse int responseCode, String outToken) {
            if (responseCode != BillingResponse.OK) {
                // This user has got a refund, remove the feature here.
            }
    }
};
mBillingClient.consumeAsync(purchaseToken, listener);