Verify Receipt get 21003 instead of 0 from sandbox, 21007 from buy(OK)

app server in firebase cloud functions.
TestFlight internal tester to purchase and forward the receipt to sandbox - 21003(not sure why not 0...)

when verify with production(buy) : result is 21007 (this is expected) The encoded receipt attached. The code of loading and base64 encoding is below : My Question: I expect to get 21007 from buy and got it, I expect to get 0 from Sandbox but end up with 21003. How can I fix this?

 do{

                let receiptData = try Data(contentsOf: appStoreReciptUrl,options: .alwaysMapped)

                if let filename = getFileName(basename: "receipt"){

                    await writeToFile(data: receiptData,fileName: filename)

                }

                return receiptData.base64EncodedString(options: [])

                

            }catch{

The receipt you posted does not seem valid, it contains asterisks, for example. Could you please repost the corrected receipt. Also, are you performing this call with or without a password.

Hello, it turns out the password / secrets I post was bad, and I fixed that with my secrete/password. now the validation is 21007 from buy and 0 by sandbox, thank you very much. however, I'm still getting rejection, rejection... and rejection by app review team, can you please kindly check this out and see if anything you can do?

my other post in the forum

Verify Receipt get 21003 instead of 0 from sandbox, 21007 from buy(OK)
 
 
Q