@aababc While I encourage you to migrate your app to StoreKit 2 when feasible (particularly since the original version of StoreKit was deprecated at WWDC24), this migration is not necessary to use the latest server technologies, including the App Store Server API, App Store Server Notifications, and the App Store Server Library.
Regardless of what StoreKit version you use in your app, data for the purchases users make are available from these modern server APIs. To access this data from the App Store Server API, most endpoints require only a single transactionId for the given user. For example, by calling Get Transaction History with any transactionId belonging to a user, you can access the full record of their transactions in your app. I recommend storing at least one transactionId for each user server-side for this purpose. One option to obtain said transactionId is to send a receipt from the app to your server and use the App Store Server Library server-side. This is what the documentation is describing when it describes "A utility that extracts transaction identifiers from receipts.":
https://developer.apple.com/documentation/appstoreserverapi/simplifying_your_implementation_by_using_the_app_store_server_library
See also the "Receipt Usage" example in the README for each language of the library, e.g.:
https://github.com/apple/app-store-server-library-java?tab=readme-ov-file#receipt-usage
In this sense, you can see the direct replacement for verifyReceipt: instead of sending the receipt to verifyReceipt, use it to extract a transactionId, then send that transactionId to the App Store Server API to retrieve the same data and much more.