iosstorekitreceipt-validation

Detect if a user refunded a 'consumable' in app purchase item (Apple app store in app purchase system)


I read so far online that the only way to detect if a user cancelled an in app purchase is by using the receipt data that I get from the user's iPhone and check if the cancellation_date exists in there for that item, but as far as I know, this field is only to be found on auto-renewable subscription items.

(At least to what I read online on every post I found that talks about in app purchase, no mention to consumables at all.)

Because they are always stored in the receipt data, while consumable items, are stored in the receipt data until the app itself finishes the transaction, once thats done, the purchase transaction for that item is gone forever from the receipt data after the finish process on the iPhone.

So my question is, if a user requested to cancel an in app purchase from Apple, which is a consumable item, do I also get back that same item transaction in the receipt data WITH the cancellation_date field in it?

I've never seen anyone confirm this.

It would be nice if someone can provide a receipt-data base64 string with cancellation_date example in it (if that's legal to do tho).


Solution

  • https://developer.apple.com/documentation/storekit/in-app_purchase/handling_refund_notifications Apple has provided a solution finally in 2020!!