我正在尝试在我的应用程序中实施应用内结算,我的购买部分正常运行,但我该如何处理退款?
在Testing In-App Billing
部分下,它表示您必须关注IN_APP_NOTIFY
,但是当您点击它时,它会将您带到api的v2
,您需要注册广播接收器。但是在v3
中,它没有提供有关该做什么的信息,或者即使IN_APP_NOTIFY
仍然使用相同或支持的信息。
示例应用程序也不处理退款,所以我想如何处理v3
中的退款?
答案 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();
}