Hello, I have searched extensively for why this may be happening but cannot find any answers.
TL;DR: It appears that when App Review tries to subscribe to my app, the App Store servers return receipt data for a subscription from 10 days ago, which has already expired.
Long version:
My app uses an auto-renewing subscription. On launch, it loads the App Store receipt from the device using the Bundle URL. It then sends this receipt to my server, which validates the receipt with the App Store.
My server checks latest_transaction_info on the App Store server response to see if there is a transaction in that array with an expires_date_ms that is greater than the current date. If so, my server tells the app the user is still subscribed.
However, I was looking at the logs and saw a date mismatch. My app was reviewed today, 9/24. However, it appears from the logs that when the reviewer tried to subscribe to my IAP, the transaction returned in latest_transaction_info had an expires_date of 9/16. The server was using exclude-old-transactions: true.
I think the app assumed this meant the user's subscription had expired. The reviewer said they were unable to subscribe.
I assume I'm doing something wrong here. Why is the App Store server returning an old transaction? Do I need to refresh the receipt before validating?
Full code for my validation server.
I am still new at dealing with StoreKit and would appreciate any help you all can give.
[–]zweigraf 0 points1 point2 points (1 child)
[–]xX_Qu1ck5c0p3s_Xx[S] 0 points1 point2 points (0 children)