首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何区分可消费产品和未消费产品?

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

Stack Overflow用户
提问于 2019-09-23 07:18:53
回答 2查看 1.2K关注 0票数 1

我使用了'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对象,如下面的示例所示:

代码语言:javascript
复制
BillingClient client = ...
ConsumeResponseListener listener = ...

ConsumeParams consumeParams =
    ConsumeParams.newBuilder()
        .setPurchaseToken(/* token */)
        .setDeveloperPayload(/* payload */)
        .build();

client.consumeAsync(consumeParams, listener);

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

代码语言:javascript
复制
BillingClient client = ...
AcknowledgePurchaseResponseListener listener = ...

AcknowledgePurchaseParams acknowledgePurchaseParams =
    AcknowledgePurchaseParams.newBuilder()
        .setPurchaseToken(/* token */)
        .setDeveloperPayload(/* payload */)
        .build();

client.acknowledgePurchase(acknowledgePurchaseParams, listener);

(https://developer.android.com/google/play/billing/billing_library_overview#attach_a_developer_payload)

3.您是否计划在将来为消耗品和非消耗品添加管理类型?

4.对错误类型的函数是否可以限制调用?

EN

回答 2

Stack Overflow用户

发布于 2019-11-07 07:07:08

Google Play不了解可消费SKU与非消耗品SKU的区别。只有开发人员才有这种知识。

如果希望用户重复购买一个SKU (如硬币、宝石),则可以调用consumeAsync()将其从用户库中删除。如果SKU已经在他的图书馆里,Google Play将不允许用户重新购买它。因此,您必须使用它(从他的库中删除它)。

对于其他一些SKU,如订阅或广告免费,优质内容解锁,有限的项目,如果你希望用户只购买一次,那么就不要消费它。相反,使用acknowledgePurchase API。Google将此作为一项合同引入,以确保您已将产品授予用户。

因此,我想说的是,保存一个目录的消耗品,非消耗品SKU在您的一边。并根据类型调用正确的Google API。

票数 2
EN

Stack Overflow用户

发布于 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?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58057420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档