Receiving conflicting data structures from /verifyReceipt

{

"auto_renew_status": 1,

"status": 0,

"auto_renew_product_id": "Removed",

"receipt": {

"original_purchase_date_pst": "2020-01-17 13:15:56 America/Los_Angeles",

"quantity": "1",

"unique_vendor_identifier": "Removed",

"bvrs": "2",

"expires_date_formatted": "2020-06-17 20:15:55 Etc/GMT",

"is_in_intro_offer_period": "false",

"purchase_date_ms": "1589746555000",

"expires_date_formatted_pst": "2020-06-17 13:15:55 America/Los_Angeles",

"is_trial_period": "false",

"item_id": "Removed",

"unique_identifier": "Removed",

"original_transaction_id": "Removed",

"subscription_group_identifier": "Removed",

"app_item_id": "Removed",

"transaction_id": "Removed",

"web_order_line_item_id": "Removed",

"version_external_identifier": "Removed",

"purchase_date": "2020-05-17 20:15:55 Etc/GMT",

"product_id": "Removed",

"expires_date": "1592424955000",

"original_purchase_date": "2020-01-17 21:15:56 Etc/GMT",

"purchase_date_pst": "2020-05-17 13:15:55 America/Los_Angeles",

"bid": "Removed",

"original_purchase_date_ms": "1579295756000"

},

"latest_receipt_info": {

"original_purchase_date_pst": "2020-01-17 13:15:56 America/Los_Angeles",

"quantity": "1",

"unique_vendor_identifier": "Removed",

"bvrs": "2",

"expires_date_formatted": "2020-06-17 20:15:55 Etc/GMT",

"is_in_intro_offer_period": "false",

"purchase_date_ms": "1589746555000",

"expires_date_formatted_pst": "2020-06-17 13:15:55 America/Los_Angeles",

"is_trial_period": "false",

"item_id": "Removed",

"unique_identifier": "00008030-000D551C2692802E",

"original_transaction_id": "Removed",

"subscription_group_identifier": "Removed",

"app_item_id": "Removed",

"transaction_id": "Removed",

"web_order_line_item_id": "Removed",

"purchase_date": "2020-05-17 20:15:55 Etc/GMT",

"product_id": "Removed",

"expires_date": "1592424955000",

"original_purchase_date": "2020-01-17 21:15:56 Etc/GMT",

"purchase_date_pst": "2020-05-17 13:15:55 America/Los_Angeles",

"bid": "Removed",

"original_purchase_date_ms": "1579295756000"

},

"latest_receipt": "Removed"

}


This is the receipt structure I have received from "https://buy.itunes.apple.com/verifyReceipt" and am puzzled as to why the latest_receipt_info is not being returned in an array of objects. Regarding the expires_date field, is it not supposed to be expires_date_ms? Additionally the pending_renewal_info array is also missing. Is the receipt structure malformed or is this an intended strcture? Would be happy to gain some information regarding this. Thanks!

I am more surprised by "receipt" rather than "in_app".


It is unclear how your print-out displays a JSON array with only one object. Perhaps it is an error in the printing process because the array has only one object in it. Note that the "in_app" (in your case "receipt") field should also be an array of one object.


There is supposed to be a field called expires_date and your receipt has it. Your receipt is missing expires_date_ms.


The receipt striucture has changed with time. The best and most reliable document is, surprisingly, the oldest document. It is hard to find and no longer maintained - and that may be a good thing. Treasure this link:

https://developer.apple.com/library/archive/releasenotes/General/ValidateAppStoreReceipt/Chapters/ReceiptFields.html

Receiving conflicting data structures from /verifyReceipt
 
 
Q