2

My organization validates receipts of purchases of our product from the App store using the verify receipt endpoint. Our logs indicate that beginning April 1, 2020, roughly 400 of these verifications failed with status code 503 being returned. This has resulted in these customers not appearing in our database as users of our product. How can I "synchronise" these "missed" users with our database? Ideally we could reverify all those "missed" receipts. Is there something these customers can do to re-send their receipt to our servers so that our servers can call the verify endpoint again?

Extranomical
  • 385
  • 1
  • 3
  • 13
  • At what point were you validating the receipt? Was it for an original purchase flow or a renewal of an auto renew subscription. If it was the first then you should not call `completeTransaction` until the receipt is verified and the transaction should be sitting as pending in their purchase queue. Even if you have completed the transaction when you shouldn't have or if it is a failed auto renew then all the user should need to do is tap the "restore purchases" button in your app - you do have one, right? – Paulw11 May 02 '20 at 21:10
  • We are validating immediately after the customer purchases our app from the App Store. It is for original purchase flows. Does the restore purchases button re-send the receipt to our server? – Extranomical May 02 '20 at 21:56
  • The restore purchase process delivers the transactions to your payment queue observer with a "restored" state. Your code should process this in the same way as the original purchase, however for an original purchase it should not be possible for the user to be charged if the receipt verification fails because you should not complete the transaction on the queue until any validation is completed successfully. The transaction should still be sitting in the payment queue. Instantiating your payment queue observer should be one of the first things your app does – Paulw11 May 02 '20 at 22:19

0 Answers0