Apple Reciept Validation..Do i need a server?

Hi ,

I am new so excuse the lack of knowledge. I created IAP and followed the unity tutorials and everthing was fine until i submitted to the app store and got a rejected due to :

When validating receipts on your server, your server needs to be able to handle a production-signed app getting its receipts from Apple’s test environment. The recommended approach is for your production server to always validate receipts against the production App Store first. If validation fails with the error code “Sandbox receipt used in production,” you should validate against the test environment instead.

Tutotials i followed did not mention recipt validation so my code did not include anything about it.

My research now suggests i need a server like playfab…is this true?

Receipt validation is only a recommended measure but not mandatory to implement.

If you are sure you are not doing receipt validation on your end, sounds like a false positive on the apple’s end.
If it works in your testflight build, it should work for them too.

Take a video of testflight build demostrating iap functionality and send them or raise a technical incident.

From StoreKit2, server receipt validation isn’t required anymore as apple takes care of this. Earlier there was an exploit so they started recommending receipt validation. But this isn’t the case with Storekit2. I’m not aware of unity’s timeline for StoreKit2 support.

Let us know how it goes.

Cheers,
VB Team

Thank you i will give it a try and post back.

resubmitted to apple with no changes in my code and it passed! thank you

Cool! As expected :smile:
We have noticed this with our customers where the apple’s review team keep defending that it’s not their mistake. For one of our customers, it took 1 month to make them aware that it’s their review team’s setup issue.

However, if it works in Test flight on the same testing device, it should work on their end too. As simple as that!

Hi, @Voxel-Busters and @BigGameCompany
We are facing with same error and still not been able to approve IAPs. Getting same message that IAP processing is in background and gets poor user experience. We added a simple loader while IAP gets load and receive either its failed/success. But still rejected with same message. What can be done?

As mentioned, if it’s working on your end in test flight - it should work for them too, take a video and send it to them for review.

Note that you need to try on the same device what they tested on to confirm. Earlier we had issues where it’s working on testflight for us but on one specific device they tested on crashed for a different reason. So if you don’t have exact device, at-least try to match the processor of that device.

@Voxel-Busters thanks for suggestion.
App approved. Issue was in store overrides and we had make loading image to show where delay was happening. As suggested recorded video where IAP was working for testflight user and it worked!!

Just to update, Essential Kit v3 now implemented with StoreKit 2 on iOS and Google Play Billing Client v7.1.1 on Android and includes subscriptions.