Платежная библиотека Android Play: получить предварительную цену продукта?

Я исследую возможности использования новой библиотеки биллинга Google Play и еще одного Меня беспокоят начальные цены на продукты.

Мне интересно, есть ли способ получить вводные цены с новой библиотекой. Насколько мне известно, это можно сделать с помощью API-интерфейсов Google Play In-app Billing, как описано в этом Stackoverflow question, но я не могу найти аналогичный подход с использованием новой библиотеки Billing.

Кто-нибудь проходил через это раньше?


person Mina Wissa    schedule 04.09.2017    source источник
comment
не можете увидеть начальную цену в android google sdk? есть ли что-нибудь особенное, что я должен реализовать!   -  person Tushar Pandey    schedule 09.06.2021


Ответы (2)


Вам следует просто запросить сведения об артикуле и использовать метод getIntroductoryPrice () для элементов из списка результатов.

P.S. Недавно он был добавлен в версию 1.0. Поэтому, если вы получили библиотеку в первые дни после выпуска, вам следует очистить кеш Gradle и /build папки для повторной загрузки. обновленный выпуск.

person goRGon    schedule 28.09.2017
comment
не можете увидеть вступительные цены во всплывающем окне Google Play, не могли бы вы помочь - person Tushar Pandey; 10.06.2021

Да, есть. Просмотрите это >> https://codelabs.developers.google.com/codelabs/play-billing-codelab/#1

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?)

Имейте в виду, что вы можете получить только предварительную цену за подписку в продукте приложения!

person LekeOpe    schedule 27.09.2017
comment
Спасибо, но я не нашел свойств, в которых указана начальная цена SKU, есть название, цена, подробности ... но не начальная цена - person Mina Wissa; 27.09.2017
comment
Начальная цена SKU не совпадает с вашей ценой SKU, возвращаемой методом getPrice (). Поэтому вместо этого вам следует использовать метод getIntroductoryPrice (). - person goRGon; 29.09.2017
comment
@goRGon о, спасибо, я использовал getPrice() Вместо этого. - person LekeOpe; 30.09.2017
comment
@goRGon - это цена, возвращаемая getIntroductoryPrice (), которую будет взимать этот конкретный пользователь? как насчет пользователей, которые не имеют права на начальную цену, потому что они уже купили этот продукт (или другой) раньше? - person XAnguera; 01.02.2018
comment
@XAnguera, вы нашли способ узнать, соответствует ли пользователь требованиям по начальной цене или нет? - person Mina Wissa; 04.04.2018
comment
@MinaSamy К сожалению, нет. Прямо сейчас я делаю гипотезу на стороне сервера, что пользователь имеет право на вступительную цену, если это первый раз, когда он покупает продукт с включенной начальной ценой. Это не надежное решение, но оно будет работать для нас, пока Google не добавит эту информацию в квитанцию ​​или не создаст для нее API. - person XAnguera; 05.04.2018
comment
@XAnguera Спасибо, да, я думал о подобном решении, похоже, нам придется подождать Google - person Mina Wissa; 05.04.2018
comment
@XAnguera, возможно, есть обновления по этому поводу? У меня такая же проблема, и я надеялся, что есть способ определить, получил ли пользователь начальную цену? - person saltandpepper; 16.04.2019
comment
Начальная цена не отображается, при каждом запуске отображается обычная цена для каждого пользователя. - person KKSINGLA; 10.05.2021