Итак
У меня была ошибка, при которой не было процесса подтверждения после покупки продукта в приложении (не расходуемого). В результате он начал автоматически возвращаться через 3 дня. Я исправил ошибку, добавив процесс подтверждения следующим образом.
if(!i.isAcknowledged){
val acknowledgePurchaseParam = AcknowledgePurchaseParams.newBuilder()
.setPurchaseToken(i.purchaseToken)
.build()
billingClient.acknowledgePurchase(acknowledgePurchaseParam,object : AcknowledgePurchaseResponseListener{
override fun onAcknowledgePurchaseResponse(p0: BillingResult?) {
Log.d("functions","Acknowlege the purchase. ${p0!!.debugMessage} ${p0!!.responseCode}")
}
})
Но проблема в том, что ...
У меня есть 6 уже купленных продуктов, и они были приобретены, когда у меня не было подтверждения процесс, который означает, что он будет возвращен через 3 дня. Я не хочу этого! Поэтому, чтобы не получить возмещение, я попытался получить идентификатор токена покупки здесь.
![enter image description here](https://i.stack.imgur.com/V32xK.png)
Если я нажму "посмотреть токен покупки", это даст мне строку как, например, oifogkffdhfbojjgficmakpm.AO-sadsf1OzKTpdfa44xTUoQMBCNz7sYMoyNXzaHI25kbBaF9Rp_Wd - azthBMdUDspYiw3TxOAJW2qE226soQ0fTzMZaP_2DrU_i4Oej1a4T7RPGa-dRi9M8g_SA . Таким образом, с помощью этого токена я попытался подтвердить покупку программным путем.
val listener = object : AcknowledgePurchaseResponseListener {
override fun onAcknowledgePurchaseResponse(p0: BillingResult?) {
Log.d(
"ack!",
"Acknowlege the purchase. ${p0!!.responseCode} ${p0!!.debugMessage} billing status : ${billingHelper.billingClient.isReady}"
)
}
}
val acknowledgePurchaseParam = AcknowledgePurchaseParams.newBuilder()
.setPurchaseToken("mcceldobdaeegnfaagmpenpc.AO-J1OxFejDLCdtFRIiNpHHIGOv1aHsea_7kZPJ4IoYMZLMY8ot7DnwXvEHFQQ78ZIbtoy578jSZ4j1PZZoi0BmPMu5uTpqZIC2GFrPTQWlzt1MRcSferJg")
.build()
billingHelper.billingClient.acknowledgePurchase(acknowledgePurchaseParam1, listener)
Но когда я запускаю этот код на моем эмуляторе, он выдает мне код ошибки 5 с сообщением об отладке «Не удается найти покупку с данным token ".
Есть ли способ подтвердить уже купленные в приложении продукты? Если это так, я буду признателен всем своим сердцем! Спасибо!