MisterTicot Hi, MisterTicot! Thank you for that detailed comment.
Login with other wallets into StellarPay is on my task list.
For wallet encryption side, PBKDF2 and AES256 methods used and they are safest methods which can be used currently. Username is not only the parameter used for encryption, there is also UUID (randomly generated ID). Also there is no problem with recovery because you're generating a deterministic wallet. It means, you will be able to recover your wallet with 12 word mnemonic backup.
For DNS Hacking and other middle attacks, I'm planning to make StellarPay client as open source. Then you will be able to use StellarPay in your local (except API requests).
In conclusion, StellarPay never stores your private keys or mnemonic on database , is storing only your merchant details and other non-sensitive informations. Will check Cosmic protocol!