首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用android更新库在应用程序购买中的实现

问用android更新库在应用程序购买中的实现
EN

Stack Overflow用户
提问于 2020-03-26 15:30:15
回答 1查看 1.9K关注 0票数 1

我很难在我的移动应用程序中实现应用程序内的采购。我想在我的application.can中实现应用内购买,任何一个步骤都可以在android应用程序中实现应用内购买。我搜索并找到了许多教程,但它们都使用旧的计费库版本(1.2),.I希望使用最新版本(2.2.0)。任何样本项目,教程..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-26 17:37:56

这些步骤是基于我使用版本2.0.2的经验。由于版本: 2.2.0中没有任何破坏性的更改,因此在最大范围内也是如此。

首先是应用程序内采购的BillingClient:

  1. 必须使用BillingClient.Builder创建计费客户端。
代码语言:javascript
复制
billingClient = BillingClient.newBuilder(applicationContext)
                .enablePendingPurchases()
                .setListener(/* a PurchasesUpdatedListener object */)
                .build()

enablePendingPurchase方法必须在build之前调用,因为谷歌将来支持现金付款,否则billingClient创建就失败了。在创建PurchaseUpdateListener.onPurchasesUpdated方法以处理未决采购后,将触发回调。

  1. 创建billingClient之后,启动billingClient连接。
代码语言:javascript
复制
billingClient.startConnection(/* a BillingClientStateListener object */)

BillingClientStateListener有两种方法:一种是在成功建立连接时触发,另一种是当连接失败或断开时触发。应该始终维护billingClient连接,并在onBillingServiceDisconnected方法中处理重试机制。

  1. 建立成功的连接后,使用billingClient的querySkuDetailsAsync方法调用,以异步获取“sku”详细信息。
代码语言:javascript
复制
billingClient.querySkuDetailsAsync(skuDetailsParams, /* lambda or SkuDetailsResponseListener object*/)

这个方法获取我们在play商店中创建的应用程序内可购买的产品,以便在UI中显示它,或者做我们想要的任何事情。

  1. (可选)使用billingClient的queryPurchases方法调用该应用程序中购买的所有项目的详细信息。
代码语言:javascript
复制
vaultBillingClient.queryPurchases(/* BillingClient.SkuType.SUBS or BillingClient.SkuType.INAPP */)

“‘SUBS”用于订阅购买细节,一次“INAPP”用于购买应用程序。

  1. 当用户尝试购买应用程序内或订阅产品时,检查使用billngClient的isFeatureSupported(BillingClient.FeatureType./* SUBSCRIPTIONS or other */)方法是否支持该产品,并调用billingClient的launchBillingFlow方法。
代码语言:javascript
复制
billingClient.launchBillingFlow(activity, billingFlowParams)

通过传递'sku‘细节,可以使用billingFlowParams构建器方法构建BillingFlowParams。系统用户界面,即,购买bottomSheet将显示。在购买完成后,将触发对步骤1中为PurchasesUpdatedListener.onPurchasesUpdated提供的billingClient方法的调用。

  1. 用户成功购买后,必须立即使用基于购买类型的承认或billingClient的acknowledgePurchase方法。
代码语言:javascript
复制
billingClient.acknowledgePurchase(acknowledgePurchaseParam)

acknowledgePurchaseParams是通过传递'purchaseToken‘使用AcknowledgePurchaseParams构建方法构建的。确认应该在核实购买之后进行。

  1. 一旦购买被验证和确认,billingClient就可以关闭。
代码语言:javascript
复制
billingClient.endConnection()

注意:-对于上面提到的'billingClient‘连接应该是完整的。因此,重试机制的断开。最好是尽快开始计费客户端连接,一旦应用程序被打开,让用户有权购买他所有的东西。此外,始终维护与计费客户端的连接没有性能问题。然而,这取决于开发人员如何授予用户他的购买权;要么使用他的服务器,要么通过任何其他方式。

有关进一步参考,请参阅文档:概述

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

https://stackoverflow.com/questions/60870706

复制
相关文章

相似问题

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