Estou tentando obter o productId de uma compra:
private fun queryPurchases(purchases: List<Purchase>){
for (purchase in purchases) {
Log.d("pikaboo", purchase.toString())
when (purchase.purchaseState) {
Purchase.PurchaseState.PURCHASED -> {
val purchaseTime = (purchase.purchaseTime / 1000).toInt()
when (purchase.productId) {
"no_ads_in_app_month" -> {
}
"no_ads_in_app_3_months" -> {
}
}
}
}
}
}
Este é o registro:
Purchase. Json: {"orderId":"GPA.333.333.333","packageName":"de.bla.foo","productId":"no_ads_in_app_3_months","purchaseTime":1694810217354,"purchaseState":0,"purchaseToken":"xxxxxxxxxxxx","quantity":1,"acknowledged":true}
O productId
dentro purchase.productId
éUnresolved reference
todo o resto purchase.purchaseTime
purchase.purchaseState
purchase.packageName
funciona.
Por que não purchase.productId
? Isso é um inseto? Como resolver isso?
Conforme escrito na documentação dos desenvolvedores Android na
Purchase
classe, você poderá obter IDs de produtos dogetProducts()
método. Seu tipo de retorno éList<String>
.Não estou muito familiarizado com a biblioteca de cobrança, então presumo que a compra possa ser representada por vários produtos. Você provavelmente deveria percorrer a lista e colocar seu
when
operador em algum tipo de loop.