Ok, I do have it working now but only partially.
If I make the purchase, shut the app down and restart the app, Has product comes back true.
If I turn the phone off, turn it back on and run the app, Has product comes back false even if it's been purchased. If I then shut the app down and run it again, Has product comes back true.
It appears to me there is a delay in initially getting Has product to the app so that on the first run, it doesn't get the response before the app has finished starting up. When the response does arrive, my Android device seems to be caching that information so that when I run it again, it finds it in the cache and gets the proper response.
Because Has product is a true/false and not an event that I can associate a trigger to, I've tried adding in delays to make certain that the store is available and that the store listing success comes back true. I assumed that if store listing success came back true then Has product would be in there. Not so.
When/How is the response for Has product being retrieved? Is there any way to make certain the app has gotten an actual response for Has product?
I could use a stored variable to record when the purchase was made but, this becomes a problem when a purchaser requests a refund or to cancel the purchase.
As it is now, I can never really be certain from the app's point of view if they have or have not made the in-app purchase.