19

我正在尝试在我的应用程序中实施应用内计费,我的购买部分工作正常,但我如何处理退款?

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

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

4

1 回答 1

32

您应该以与 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();
}
于 2013-01-28T02:03:46.587 回答