In my E-Commerce application, I have to associate each incoming Ethereum payment with my internal order ID in order to distinguish different purchases. In Bitcoin world, I could simply record an address in my database when sending a user to payment page, then use it to pick a that order from my DB when Bitcoin payment will be received & confirmed.
Do I understand right that
I shouldn't use the same approach in Ethereum, because accordingly to that article, I shouldn't expose personal.newAccount to RPC. Also, in that case I will not be able to withdraw all accumulated funds to another address in a single transaction.
If I use an approach described in another article which seems idiomatic for me, I will also have to teach each of my customers how to load my smart contract in his Ethereum client because there is no widely-accepted standard of embedding smart contracts in QR codes and pay URLs?