我很难在我的移动应用程序中实现应用程序内的采购。我想在我的application.can中实现应用内购买,任何一个步骤都可以在android应用程序中实现应用内购买。我搜索并找到了许多教程,但它们都使用旧的计费库版本(1.2),.I希望使用最新版本(2.2.0)。任何样本项目,教程..。
发布于 2020-03-26 17:37:56
这些步骤是基于我使用版本2.0.2的经验。由于版本: 2.2.0中没有任何破坏性的更改,因此在最大范围内也是如此。
首先是应用程序内采购的BillingClient:
BillingClient.Builder创建计费客户端。billingClient = BillingClient.newBuilder(applicationContext)
.enablePendingPurchases()
.setListener(/* a PurchasesUpdatedListener object */)
.build()enablePendingPurchase方法必须在build之前调用,因为谷歌将来支持现金付款,否则billingClient创建就失败了。在创建PurchaseUpdateListener.onPurchasesUpdated方法以处理未决采购后,将触发回调。
billingClient.startConnection(/* a BillingClientStateListener object */)BillingClientStateListener有两种方法:一种是在成功建立连接时触发,另一种是当连接失败或断开时触发。应该始终维护billingClient连接,并在onBillingServiceDisconnected方法中处理重试机制。
querySkuDetailsAsync方法调用,以异步获取“sku”详细信息。billingClient.querySkuDetailsAsync(skuDetailsParams, /* lambda or SkuDetailsResponseListener object*/)这个方法获取我们在play商店中创建的应用程序内可购买的产品,以便在UI中显示它,或者做我们想要的任何事情。
queryPurchases方法调用该应用程序中购买的所有项目的详细信息。vaultBillingClient.queryPurchases(/* BillingClient.SkuType.SUBS or BillingClient.SkuType.INAPP */)“‘SUBS”用于订阅购买细节,一次“INAPP”用于购买应用程序。
isFeatureSupported(BillingClient.FeatureType./* SUBSCRIPTIONS or other */)方法是否支持该产品,并调用billingClient的launchBillingFlow方法。billingClient.launchBillingFlow(activity, billingFlowParams)通过传递'sku‘细节,可以使用billingFlowParams构建器方法构建BillingFlowParams。系统用户界面,即,购买bottomSheet将显示。在购买完成后,将触发对步骤1中为PurchasesUpdatedListener.onPurchasesUpdated提供的billingClient方法的调用。
acknowledgePurchase方法。billingClient.acknowledgePurchase(acknowledgePurchaseParam)acknowledgePurchaseParams是通过传递'purchaseToken‘使用AcknowledgePurchaseParams构建方法构建的。确认应该在核实购买之后进行。
billingClient.endConnection()注意:-对于上面提到的'billingClient‘连接应该是完整的。因此,重试机制的断开。最好是尽快开始计费客户端连接,一旦应用程序被打开,让用户有权购买他所有的东西。此外,始终维护与计费客户端的连接没有性能问题。然而,这取决于开发人员如何授予用户他的购买权;要么使用他的服务器,要么通过任何其他方式。
有关进一步参考,请参阅文档:概述
https://stackoverflow.com/questions/60870706
复制相似问题