Getting original_application_version and original_purchase_date from iOS receipt?

We’ve decided to start converting our back catalogue from premium to freemium however want to make it free for anyone that’s already purchased it before.

For iOS that seems to be done quite easily through the receipt data - https://www.andr.mu/logs/migrating-an-ios-app-from-paid-to-freemium/

However when I request the receipt for one of our games all I get is application_version, bundle_id, in_app, original_application_version, and receipt_creation_date, but I need original_application_version and original_purchase_date to check that they purchased the premium version before the change to free.

I thought it might be because this is an adhoc build in sandbox mode but the article does say:

Note: In the sandbox environment, the original_application_version seems to always be 1.0 .

Which implies the rest of the stuff should still be there even in sandbox.

Am I doing something wrong, maybe it has to be a store build loaded through testflight?, or is it that this extra receipt info isn’t currently supported?

Did you ever find a way to do this? I’ve thought of taking some of my paid apps that haven’t worked out to free ad-supported apps but was curious how to ensure no ads for those who had previously purchased the app.

I’ve thought of doing an update that sets an install date the next time the app runs so that future requests for ads would only do so if that date was above a certain point in time, but the user would need to run the app and couldn’t reinstall without setting a new date.

From what I can remember, basically we use receipt.original_purchase_date_ms and receipt.original_application_version and I think it works for the store build.