Android Play结算库:获取产品入门价格?

时间:2017-09-04 09:10:05

标签: android android-billing android-inapp-purchase play-billing-library

我正在调查使用新的Play Billing Library,我关注的一件事是产品介绍价格

我想知道是否有办法用新库检索介绍价格。据我所知,可以使用此Stackoverflow question中所述的Google Play应用内结算API来完成,但我无法使用新的结算库找到类似的方法。

有没有人来过这个?

2 个答案:

答案 0 :(得分:2)

是的,有。请注意这个>> {{3}}

val skuList = arrayListOf("sku_id_of_in_app_product","sku_id_of_in_app_product")
val itemType = SkuType.INAPP // or SkuType.SUBS that corresponds with the skuList
val skuDetailsParams = SkuDetailsParams.newBuilder().setSkusList(skuList).setType(itemType).build()

mBillingClient.querySkuDetailsAsync(skuDetailsParams, object : SkuDetailsResponseListener{
    override fun onSkuDetailsResponse(responseCode: Int, skuDetailsList: MutableList<SkuDetails>?) {
       responseListener.onSkuDetailsResponse(responseCode, skuDetailsList);
   }
})

您的监听器:您需要使用监听器,以便在异步查询完成后能够得到响应!

val responseListener = SkuDetailsResponseListener { responseCode, skuDetailsList ->
    if (responseCode == BillingClient.BillingResponse.OK && skuDetailsList != null) {
        val inList = ArrayList<SkuRowData>()
        for (details in skuDetailsList) {
            Log.i(TAG, "Found sku: $details")
            inList.add(SkuRowData(details.sku, details.title, details.price, details.introductoryPrice, details.description, details.type))
         }
     }
 }

SkuRowData只是一个模型类

class SkuRowData(sku: String?, title: String?, price: String?, introductory_price: String?, description: String?, type: String?)

请注意,您只能在应用商品中获得订阅价格!

答案 1 :(得分:1)

您应该query SKU details并使用getIntroductoryPrice() method作为结果列表中的项目。

P.S。它最近被添加到1.0版本中。因此,如果您在发布后的第一天内获得了库,则应该clear your gradle cache/build个文件夹重新下载更新的版本。