当前位置: 首页 > 知识库问答 >
问题:

是否支持在应用程序消费购买中为Android退款?-应用计费API V3

公孙和怡
2023-03-14

那么在应用计费v3 API中如何处理退款呢?我假设对于一个非消耗品,退款被处理,然后google通过他们的后端处理这个处理,然后当getPurchaseState()被执行时,它将返回值2(退款)。如果是这样的话,这对于一个非消耗性产品来说是非常有效的。

当对可消费购买进行getPurchaseState()调用时,它返回null。这是假设购买之前是成功的,并且该项目被消费和供应。我想我可以在应用程序中本地存储购买商品,但仍然无法收到该产品的退款通知。我可以检查购买状态,但同样,它将返回null,只要它已经被消费和供应。

我现在能想到的一个轻微的变通方法是不在供应上消费购买。因此,根据谷歌的说法,它仍然是“未消费”的,并留在他们的数据库中。现在,如果请求退款,我假设调用该消耗品的getPurchaseState()将返回退款,因此应用程序逻辑可以从用户库存中减去/扣除所提供的消耗品。如果用户想要重新购买该消耗品,那么在为购买调用IAB api之前,获取purchaseState()和/或haspurche(),如果那里已经有购买,则在没有供应的情况下消费该商品,这将允许用户重新购买该消耗品。这个变通方法的唯一问题是,如果用户想要重新购买相同的消耗品,一旦选择了重新购买的选项,无论他们是否成功地重新购买了该产品,该商品都必须被消费。因此,如果用户没有完成购买,产品已经消费,我最终回到我现在的地方,无法检查消费产品的退款状态。

我想不出任何其他方法来为应用程序产品中的消耗品退款,这就是我在这里要求的。我想的方法是否足够,或者是否有一个适当的方法来处理使用消耗品的IAP v3退款?我在想我有三个选择:

  1. 不为消耗品提供退款,没有/很少例外,但问题是,如果用户通过谷歌而不是通过开发人员请求退款,则会导致下面的选项3)
  2. 找到一个解决方案(通过api或我提出的解决方案)
  3. 提供退款,但没有应用程序逻辑来减去/扣除消耗品。在这种情况下,用户最终可能会利用免费购买。

共有1个答案

程磊
2023-03-14

我知道这是一个超级晚的回应这个问题,但它花了我相当多的时间来追踪这个问题的信息,所以希望它可以帮助其他人。有几种方法可以做到这一点...在Google Play开发者控制台中,你可以点击左边的导航,上面写着“订单管理”,这将显示最近通过你的应用程序完成的所有订单的列表。如果您需要退款一个,您可以点击它,或多个选择他们,并在此视图中退款。只是提个醒...您很可能需要您的帐户管理员的权限才能查看此视图并退款给用户。

您的另一个选择是通过这里的API文档。您需要通过Android控制台设置API帐户,我会说这是一个巨大的痛苦,而且不清楚。但是一旦设置好了,并且您的“服务器应用程序”也设置好了,您将需要确保它也具有适当的权限。然后,您应该能够使用这样的库来为您完成繁重的任务,因为根据我所读到的JWT auth过程,google API并不是非常简单的,它们的文档也是一团糟。我希望这能帮助别人,如果你有问题的话,请发表评论...我会尽力回答的。

这个API还可以用来查找用户购买的商品,然后退款,这样你就可以从这些用户的应用程序中删除这些商品。此外,你也可以通过这个来进行服务器端购买验证,这是强烈推荐的,因为扎根手机可以注入虚假的购买请求,让你的应用程序相信它收到了谷歌play商店的回复,但实际上并非如此。然后将购买令牌和正在购买的商品的SKU发送回服务器,然后在服务器上运行此命令。如果是无效的,这将返回400个错误,如果是成功的购买,则返回200个带有一些JSON数据的错误。

 类似资料:
  • 我在测试我的应用内计费时遇到了麻烦。 (使用Google Play应用内计费版本3 API) 问题: 已退款的应用程序内购买仍然存在于购买列表中,该列表由BillingClient.query购买()提供。 当我在一月份尝试退款时,退款的物品从购物清单上消失了。 我所做的: 作为测试人员购买了一些物品。 (我很确定对话框说是测试购买。) 之后在谷歌游戏控制台退款。 等到他们的付款状态变成退款。 清

  • 在我的测试应用程序中,用户点击一个购买按钮,然后购买一个物品。当购买完成时,一个textview会显示为“购买完成”。都很好。:)。然而,当我杀死应用程序,并再次打开它,购买按钮再次出现....:/。为什么会发生这种情况?谷歌对此不是很清楚。下面是代码。 固定 最后使用if条件使视图可见或不可见 解决方案并不难,但我必须大量阅读文档,使用调试器点,就是这样:)。

  • 我正在学习应用内计费,但我有一个问题,谷歌的应用内计费的例子,地下城的一个。 我已经设置了应用程序,添加了我的公钥,并将makeRequestBundle()中的API_VERSION更改为1。 我甚至尝试了一个不同的设备,以确保这不是因为开发者不能购买他们自己的产品,我得到了相同的信息在两个设备上。 我错过了什么?

  • 我收到这个错误,同时测试我的应用程序。 该应用程序被签名并上传到开发者控制台的alpha测试部分。 应用内项目的状态为"Active"。 我在“测试访问”中输入了我的开发者账户以外的账户。 我使用的设备在“测试访问”中具有主帐户,而不是开发人员帐户。 我已经仔细检查了我的SKU的拼写。 完全相同的. apk被上传到开发人员控制台并安装在测试设备上。 我已经仔细检查了许可证密钥。 我已经等了超过12

  • 我已经用这个phonegap插件实现了应用内计费V3。当我购买物品时,google play会返回以下信息: 这很可能是某个地方的设置问题,但我找不到问题所在。 这是我到目前为止所做的: 在google play上创建并以价格活跃的项目 查询的物品ID和google play上的一样 在alpha通道上传了我的apk(也尝试过beta通道),它处于“在Alpha中草稿”状态 等了几个小时(48小时