Is this a good, secure and fast approach for accepting payments ?
In case user is sending a second payment to the same address, what's the best way to handle it ?
That's good I think.
Secure is depends on your wallet, you should improve your wallet, buy hardware wallet.
Fast, it's depends on the transaction fees, it's back to the buyer, I think you should put a warning to buyer about transaction fees.
For case buyer sending 2nd payment, well you don't delete the address, buried to archive. And for every transaction whatever is come from same buyer, that should generate new address.
What's the point with hardware wallets ? i dont get it where everyone says hw wallets are more secure than soft wallets ...
If you want to running a serious business, I think you should take a look hardware wallet, because have more security feature rather than soft wallet.
https://en.bitcoin.it/wiki/Hardware_wallet