我使用了'com.android.billingclient:账单: 2.0.3‘。
如何区分消费品和未消费的产品?
消耗品经consumeAsync()批准购买,非消费品经acknowledgePurchase()批准购买。
似乎是通过是否调用consumeAsync()来对消费品和非消费品进行分类。
1.还有其他分类方法吗?
(https://developer.android.com/google/play/billing/billing_library_overview#acknowledge/)
2. acknowledgePurchase ()是针对非消耗性产品的apis的。它不应该用于消费品吗?
我可以这样添加一个开发人员工资:
对于可消费产品,consumeAsync()接受一个包含开发人员有效负载字段的ConsumeParams对象,如下面的示例所示:
BillingClient client = ...
ConsumeResponseListener listener = ...
ConsumeParams consumeParams =
ConsumeParams.newBuilder()
.setPurchaseToken(/* token */)
.setDeveloperPayload(/* payload */)
.build();
client.consumeAsync(consumeParams, listener);对于未消费的产品,acknowledgePurchase()接受一个包含开发人员有效负载字段的AcknowledgePurchaseParams对象,如下面的示例所示:
BillingClient client = ...
AcknowledgePurchaseResponseListener listener = ...
AcknowledgePurchaseParams acknowledgePurchaseParams =
AcknowledgePurchaseParams.newBuilder()
.setPurchaseToken(/* token */)
.setDeveloperPayload(/* payload */)
.build();
client.acknowledgePurchase(acknowledgePurchaseParams, listener);3.您是否计划在将来为消耗品和非消耗品添加管理类型?
4.对错误类型的函数是否可以限制调用?
发布于 2019-11-07 07:07:08
Google Play不了解可消费SKU与非消耗品SKU的区别。只有开发人员才有这种知识。
如果希望用户重复购买一个SKU (如硬币、宝石),则可以调用consumeAsync()将其从用户库中删除。如果SKU已经在他的图书馆里,Google Play将不允许用户重新购买它。因此,您必须使用它(从他的库中删除它)。
对于其他一些SKU,如订阅或广告免费,优质内容解锁,有限的项目,如果你希望用户只购买一次,那么就不要消费它。相反,使用acknowledgePurchase API。Google将此作为一项合同引入,以确保您已将产品授予用户。
因此,我想说的是,保存一个目录的消耗品,非消耗品SKU在您的一边。并根据类型调用正确的Google API。
发布于 2019-09-27 08:54:47
据我所知,
非消耗性产品调用acknowledgePurchase()是将购买记录设置为在Google端确认,因此当您试图触发queryPurchase()时,它将显示该产品是使用确认(解析json数据以查看数据)购买的。
可消费产品调用consumeAsync()是为了删除Google端的数据。因此,当触发器时,queryPurchase()应该没有记录。
为什么消费品可以再购买?因为ady把唱片从记录中删除了。再次触发购买时不会返回错误代码7 (BILLING_RESPONSE_RESULT_ITEM_ALREADY_OWNED)
consumeAsync()和acknowledgePurchase()也会将支付设置为done。如果没有触发其中的任何人,那么它将在3天后自动退款。这两个行动也作为确认付款的作用。
所以对于你的问题
1.还有其他分类方法吗?
那些公认的应该是非消费品,因为消费品记录应在成功记录后移除给我方。或者,如果要进行分类,可以为确认设置开发人员有效负载(不能在设置后更改)
2. acknowledgePurchase ()是针对非消耗性产品的apis的。它不应该用于消费品吗?
不,根据您的要求单独使用它。
答案可能不正确。只是分享一下而已。
欢迎回答我的问题也与此有关,确认在服务器端执行。
Server side can do something similar to mobile side comsumeAsync() in Google Billing Library?
https://stackoverflow.com/questions/58057420
复制相似问题