Auto-refund in Google Play after 3 days

Hello!
Recently I published a new app at Google Play and noticed that all orders are being refunded after 3 days. The logic and script that makes IAP stuff I took from my other app that works good for years.

Currently i’m on Unity Editor 2020.3.48 and IAP 4.11.0 My IAP script is in attachment. I have only 1 non cosumable product. All code made reffering to Unity IAP latest documentation.

Please help! Loosing money every day :frowning:

9777057–1401660–InAppController.cs (5.1 KB)

1 Like

Hello Sparkline,

Could you verify these things:

  • Is “Consume Purchase” ticked on your IAP Button for your non-consumable?
    If it isn’t, you should either tick it or make sure to call ConfirmPendingPurchase when purchases are made.
  • In your ProcessPurchase, does it reach the return line?
    If your GotPurchase is throwing an error, this might be preventing it from reaching the return and then your purchase doesn’t get confirmed.
  1. Is it from codeless things? I don’t use codeless. I have usual button that has onClick action -
    BuyProductID(“id”) from script I attached.
  2. All my test shows that GotPurchase() isn’t throwing an error, tested in editor, on device with test account and on other device with usual account. All tests were made either in mainMenu scene or after loading other scenes and then back to mainMenu.

Any other suggestions?

Currently, I downgraded the IAP package to 4.10, and now waint for 3 days. This is the only difference with my other similar project that works fine.

When testing, is there any error logs with “Unity IAP”?

There was also this other post mentioning a similar case that might help:

A workaround could be to return PurchaseProcessingResult.Pending to the ProcessPurchase and call ConfirmPendingPurchase directly.

Id like to mention I also faced this issue.

I recently updated from 4.12.2 to 5.0.0-pre.7(might of been pre.6 Ive forgotten) to address google plays billing library warnings. I straight up imported the new version of the IAP package and didnt make any code changes to my existing setup. Purchases seemed to work so I pushed my new build live but noticed that after 3 days purchases were automatically being refunded. I chalked it up to an issue with the new IAP package so reverted back to 4.12.2 which is now working again. Im not using codeless.

Given the versions its hard to tell if myself and the original poster are facing the same bug so if I should make a new post let me know or if I can help in anyway :slight_smile:

Hello @FourThreeOneFour ,
We’re currently investigating your issue to make sure we address this.
For your purchases being refunded, was it 100% of purchases or only some of them? Do you have any additional details you can give us?

We believe it might be related to this issue:

Hey, thanks for looking into this.

Yes it happened to all purchases. Happened to purchases of different currencies and even happened to a test purchased I performed.

I had also upgraded my unity version at the same time from 2022.3.56f1 to 6000.0.47f1, but as mentioned I reverted just the IAP upgrade and purchases went back to working as expected so not sure if this change effected anything.

Not sure if this relates to the bug you mentioned which suggests that the ProcessPurchase wasnt being invoked(from my quick look at the thread) but I give the player their purchased items from my ProcessPurchase method and I got rewards when tested and had no reports of users not receiving theirs either.

As I also said, no code change was required from the IAP upgrade and I’m not doing anything fancy just using the suggested flow and code from the unity manuals.

If there is more specific information you need let me know.

Cheers!

When you say all purchases, does this mean they all get refunded or some of them succeeded?

Does your ProcessPurchase return PurchaseProcessingResult.Complete? If not, are you calling the ConfirmPurchase?

If you still have a setup with IAP 5.0.0-pre.6, you could also test the IPurchaseService.OnPurchaseConfirmed event to see if you’re receiving FailedOrder and obtain more information on what went wrong.