receipt validation before showing IAP-page leads to rejection

we have a question about our in-app purchase flow. We pushed a new update to review. We changed the in-app purchase flow where we actually just changed the order when the receipt validation is done.


Cause we don’t know if the user has a valid subscription we have to fetch the receipt first which leads to the password prompt (which is the normal behaviour as we understand correctly in not production environment). Then comes the validation and depending on the result we show the auto-renewing subscription page or we pass the requested action.


So our flow is:


1. Fetching receipt

2. Validating receipt

3. If

valid - Pass requested action

not valid - show auto-renewing subscription page where the user can make the in-app purchase


Now apple comment in their rejection that they don't see the auto-renewing subscription page instead they got the password prompt from Itunes Store.


As we understand correctly the password prompt is the normal behaviour in a not production environment but apple seems to dont expect this behaviour. We changed nothing in the way how we fetch the receipt.


Is our flow incorrect or how can we validate if the user has a valid subscription without fetching the receipt? We're a bit confused here. Can someone can give us any advice here?

Replies

The app store requires a log-on before giving the user its receipt. That's disturbing to get a UIAlert from the App Store with no prior warning. Modify your flow as follows:


1) look for a receipt on the device, if there is none go to #3.

2) check the receipt to see if it indicates a current subscripotion. If so, grant rights. Stop

3) inform user that the app needs to check to see if they have a current subscription and offer the following chocies:

a) I have a valid subscription, check its status (if chosen, either restoreCompletedTransactions or restore receipt)

b) no, I do not want a subscription

c) I'd like to consider buying a subscription (if chosen, go to a productRequest)