使用 Android BillingClient 2.1 检索应用内购买,returns 空列表
Retrieve in-app purchases with Android BillingClient 2.1, returns empty list
我正在尝试使用 Android BillingClient 2.1 检索可用购买的列表(仅一项),如 here 所述。像这样:
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
}
}
}
}
在 Play 商店控制台中,我上传了准备商店页面的应用程序并添加了一个名为 "premium_upgrade" 的托管产品。但我还没有发布这个应用程序,因为它缺少这个重要的部分。
出于某种原因 skuDetailsResult.skuDetailsList
总是返回空的。 billingResult
中没有debugMessage
。所以我有点卡住了。有什么建议吗?
经过一番搜索,我在左侧菜单的下方找到了测试部分。
https://developer.android.com/google/play/billing/billing_testing
在本地测试时,我不得不将 sku 产品 ID 更改为保留的 google ID 之一。因此为了测试,我不得不将 premium_upgrade
更改为 android.test.purchased
然后您可以尝试整个流程。
一旦您对管理产品进行了测试购买,它会说您已经拥有该产品并且您会在那里被阻止。如果您需要重新测试购买,您可以使用此 adb 命令清除购买历史并再次 运行。
adb shell pm clear com.android.vending
我正在尝试使用 Android BillingClient 2.1 检索可用购买的列表(仅一项),如 here 所述。像这样:
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
}
}
}
}
在 Play 商店控制台中,我上传了准备商店页面的应用程序并添加了一个名为 "premium_upgrade" 的托管产品。但我还没有发布这个应用程序,因为它缺少这个重要的部分。
出于某种原因 skuDetailsResult.skuDetailsList
总是返回空的。 billingResult
中没有debugMessage
。所以我有点卡住了。有什么建议吗?
经过一番搜索,我在左侧菜单的下方找到了测试部分。 https://developer.android.com/google/play/billing/billing_testing
在本地测试时,我不得不将 sku 产品 ID 更改为保留的 google ID 之一。因此为了测试,我不得不将 premium_upgrade
更改为 android.test.purchased
然后您可以尝试整个流程。
一旦您对管理产品进行了测试购买,它会说您已经拥有该产品并且您会在那里被阻止。如果您需要重新测试购买,您可以使用此 adb 命令清除购买历史并再次 运行。
adb shell pm clear com.android.vending