Why Android BillingClient v2 slow credit card test never cancels? Why Android BillingClient v2 slow credit card test never cancels? android android

Why Android BillingClient v2 slow credit card test never cancels?


I also discovered that in my tests, although I also remember that using the deprecated AIDL a user of my app took 24 hours to validate the purchase. I have considered the case of the refused slow card taking hours may occur and I have done the following:

If purchase.getPurchaseState() == Purchase.PurchaseState.PENDING then I show a dialog that says: Waiting for purchase validation. Sometimes it can last several hours

If the user tries to buy the item again and billingResult.getResponseCode() == BillingClient.BillingResponseCode.ITEM_ALREADY_OWNED then I show a dialog that says: Cannot buy the item. You already own it or a previous purchase is still pending for validation

Hope it will help


It actually declines a few minutes later. I realized that if you check "Order management" on Play Console you'll see it already declined.

The issue is the local cache of google play billing. I guess that updating this cache for billing tests is very low priority, you can clear it like this:

adb shell pm clear com.android.vending


I had the same issue. On launchBillingFlow you get a BillingResponseCode.ITEM_ALREADY_OWNED. the purchase returns PurchaseState.PENDING. If you consumeAsync immediately after, its response is BillingResponseCode.DEVELOPER_ERROR, but after a few minutes (or whatever delay the transaction takes to fail) you can consumeAsync again then it returns BillingResponseCode.ITEM_NOT_OWNED, now you are allowed to retry the launchBillingFlow again. like Lluis Felisart said create a dialog to ask the user to clear the pending,