我已经遵循了有关使用 Google Billing 实施订阅的教程,但我遗漏了一些方法,但它似乎工作得很好。
这是我遗漏的方法之一:
private fun handelPurchase(purchase: Purchase){
val consumeParams =
ConsumeParams.newBuilder()
.setPurchaseToken(purchase.purchaseToken)
.build()
val listener = ConsumeResponseListener { billingResult, s ->
if(purchase.purchaseState == BillingClient.BillingResponseCode.OK){
}
}
billingClient.consumeAsync(consumeParams, listener)
if(purchase.purchaseState == Purchase.PurchaseState.PURCHASED){
}
}
这样做的目的是什么?我还应该实施吗?
这是我迄今为止使用的最后一步:
private fun ackPurchase(purchase: Purchase) {
if (!purchase.isAcknowledged) {
val params = AcknowledgePurchaseParams.newBuilder().setPurchaseToken(purchase.purchaseToken).build()
billingClient.acknowledgePurchase(params) { billingResult ->
if(billingResult.responseCode == BillingClient.BillingResponseCode.OK){
premiumActivate()
}
}
}else{
premiumActivate()
}
}
那么我需要两者还是只需要其中之一?谷歌文档一如既往地不完整
我发现的唯一类似的其他问题是:
Android应用内计费,如何判断是调用consumeAsync还是acknowledgePurchase?
但没有得到答复
基本上有以下几类产品:
consumeAsync
仅用于最后一个类别。这意味着确认+将其标记为“已使用”,以便您再次购买。否则,如果您尝试多次购买,您将遇到ITEM_ALREADY_OWNED
错误。
在 Google Play 中,消费品和非消费品之间没有技术差异(与 App Store 等不同)。因此,是否使用或仅承认它们取决于开发者。