As blockchain networks only take into consideration what is happening in the chain, probably you should connect your private network to your erc20 tokens through oracles. Therefore, depending on what is going on with your smart contracts you can trigger actions on your private network or the oposite.
Following this link you can test how to build an oracle, it is quite straight forward:
https://medium.com/@mustwin/building-an-oracle-for-an-ethereum-contract-6096d3e39551
But also you could use the service oraclize
http://www.oraclize.it
If you want to receive ethers as payment. This is obviously the case like you will receive funds in different accounts and then transfer these ethers to your main account. You will definitely need gas for such transaction. But it depends on your requirements.
For transferring ethers the gas used by the transaction is 21,000. If you set gas price to 21GWei, the transaction will cost you 0.000441 Ether ($0.13, quoted from etherscan.io). So you have to spend $13 for every 100 users. This is not a big amount you should be worried about but again it depends on requirements of the product. I don't see this as a major concern.
The major issue arises when you start accepting erc-20 tokens as payment, in that case when you wish to transfer tokens from each user's address to your main account, each user account must have ethers (to pay for transaction fee), but users have only transferred tokens. This is the thing you should be worried about. One possible way is you ask users for tokens as well as few ethers (for transaction fee).
The other possible solution could be having a pool of fixed addresses and providing users with repeated addresses. In that case, you have to either ask the user for transaction hash or account from which they are willing to pay to identify user's payment. This solution has privacy concerns like anyone can track the funds that you are possessing from block explorers.
The reason behind this is the basic difference between bitcoin and ethereum architecture. Bitcoin was made to use as currency but ethereum has much more to offer. That is why this implementation is quite easy in bitcoin but not in case of ethereum. I am not sure, whether there any merchant API's available for integrating erc-20 tokens as the payment method.
PS: The question asks for the best way. If somebody has the better solution, I'll love to hear that. Please edit the answer if this needs updation/modification.
Best Answer
You can spin up your own TokenBridge.
Note that this would be a horrible idea as any testnet is subject to state resets. Anyone who deposit real money to testnet would be subject to losing them.