Regarding missing receipt data in iOS6 style

Our app introduces monthly subscriptions. The process is to execute SKProductsRequest.start() from the app, verify the received receipt with our system, and turn on the premium feature.

With the current app design, if you resubscribe from the iPhone settings, the app cannot detect it, so we have introduced a process to retrieve the receipt from Bundle.main.appStoreReceiptURL and verify whether it is the correct receipt.

The expected receipt information is the receipt that includes the "original_transaction_id" and "transaction_id" information as shown below.

 "receipt": {
     ···omission···
 },
 "auto_renew_product_id": "jp.co.**********.subscription",
 "auto_renew_status": 1,
 "latest_receipt_info": {
     ···omission···
     "original_transaction_id": "20000**********",
     ···omission···
     "transaction_id": "200013**********",
     ···omission···
 },
 "latest_receipt": "Receipt",
 "status": 0

However, as shown below, we found many logs (more than a few dozen for 2% of users) where receipts with missing information were retrieved. Considering the number of data items, it is unlikely that the receipt was falsified.

 "receipt": {
     ···omission···
     "in_app": []
 },
 "environment": "Production",
 "status": 0

Our system links users based on "original_transaction_id" and "transaction_id," but since we are unable to obtain the necessary information, we are unable to determine whether the user has already purchased a subscription.

Question 1 What are the possible situations in which receipts with missing information like this are obtained? For example, is it possible for a receipt like this to be generated even though no charges have been made?

Question 2 Is there a way to update such receipts with the correct information? I searched the Developer forum, but if I do SKReceiptRefreshRequest, will I be able to obtain necessary information such as "original_transaction_id" and "transaction_id"?

Replies

Hello. At a high level an app receipt represents an app purchase, and then may contain in-app purchase information on top of that. A receipt with no data is definitely possible if the user has purchase no in-apps or the in-apps are all fulfilled consumables (which aren't included). Are you confident all of these users had purchases?

I apologize for the delayed response and thank you for your message.

To provide additional information, our app is a free-to-download application with a single monthly subscription option, and subscription sharing is not enabled.

We have not received any receipt verification requests in our system, so we assume that no charges have been made. However, since iOS6 is no longer supported, we are unable to verify this, leaving us at a dead end.

In cases like this receipt, can we conclude that no charges have been made?