I have an online store and would like to begin accepting bitcoins. How can I go about doing this?
There are a number of ways one can go about accepting Bitcoin on a web interface. Keep in mind as you review these options that Bitcoin is still a young technology and many of these options aren't what you'd call "friendly" just yet. That said you do have quite a few options depending on your level of expertise and technical requirements:
- Use a service like:
- Use an existing shopping cart interface
- There are existing plugins for Ubercart, Magento and many other popular e-commerce platforms. If you are looking to modify an existing site that happens to run on one of these platforms, this may be your best bet. If you've yet to start a site and don't want to write code yourself this may still be your best bet since you can choose your platform prior to implementation.
- Roll your own using existing libraries
- Roll your own using the JSON API directly
- This is only necessary if you are not using one of the half-dozen or so languages that already have pre-written libraries for interfacing with bitcoind. The list of languages may be short, but all of the major industry standards have been covered, so it's unlikely you will have to go this far.
You should definitely checkout https://bitcoinnotify.com/ service. They work noticably different than the existing solutions:
- You provide a list of btcaddresses (of your own wallet!) to them
- They monitor all transactions in the network
- If they observe a transaction to one of your adresses you get a POST from their site with address, amount, timestamp, number of confirmations, ...
- You can specify how many confirmations are needed before you get the notification. Also multiple notifications are possible, e.g. at 1 and at 6 confirmations
To implement this you need to keep track on your side which order is linked to which btc-address. When a payment is confirmed you can use the address again for the next order
- No external wallet involved - All payments go DIRECTLY to your own wallet, so there is no way they can run with your money or get hacked or robbed etc.
- You can keep your wallet at any dedicated, highly secured separate system, no need to have it on or near your website
- If you want to take the risk of not waiting for confirmations you get the notification within seconds after the transaction has been issued from the customer (at least that's my personal experience)
I hope that soon similar services appear, so you could subscribe at multiple sites for notification. So there is no single point of failure anymore.
Take a look at the bitcoind json api.
You will have to run the bitcoind services on a computer accessible by your website. The computer you run the service on should be very secure since it holds your wallet. Development is underway to allow you to have the wallet file located elsewhere.
For added security you can keep a copy of your server wallet file on your computer and regularly transfer funds to a more secure account.
There are also people who provide this service. However this is not as secure, and you should carefully review the options before trusting one of these services. Nevertheless these can be an easy alternative if you can accept the risks involved.
There are a number of shopping cart interfaces currently available, though a fair number of them relied on the now-defunct MyBitcoin API. It is also fairly easy to integrate your own code with the JSON API as there are libraries available in most common languages, such as ASP.NET/C#, PHP, Python and many others. VPS or dedicated hosting is recommended since the bitcoin client can then reside on the server itself, but as bitcoin's JSON API supports SSL as of version 0.3.14 it is reasonably secure for the bitcoin client to reside on another system and allow your web application to connect to it remotely.