We have setup some in-app purchasable products through google’s in-app billing plugin (plugin.google.iap.billing) in our app. We have both consumable and non-consumable products. We have been struggling with restoring products and refunds.
After rigorous testing, we found the plugin would restore the recently bought consumable product if the restore function is called immediately after buying. However, it will only restore the consumable product once. We have a restore option for users who have reinstalled the app and want to get their non-consumable entitlements back. Moreover, sometimes the consumable products start behaving like a one-time purchase or non-consumeable products even though we call the consumePurchase function when such product is purchased.
The second problem is with refunds. There’s a refund state for transactions in the plugin, but it doesn’t get triggered ever in my testing. I refunded the products from the google play console and the refund takes place almost instantly, but the state is not triggered when debugging in our program. We want to avoid users exploiting the system by making a purchase and then requesting a refund as this has been happening lately on one of our apps.
I am sure many of the devs here have encountered these issues and have probably found the solution, we would be very grateful if anyone can share their solution.