First, I read this article, but it's not my case. I'm creating crypto payments solution inside Telegram Bot for multivendor.
Here is my problem: Customer have unique wallet for payments. When he buying something, I can detect his transactions, bot how to link this transaction to his order? For example, user bought 1 item from different sellers. Each item have the same price. User sent ETH, but how detect, which order belongs to transaction? User can send 2 transactions with different gas and one transaction may stack because of low gas or network error. And how detect, who get his ETH and who not?
My opinion is to ask the user TX Hash for every transaction.