Hi, I am currently encountering a very serious issue with the Adobe AIR In-App Purchase ANE. I have a guided meditations app, where you can unlock each individual session by paying a small fee (
http://www.amazon.com/Indie-Goes-Beyond-Affirmations-Meditations/dp/B00KIQL230). I am using the AIR v15 framework, and the corresponding In-App Purchase ANE/SWC extension of your SDK. All was working fine, until I published a new version of the app fixing a sound looping bug (so nothing related to in-app purchase was changed at all). After the update, people began to report that the sessions got locked back. If they try to buy the session again, they are told by the store popup that they already own it. But if they click the "Restore" button in my app, to restore a previously purchased session, they are told by my code that they didn't buy it. I really did not understand how it could happen, since everything has been working fine for months, so I published a new version on the store that logs extra information. My customers sent me the log, so I could see what was happening on their device. Facts are: - The IAP service is available and initialized - The PURCHASES_UPDATED event is triggered properly every time I call restoreTransactions() through the RESTORE button of my UI. - When this event is triggered, I receive a vector of AmazonPurchaseReceipt objects, and then I go through this vector to lock / unlock the sessions. - My log shows me that this vector is always EMPTY (not null), as if the user hadn’t purchased anything. - Again, if users try to purchase the item again, they are told by the store that they already own it (as expected), so they use the right Amazon account. The issue is really related to the list of their purchases not being properly sent to the app via the PURCHASES_UPDATED event. - This behavior appears for several of my customers, so this is a confirmed bug. It happens on Amazon devices (like Fire phone) or non-Amazon devices using Amazon App Store (like Samsung Galaxy Note 3). - To help you debug this, here are some order IDs that were done in August and September, but are not returned by the store API: D01-6990184-8752062 or D01-1908264-9571222 That explains why people got their sessions locked back, because for the app, they didn’t buy anything. The strangest thing is that if I test on my latest version here, on my own devices, everything works fine. The issue may possibly occur when purchases were made with older versions of the app, but I can't revert back to an older APK to test this. I didn't change any item SKU or certificate, or anything else though. The only thing that I changed was the AIR version (I upgraded to AIR 15.0). And by the way, since users are told they already purchased the items when they try to purchase them again, it shows that everything is set up properly, since the purchases are actually acknowledged by the store. Did recent changes with IAP API (v2.0) break something in the AIR ANE? As you can guess, this puts me in a very delicate situation with my customers, because I get more and more support emails regarding this issue. Reinstalling the app doesn't help, by the way. Would you have any idea that could explain this behavior, please, and how to fix it? This is getting urgent now. Thank you very much! Frédéric Calendini Indie Goes Software
We see that you have created a case through ContactUs and we failed to reproduce the issue on our end. To actually help you further with this we would need to have relevant code to work with. The best way to share that with us would be to post it to a shared resource (like Dropbox), send us the link, and we can have the our team take a look at it for you.