已退款的托管商品是否需要消费?
Do refunded managed items need to be consumed?
在我的应用程序中,我通过 托管 购买(只能购买一次)提供高级升级 - 而不是订阅。
当购买退款时,用户似乎无法重新购买升级:
int billingFlowResponseCode = billingClient.launchBillingFlow(activity, flowParams);
returns ITEM_ALREADY_OWNED
.
This question 此处似乎建议用户在大约 24 小时后应该可以购买商品。然而已经过去了36个多小时,没有运气。
我的问题是:对于已退款或取消的托管商品,我是否需要消费才能再次购买?
还是需要再等一段时间..?
好的,我找到方法了...
需要做的是:
- 客户端查询用户的购买情况(我用的是app-billing库)
- 客户端使用购买令牌联系服务器,以找出哪些购买仍然有效。
- 服务器调用Google的API(https://developers.google.com/android-publisher/api-ref/purchases/products/get)的
GET purchase
端点,检查购买是否需要消费 和 returns 将此信息发送给客户端。 (如果purchase.purchaseState == 1 && purchase.consumptionState == 0
需要消费一次购买)。
- 对于那些需要消费的购买,客户端调用
BillingClient::consume()
。
如果 Play 控制台中有一个选项可以将项目标记为 "consumable" 或不标记,那就会容易得多 - 这样就不需要手动消耗 "non-consumable"排在首位。
在我的应用程序中,我通过 托管 购买(只能购买一次)提供高级升级 - 而不是订阅。
当购买退款时,用户似乎无法重新购买升级:
int billingFlowResponseCode = billingClient.launchBillingFlow(activity, flowParams);
returns ITEM_ALREADY_OWNED
.
This question 此处似乎建议用户在大约 24 小时后应该可以购买商品。然而已经过去了36个多小时,没有运气。
我的问题是:对于已退款或取消的托管商品,我是否需要消费才能再次购买?
还是需要再等一段时间..?
好的,我找到方法了...
需要做的是:
- 客户端查询用户的购买情况(我用的是app-billing库)
- 客户端使用购买令牌联系服务器,以找出哪些购买仍然有效。
- 服务器调用Google的API(https://developers.google.com/android-publisher/api-ref/purchases/products/get)的
GET purchase
端点,检查购买是否需要消费 和 returns 将此信息发送给客户端。 (如果purchase.purchaseState == 1 && purchase.consumptionState == 0
需要消费一次购买)。 - 对于那些需要消费的购买,客户端调用
BillingClient::consume()
。
如果 Play 控制台中有一个选项可以将项目标记为 "consumable" 或不标记,那就会容易得多 - 这样就不需要手动消耗 "non-consumable"排在首位。