问题描述
我正在从Play计费库的v1.0迁移到v3.0。
下面的代码演示了如何在v1.0中启动购买流程
val billingParams = BillingFlowParams.newBuilder().setSku(skuId).setType(skuType).build()
val billingResult = billingClient.launchBillingFlow(activity,billingParams)
在3.0版中
它应该这样完成:
val billingParams = BillingFlowParams.newBuilder().setSkuDetails(skuDetails).build()
val billingResult = billingClient.launchBillingFlow(activity,billingParams)
如何使用skuId和skuType创建skuDetail?
解决方法
这是我使用的方法,您传递了软件包名称列表,它返回了SkuDetails
的列表
suspend fun queryInAppPurchaseSkuDetails(packagesList: List<String>): List<SkuDetails>? {
val params = SkuDetailsParams.newBuilder()
params.setSkusList(packagesList).setType(BillingClient.SkuType.INAPP)
val skuDetailsResult = withContext(Dispatchers.IO) {
billingClient?.querySkuDetails(params.build())
}
// Process the result.
if (skuDetailsResult?.billingResult?.responseCode == BillingClient.BillingResponseCode.OK && packagesList.isNotNullOrEmpty()) {
val skuDetailsList = skuDetailsResult.skuDetailsList
return skuDetailsList
}
return null
}