Is that local receipt validation, or server receipt validation?
I validate from https://buy.itunes.apple.com/verifyReceipt
My app only had a lot of downloads in the early days of release because at that time I had informed my community, but the highest was only 30-40 downloads. And then it averages about 1-2 downloads per day, which makes sense since I haven't run any marketing campaigns yet.
But recently there's been a strange sign like you see in the chart above, and it's all from refund:
Post
Replies
Boosts
Views
Activity
I tried validate receipt and got almost same result as below
{
"receipt": {
"receipt_type": "Production",
"adam_id": ...,
"app_item_id": ...,
"bundle_id": ...,
"application_version": "1.7",
"download_id": ...,
"version_external_identifier": ...,
"receipt_creation_date": "2022-07-25 06:21:52 Etc/GMT",
"receipt_creation_date_ms": "1658730112000",
"receipt_creation_date_pst": "2022-07-24 23:21:52 America/Los_Angeles",
"request_date": "2022-07-25 07:13:59 Etc/GMT",
"request_date_ms": "1658733239188",
"request_date_pst": "2022-07-25 00:13:59 America/Los_Angeles",
"original_purchase_date": "2022-05-30 14:31:25 Etc/GMT",
"original_purchase_date_ms": "1653921085000",
"original_purchase_date_pst": "2022-05-30 07:31:25 America/Los_Angeles",
"original_application_version": "1.5",
"in_app": []
},
"environment": "Production",
"status": 0
}
No, I don't think that will work. I think the valid receipt will remain in place indefinitely.
According to the 2nd response of this thread, my guess is that if the user refunds the receipt the receipt will be revoked.
My app is an audiobook version of a book written by myself, I have only released it for about a month, currently only have 1 rating and no reviews, nor have I run any marketing campaigns.
I am having the same problem, I suspect my app is cheating in refund, you can see the picture below
According to the above answer, can I use the following method to check?
When the app is opened, I will get the AppStoreReceiptUrl.
If AppStoreReceiptUrl is null or empty, I will force close the app, otherwise the user will be able to access the app.