R210.2
I have an app that is a "free" version by default. It is "upgraded" to the Full version via IAP on two conditions:
- + MobileIAP: Has product PRODUCT_ID_1
- + MobileIAP: On any purchase success
Once they are considered to have the Full version, a LocalStorage flag is set.
If the user has uninstalled/reinstalled the app, they can click a "Restore purchases" button to retrieve a prior purchase. MobileIAP will then execute a "Restore Purchases". Even if the user does *not* own the product, the "On any purchases success" condition is still met when they restore purchases. Consequently, my app will give them a free full version. So, a new user can install the app, click "restore purchases" and now they have the full app for free.
Workaround: Only register the app as Full/purchased if the "has product" condition has been met. Do not assume the user bought bought the product via "on any purchase success".
Curious:
- Why would "restore purchases" trigger a purchase success if the user hasn't purchased the app? Has anyone else seen that? I can't find any reports of it.
- I consequently have users currently running the "full version" but they don't own the product, they simply clicked "restore purchases". I'd like to release an app update that takes away the "full version" flag if they don't own the product, but I don't think there is a graceful way to do check ownership without bugging my legit paying users with a login prompt to the store. Any ideas there? I'm thinking I have to let this one go.
Maybe this is a bug? The C2 guide described "on any purchase success" as
Triggered after any purchase finishes to indicate whether it was successful (and the item is now owned)
The C3 manual isn't this descriptive on the logic.. but I don't see where ownership is being checked as a pre-req for purchase success.
Cheers, -Steve