Transaction receipt will grow bigger and bigger!

We know that the In-App purchase receipt for non-consumable product, auto-renewable subscription, non-renewing subscription save in appStoreReceipt indefinitely. I get transaction receipt by use appStoreReceiptURL of NSBundle. But, as user purchase and purchase, receipt will grow bigger and bigger. I have to verify by AppStore every time the user purchase a new product. Thus I will send growing data with many useless transaction to my server and send to AppStore. It will spent more time and increase the possibility of internet error. Is this situation correct? or Can I got separate transaction receipt in appStoreReceipt to send?

Post not yet marked as solved Up vote post of LWnoheart Down vote post of LWnoheart
1.8k views

Replies

>Can I got separate transaction receipt in appStoreReceipt to send?


Considerable discussion fromRich (rkubota, DTS) w/ in this previous threadthat may help you decide if you want to use something such as trans receipt vs. aSR. My opinion otherwise is you're ok to keep doing what you're doing.

> receipt will grow bigger and bigger.

Yes, the recipt will grow with each transaction. But after, say 10 years with an autorenewable subscription renewing each month, the receipt will have 120 IAP fields and be about the size of a small web page. The internet can handle such packages. Many subscriptions are for content that varies each month.The information is retained so the user can get whatever benefits they are entitled to receive because they were subscribed in, say November 2015.



>I have to verify by AppStore every time the user purchase a new product.

No, you don't have to verify anything. It is your choice whether or not you want to verify the receipt and how you verify the receipt. You can decode and verify the receipt on the device itself. In the case of an autorenewable subscription (but not a non renewing subscription) as implied in the reference by another post on this thread, all you need to do is retain the first, small receipt and send that to the Apple servers. They will respond with 'latest_receipt_info' - the full receipt. So at least for the one-way transmission you can use the 'smaller' receipt.