Just a bit of background to this issue. I have a number of live apps in the Apple App Store. I have numerous people purchase IAP in these apps every month. A few day ago I received an email stating that a user had purchased one of my IAP, it had worked for a while and was now not working. He had tried to restore the purchases but the restore button wasn't doing anything. I've been offering this individual support and have been investigating the issue.
The image above is not from the app the user is having issues with, it's actually from another app that I'm currently working on. It does however exhibit the same problems that the app in question has. The image above shows some of the code associated with my splash screen. One of the things I do in my apps is to check whether IAP have been previously purchased while the splash screen is being shown. If they have been purchased I set a variable that will unlock the required parts of the app.
I can successfully perform a purchase of IAP and it will unlock the required parts of my app. These stay unlocked even when the app is opened and closed multiple times. The problem occurs if the app is later deleted. When it is reinstalled it does not detect that IAP has previously been purchased. The App Store knows that this Non Consumable IAP has been previously purchased because it tells you if you attempt to repurchase.
The problem seems to be that when I call - Has Product"ProductID" - it is not actually querying the App Store to determine whether the product has previously been purchased. I know that product registration has completed successfully because the price of the IAP is returned from the App Store and written to a variable and then is shown on the purchase page of the app. But the check I put in to verify whether "Has Product" is executing (TXT_PURCHASECHECK - Set text to "Purchased") is never displayed. This check, along with previously purchased IAP remaining locked, indicates that the "Has Product" is failing to properly execute.
This is a major problem to me. It potentially will cost me sales and will certainly result in unhappy customers who are not always getting what they have paid for. I've commented on a similar bug report from December 2018 (https://github.com/Scirra/Construct-3-bugs/issues/2440)that reports the same issue. I don't know whether anyone is actively working on this issue. I know that Nepeo wrote the IAP plugin. Maybe construct.net/en/users/253158/nepeo can help with this?
It would be really good to resolve this as it appears to be a bug that is not just affecting me. I'm tearing my hair out at the moment over this issue and am becoming increasingly frustrated. Any help anyone can provide would be very much appreciated.