You always have this 'trust issue' when accepting payments. All BTC transactions are irreversible.
Using a single address for multiple clients is discouraged, because you won't be able to determine from which client you just received the transaction.
A simple - but still effective - way would be to derive a new address for each customer using a master public key.
But you'd still need some way of checking whether you just received the transaction (and the correct amount). While it might be possible to be done by hand, that's extremely time-consuming.
You'd need to automate that, and that's what this thread is about.