在第3版中处理应用内结算退款

时间:2013-01-27 17:03:08

标签: android in-app-billing

我正在尝试在我的应用程序中实施应用内结算,我的购买部分正常运行,但我该如何处理退款?

Testing In-App Billing部分下,它表示您必须关注IN_APP_NOTIFY,但是当您点击它时,它会将您带到api的v2,您需要注册广播接收器。但是在v3中,它没有提供有关该做什么的信息,或者即使IN_APP_NOTIFY仍然使用相同或支持的信息。

示例应用程序也不处理退款,所以我想如何处理v3中的退款?

1 个答案:

答案 0 :(得分:30)

您应该像在v2中一样处理它们:当用户通过Checkout控制台请求退款,取消或退款时。然后应用程序应该在启动时检查购买的状态等,并做正确的事情(通常允许退款购买,拒绝取消)。不幸的是,提供的示例并不打算这样做,因此您必须自己添加它。更不幸的是,由于本地缓存和/或服务器端的错误,购买将在您取消或退款后很长时间内保持在购买状态。通过ATM,你无能为力。

假设您使用的是Trivial Drive示例,您可能需要在应用中添加以下内容:

Purchase purchase = inventory.getPurchase(product);
Log.d(TAG, "Purchase state: " + purchase.getPurchaseState());
// 0 (purchased), 1 (canceled), or 2 (refunded).
if (purchase.getPurchaseState() == 0
     || purchase.getPurchaseState() == 2) {
   showPremiumVersion();
} else {
   showFreeVersion();
}