3

在我的应用程序中,我通过托管购买(只能购买一次)提供高级升级 - 而不是订阅。

重新购买购买时,用户似乎无法重新购买升级:

int billingFlowResponseCode = billingClient.launchBillingFlow(activity, flowParams);返回ITEM_ALREADY_OWNED

这里的这个问题似乎表明用户应该能够在大约 24 小时后购买该商品。然而,超过 36 小时过去了,没有运气。

我的问题是:对于已退款或取消的托管商品,我是否需要消费才能再次购买?

还是我需要等待更多时间..?

4

1 回答 1

2

好吧,我找到了方法……

需要做的是:

  1. 客户端查询用户的购买情况(我使用的是 app-billing 库)。
  2. 客户端使用购买令牌联系服务器,以找出哪些购买仍然有效。
  3. 服务器调用GET purchaseGoogle API 的端点(https://developers.google.com/android-publisher/api-ref/purchases/products/get),检查购买是否需要消费并将此信息返回给客户端。(如果 ,则需要消费一次购买purchase.purchaseState == 1 && purchase.consumptionState == 0)。
  4. 对于那些需要消费的采购,客户调用BillingClient::consume()

如果在 Play 管理中心中有一个选项可以将项目标记为“消耗品”或不标记为“消耗品”,那会容易得多 - 这样一来,如果它们是“非消耗品”,就不需要手动消耗它们.

于 2018-04-16T08:56:11.747 回答