How to handle customer requests for failed in-app purchase receipt validation?

What's the correct approach to handling customer requests who said they purchased a non-renewable but we failed to receive the receipt (network or other error)? Is there a way to see the full list of transactions from iTunes connect or other sources to confirm user purchases?


Thanks.

I ask the user to send their iTunes receipt indicating that they made the purchase. iTunes emails the user the receipt within 2 or 3 days pf any purchase. If they do that, I push a subscription into their device using a backdoor approach within the app. Usually they discover 'the rror' and say 'nevermind'.


More recently I have added a method that reads teh receipt and resets the subscription since all past purchases are now included in the receipt.

We are experiencing a similar issue. Customer purchases non-renewable, but we do not receive the receipt details possibly due to network or other error. There must be a way for app to verify past in-app purchases. How can we programatically get a copy of receipt from apple? Can someone share an example or link to API doc?

The purchase will only be included in the receipt but only the app on the user's device can access the receipt. Read my post above.

Sure. Understand that the app initiates the receipt request. What is the best practice to get the receipt in this situation? Should App get the receipt copy upon login or once a day and so on? Do we need to add a "restore" button before Apple approves the app?

The problem arises because of either fraud on the part of the user or a transmission error to your servers.

1) You can simply request that the user present you with the user's emailed receipt from ITunes and, if that appears valid, credit the app using a backdoor method.

2) Alternatively, you can have the app's code realize that it submitted a receipt to your servers but never heard back and therefore cause it to resubmit it to your servers after a suitable time.

3) or you can not call finishTransactions until you actually finish the transaction and then rely on storeKit to resend the transaction into your updatedTransactions method the next time the app re-enters foreground.

4) or you can have an 'examine receipt' (or 'check purchases') button that the user taps and that examines the current receipt (and/or refreshes the receipt) to see if a credit is appropriate.


You do not need any of these nor a restore button to get the app approved.

How to handle customer requests for failed in-app purchase receipt validation?
 
 
Q