如何区分可消费产品和未消费产品?

问题描述 投票:0回答:1

我使用了'com.android.billingclient:计费:2.0.3'。

如何区分消耗性产品和非消耗性产品?

消费品获准以consumeAsync()采购,非消费品获准以acknowledgePurchase()采购。

[[似乎消费品和非消费品是通过是否调用preventAsync()进行分类的。

1。还有其他分类方法吗?

(C0])

2。 acceptPurchase()指向非消耗性产品的api。它不应该用于消费品吗?

我可以通过这种方式添加开发人员薪水:

对于易耗品,consumeAsync()包含一个ConsumeParams对象,该对象包含开发人员有效负载字段,如以下示例所示:

https://developer.android.com/google/play/billing/billing_library_overview#acknowledge/

对于未消费的产品,acceptPurchase()接受一个AcknowledgePurchaseParams对象,该对象包含开发人员有效负载字段,如以下示例所示:

BillingClient client = ... ConsumeResponseListener listener = ... ConsumeParams consumeParams = ConsumeParams.newBuilder() .setPurchaseToken(/* token */) .setDeveloperPayload(/* payload */) .build(); client.consumeAsync(consumeParams, listener);

(C0])

3。将来您打算为消耗品和非消耗品添加管理类型吗?

4。是否可以限制键入错误的函数的调用?

in-app-billing billing android-billing play-billing-library
1个回答
0
投票
就目前为止我所了解的,

非消耗性产品调用validatePurchase()会将购买记录设置为在Google端已确认,因此当您尝试触发queryPurchase()时,它将显示已购买已确认的产品(解析json数据以查看数据)

消费产品调用ConsumerAsync()用于删除Google端的数据。因此,当触发queryPurchase()时,将没有任何记录。

为什么消费品可以再次购买?因为记录ady已从记录中删除。当再次购买触发器时,将不会返回错误代码7(BILLING_RESPONSE_RESULT_ITEM_ALREADY_OWNED)

bottleAsync()和ConfirmPurchase()都将付款设置为完成。如果未触发任何人,则3天后它将自动退款。这两个操作也都可以用作确认付款。

所以提您的问题

1。还有其他分类方法吗?

那些公认的产品应该是非消耗性产品,因为在成功记录到我们这边之后,应删除消耗性产品记录。或者,如果要分类,可以为确认设置开发人员有效负载(设置后无法更改)

2。 acceptPurchase()指向非消耗性产品的api。它不应该用于消费品吗?

否,根据您的要求单独使用

答案可能不正确。只是一些分享。

欢迎回答我的问题也与此有关,确认在服务器端执行

BillingClient client = ... AcknowledgePurchaseResponseListener listener = ... AcknowledgePurchaseParams acknowledgePurchaseParams = AcknowledgePurchaseParams.newBuilder() .setPurchaseToken(/* token */) .setDeveloperPayload(/* payload */) .build(); client.acknowledgePurchase(acknowledgePurchaseParams, listener);

© www.soinside.com 2019 - 2024. All rights reserved.