Hey there, I'm experiencing some issues with the acknowledging process of one-time purchases. While some purchases are being acknowledged perfectly fine, other are getting refunded within 3 days. I am aware this happens whenever your app fails to acknowledge the SKU. I found this odd since it isn't happening in all of them, but about half of the purchases. Because of this scenario, I thought this could've been caused because of the code only sending an acknowledge request once when the sku is bought, leaving it open to failure. (i.e that one acknowledge request fails for whatever reason and it is not sent again, therefore the purchase is left unacknowledged and refunded within 3 days.)
The old code flow used to go like this:
Code:
* User clicks with left button on Active 16
+ premium = 0
In-App Android : Purchase SKU:"utcpremium" with Id:1
* In-App Android: Purchase Id:1 was Ok
Ini : Set value 1 to item "premium"
Special : Set premium to ItemValue( "Ini", "premium" )
In-App Android : Acknowledge SKU:"utcpremium" with Id:1
* In-App Android: Purchase Id:1 was acknowledged
In-App Android : Query purchases
As you can see, it only sends an acknowledge request ONCE when the purchase was OK. As I mentioned, this works for some of the purchases yes, but other are failing for whatever reason and get refunded later on.
I came up with this solution that I'm still not fully convinced of
Code:
* User clicks with left button on Active 16
+ premium = 0
In-App Android : Purchase SKU:"utcpremium" with Id:1
* In-App Android: Purchase Id:1 was Ok
Ini : Set value 1 to item "premium"
Special : Set premium to ItemValue( "Ini", "premium" )
In-App Android : Query purchases
* premium = 1
+ In-App Android: Is Sku "utcpremium" purchased
+ NOT In-App Android: Is Sku="utcpremium" acknowledged
In-App Android : Acknowledge SKU:"utcpremium" with Id:1
* In-App Android: Purchase Id:1 was acknowledged
In-App Android : Query purchases
What this does is send acknowledge requests as long as the sku is purchased but isn't acknowledged, until it becomes acknowledged. So if the first fails for whatever reason, another one is sent. (Because it failed to acknowledge, therefore the condition remains true)
I'm still hesitant on this, so I was wondering if this may fix the issue? If it isn't the case, what would and why does it happens?