Получить покупки из приложения с помощью Android BillingClient 2.1, возвращает пустой список - PullRequest
0 голосов
/ 11 апреля 2020

Я пытаюсь получить список (только один элемент) доступных покупок, используя Android BillingClient 2.1, как описано здесь . Например:

private suspend fun querySkuDetails() {
    val skuList = ArrayList<String>()
    skuList.add("premium_upgrade")
    val params = SkuDetailsParams.newBuilder()
    params.setSkusList(skuList).setType(BillingClient.SkuType.INAPP)
    val skuDetailsResult = withContext(Dispatchers.IO) {
        billingClient.querySkuDetails(params.build())
    }
    if (skuDetailsResult.billingResult.responseCode ==  BillingClient.BillingResponseCode.OK && skuDetailsResult.skuDetailsList != null) {
        for (skuDetails in skuDetailsResult.skuDetailsList as List<SkuDetails>) {
            val sku = skuDetails.sku
            val price = skuDetails.price
            if ("premium_upgrade" == sku) {
                premiumUpgradePrice = price
            }
        }
    }
}

В консоли игрового магазина я загрузил приложение, подготовил страницу магазина и добавил управляемый продукт под названием "premium_upgrade". Но я еще не опубликовал приложение, так как в нем отсутствует эта важная часть.

По некоторым причинам skuDetailsResult.skuDetailsList всегда возвращается пустым. В billingResult нет debugMessage. Так что я немного застрял. Есть предложения?

1 Ответ

0 голосов
/ 13 апреля 2020

После небольшого поиска я нашел тестовую часть ниже в левом меню. https://developer.android.com/google/play/billing/billing_testing

При локальном тестировании мне пришлось изменить идентификатор продукта sku на один из зарезервированных идентификаторов Google. Поэтому для тестирования мне пришлось изменить premium_upgrade на android.test.purchased, тогда вы можете попробовать весь поток.

Как только вы совершите пробную покупку управляющего продукта, он скажет, что вы уже являетесь владельцем продукта, и вы там заблокированы. Если вам необходимо повторно протестировать покупку, вы можете использовать эту команду adb, чтобы очистить историю покупок и запустить ее снова.

adb shell pm clear com.android.vending
...