Android 在v3中处理应用内计费退款

Android 在v3中处理应用内计费退款,android,in-app-billing,Android,In App Billing,我正在尝试在我的应用程序中实现应用内计费,我的购买部分正常工作,但我如何处理退款问题 在测试应用内计费部分下,它指出您必须注意应用内通知,但当您单击该部分时,它会将您带到api的v2,您必须在其中注册广播接收器。但是,在v3中,它没有提供关于如何操作的信息,或者即使是In_APP_NOTIFY中的信息是否仍然被使用或支持 示例应用程序也不处理退款,因此我应该如何处理v3中的退款?您应该以与v2中相同的方式处理退款:当用户请求退款时,通过结账控制台取消或退款订单。然后,应用程序应该在启动时检查购买

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

测试应用内计费
部分下,它指出您必须注意
应用内通知
,但当您单击该部分时,它会将您带到api的
v2
,您必须在其中注册广播接收器。但是,在
v3
中,它没有提供关于如何操作的信息,或者即使是
In_APP_NOTIFY
中的信息是否仍然被使用或支持


示例应用程序也不处理退款,因此我应该如何处理
v3
中的退款?

您应该以与v2中相同的方式处理退款:当用户请求退款时,通过结账控制台取消或退款订单。然后,应用程序应该在启动时检查购买的状态,等等,并做正确的事情(通常允许退款购买,拒绝取消购买)。不幸的是,提供的示例并不麻烦您这么做,因此您必须自己添加它。更不幸的是,由于本地缓存和/或服务器端的bug,在取消或退款后,购买的物品将长期保持购买状态。尽管如此,你对此无能为力

假设您使用的是普通驱动器示例,您可能希望在应用程序中添加类似的内容:

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();
}

据我所知,应用内购买不支持退款。原因是这些商品可能已经被消费掉了,但对于非消费品,例如解锁更多的应用程序(如高级升级)或您可以完全访问整个应用程序的东西。我不相信他们不会为此采取行动。看起来它是在v2中提供的,看看@Henry well这很烦人,感谢infoYes,v3不再需要
广播接收器
。为什么要使用状态2(退款)作为高级版本?除了让用户满意的回答之外:)有人抱怨高级功能X,要求退款。你退款,但让他们继续使用。他们注意到,你在下一个版本中修复了X,如果你幸运的话,再给你一些星星。(很少像这样工作,但值得一试)。是的,但我是说,用户购买了一个项目,然后要求开发商退款。他意识到他将继续使用。因此,他告诉其他朋友,只要他们要求取消,他就可以不用付费使用它。@Nikolay Elenkov同意-如果有人想偷它,他可能会找到方法,而且关心它是浪费时间。