Purchases not being acknowledged

One of our apps in google play store is randomly showing this warning now. We didn’t update the app in months.

Acknowledge purchases or they will be automatically refunded
We’ve detected that your app is not acknowledging all in-app purchases or subscriptions. Starting with Billing Library 2.0, all purchases must be acknowledged within 3 days or they will be automatically refunded.

It’s using:
Unity IAP 3.1.0.
Unity 2019.4.28.

We have verified that we are returning Complete in ProcessPurchase. All products are consumable. We have other apps in store that use the same purchase logic but are not having this issue.

We are running out of ideas to solve the problem. Is there something we might be missing?

Thank you in advance!

Please use Unity IAP 4.1.0, we have made improvements in this area. Also, with the code you mention, ensure you are not using the IAP Catalog nor using Codeless IAP buttons.

We are not using Codeless in any project, but IAP Catalog is in use in that one. We weren’t aware that it might be an issue there.

We’ll try to work around the catalog and see what happens. Thank you!

How are you loading your products using the Catalog? It’s possible, but I wanted to confirm. There is a option on the Catalog window to “Automatically initialize IAP”, you would want this off if you are initializing via scripted IAP.

We are both using

var catalog = ProductCatalog.LoadDefaultCatalog();

and have “Automatically initialize UnityPurchasing” marked in IAP Catalog. Probably we can pass without marking that checkbox.

Got it, that should work. And yes, leave off auto initialize, hopefully that will resolve it.

I am facing the similar issue now:

  1. Using codeless button with Unity IAP v.4.1.3
  2. Using IAP catalog
  3. As Google support told me the purchases made on Android are not acknowledged and were refunded.

I am missing something? What should I do to make Unity IAP system to acknowledge the purchases in Play Store (I though it supposed to be done automatically by default).

What I did is added IAP button component to my button and attached a script. What else do I need to do to make the purchases completed (acknowledged) and not refunded?

8380650--1105077--UnityIAPbutton.jpg

Please see the previous suggestions about not using Codeless IAP which is the cause of the no acknowledgement. Use Scripted IAP instead which is 1) easier to use that Codeless 2) is more flexible 3) properly acknowledges purchases https://discussions.unity.com/t/700293/4

Thanks for the quick reply.
I wonder what is the purpose of Codeless IAP then if it’s not working as expected?

Meanwhile I did a small research and it seems like in the Codeless IAP button there is a checkbox “Consume purchase” which is actually responsible for acknowledging the purchase. [JeffDUnity3D]( https://discussions.unity.com/t/859404 members/jeffdunity3d.1367015/) Can you confirm it? It supposed to work, right? Is it?.. please refer to the attached files

If so, the checkbox supposed to be called “Acknowledge purchase” I assume. Otherwise it’s kinda misleading8381532--1105239--Screenshot 2022-08-23 at 01.11.33.jpg

Yes, that is correct. Codeless is currently included for those users who may have used it previously and are wanting to upgrade their IAP without error and then switching to scripted IAP. If it’s working in your testing, then go ahead and use it. But it doesn’t support receipt validation for fighting fraudulent purchases, nor IAP subscriptions or any customization without writing code and editing the existing (and complex) code and requires a listener. Scripted IAP easier to use and more flexible than Codeless (which was originally developed for in-editor prototyping and demo purposes)