Think about smart account script as about the latch that allows to take money from the account. Basically, this is a signature, so everyone who has a private key could take the money.
It is possible to create a script that works different, even allows to take money from an account to anybody.
You have to come up with a proof (signature or hash or something else) that allows you and only you to take the money from the client’s account.
So, the process looks like this.
- Client puts the money on the scripted account provided by you.
- You can’t take those money without the “proof”. Client can take the money only after a lock period, 3 days for example.
- If you deliver product, you have the “proof” and can send a transaction from the account to your personal account. If you don’t deliver, the client takes the money back.
If this is too complicated for you, may be built-in Waves Wallet functionality, to send a payment request will be enough for you?