Hi @bdtask,
ERC20 tokens being used as payment requires two transactions, one to approve
an allowance, and the second to spend the token with a contract that then calls transferFrom
. You may want to consider ERC777 see the OpenZeppelin ERC777 documentation for more details.
You may want to consider enabling Gas Station Network to allow your users to use your token without requiring Ether. See the OpenZeppelin GSN documentation for more details.
If you are creating a token with potential value, then you should have appropriate testing and auditing (see below). You can share your smart contract code here and the community may be able to give some feedback but this isn't a replacement for appropriate testing and auditing.
Regards testing, the following article is a good place to start:
Regards auditing, OpenZeppelin perform audits:
I found reading past audits very useful:
The following checklist for before an audit is worth reading: