IAP :Server validation: not authenticated

Hi! this is my first post in the forum, I´m from Spain so sorry for my English;)
I sent my first game to Apple for review and the app was rejected for this;

"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."

Then I try to use LiveOps for this validation.

I have the sdkbox_config.json exported from LiveOps in my Resources folder and this is my code:

In my appDelegate: ( ----- Copied and pasted from liveOps Export Config File)

#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
    sdkbox::init("-----------", "-----------");
#endif

In the BuyScene I have:

 sdkbox::IAP::setListener(new IAPPListener());
 sdkbox::IAP::init();
 sdkbox::IAP::setDebug(false);
 sdkbox::IAP::enableUserSideVerification(false);

Before I run the purchase I get the correct info of the IAP:

IAP :creating Products list:
IAP :Refreshing products: '-----------'
2018-12-13 20:57:58.265370+0100 -----------[1448:171265] Requesting products: {(
"-----------"
)}
onInitialized : 1

IAP :Found product: ----------- 2.29
IAP: ========= IAP Item =========
IAP: Name: -----------
IAP: ID:-----------
IAP: Title: -----------
IAP: Desc: -----------
IAP: Price: 2,29 €
IAP: Price Value: 2.290000
IAP: Currency: EUR
ProductRequestSuccess

But when i´m trying to confirm the purchase i get:

IAP :Server validation: not authenticated
Purchase Failed: -----------

If I set “sdkbox::IAP::enableUserSideVerification(true);” the purchase works and i get this info:

IAP: ========= IAP Item =========
IAP: Name: -----------
IAP: ID: -----------
IAP: Title: -----------
IAP: Desc:-----------
IAP: Price: 2,29 €
IAP: Price Value: 2.290000
IAP: Currency: EUR
IAP: transactionID: 1000000486987294
IAP: receipt: 
IAP: receipt data: MIITnAYJKo------------------------------------------------------------------------------------- 
------------------------------------------------------------------------------------------------------------------------------ 
---------------------------------------------------------------------------kM9X8=

I notice that the field “IAP:receipt:” is empty… i don´t know if this means something…

What i´m missing?
Will Apple approve my game if i set enableUserSideVerification to true?

Thanks!

IAP:receipt is empty on iOS, you can use IAP:receiptCipheredPayload to verify purchase.

usualy, if you set userSideVerification true, you should use yourself server to verify the purchase.

if you set userSideVerification true without verify the purchase. I guess, Apple will approve also.

Thanks for your response @htlxyz. What’s the porpouse of the verify? Is for prevent piracy?
I thought that is important to Apple so i tryed with LiveOps… but i can’t make it work…

Reading more info about this, seems like if i enable userSideVerification i must verify the receipt by my own or i will have problems to get the revenue of the purchases but i don’t know how to do that…

The game is ready to publish but after three years of learning programming from zero and designing the game, this probem with LiveOps and the verification of the receipt gets me stuck

can someone give some light about what to do?

Hi again! if I delete de sdkbox_config.json from the project and test it, I have a log from SDK_CORE telling me that the json is not found in the resources folder but the device has network connection so the device connects to LiveOps and the plugins UnityAds, review and gamePlay are working fine but still has the IAP :Server validation: not authenticated so I understand that LiveOps is setup correctly… but it´s something wrong with IAP plugin or LiveOps…

Also I read in the forum that I can verify the receipt with Adjust.com. Anyone already tried this?

The other solution is to make a Lite and Pro version of the game but this seems old fashion right?