How to handle an interrupted in-app purchase with specific data

I want to set up a consumable in-app purchase that buys a virtual ticket for a specific event in my app. When they buy the ticket I will send a message to my server to add their userID for a specific event ID in the database. There will be many events that a user could buy a consumable ticket for.

I am aware of the necessity for a SKPaymentTransactionObserver subclass which handles transactions.

However, if something goes wrong (they background the app, battery dies, loss of internet connection) the SKPaymentTransactionObserver will be sent the transaction until I call -finishTransaction. How can I know what event ID they've purchased the consumable for in this instance? Is there a payload that I can attach to a transaction?

Thanks!