How to handle refunds through Unity IAP on iOS?

As to my knowledge, we need to parse the app receipt for a “cancellation_date” field. But this receipt is only updated when a new transaction is made. There is a method to refresh the receipt, but that prompts the user for the Apple ID password.
Is there an alternative way to know when a refund has been made for a non-consumable so that I can disable that non-consumable accordingly?

If there are any resource/tutorials? that would be helpful too.

Have you confirmed that the user is prompted for their password when refreshing the receipt? Keep in mind that their Sandbox environment is likely to behave differently in this regard compared to live on the App Store.

No, but it is mentioned in your documents.

You will want to confirm, the docs are a few years old now.