Without doubt Magento is the leader in ecommerce software and it's open, but it's not for the faint hearted. It's a very complicated system and will cost you quite a bit to get someone to set it up for you. Your hosting needs to be magento friendly as well, with a provider that are willing to optimise the server for magento, because its a resource hog if not properly managed. It depends on your experience but if you have no experience with magento, expect a very steep learning curve that won't happen overnight.
A simpler option is to get a wordpress site and but a commercial ecommerce theme. My favourte ecommerce plugin for wordpress is woocommerce and has the majority of things you need built in. Anything that is missing, woothemes probably have an easily added extension for it.
No ecommerce system comes with card payments all built in because there are just too many. It still takes a considerable amount of customisation and security certificates if you are wanting to process card payments within your own site.