You report that when you send the appStoreReceipt
to the verifyReceipt
endpoint that you are seeing the status result 21003. This status indicates that the appStoreReceipt
was malformed, incomplete, or incorrectly encoded. Can you capture the base64 encoded appStoreReceipt
and send me the contents as a text file for me to manually validate the contents. If you app process sells an auto-renewing subscription item, please include the app's shared secret. I use the following curl command line tool to validate appStoreReceipts
.
For sandbox receipts:
curl -d '{ "exclude-old-transactions": true "password":"yyyy" "receipt-data": "xxxx"}' https://sandbox.itunes.apple.com/verifyReceipt
For production receipts:
curl -d '{ "exclude-old-transactions": true "password":"yyyy" "receipt-data": "xxxx"}' https://buy.itunes.apple.com/verifyReceipt
Where exclude-old-transactions
is used to limit the contents of the latest_receipt_info
to only the most recent entry and
"password" is the request key to indicate the shared-secret that is required when the content is an auto-renewing subscription.
yyyy - is the shared-secret and
xxxx - is the base64 encoded content of the appStoreReceipt
.