I am implementing a website where some users can create surveys and pay the people that complete them with bitcoins. What steps should I follow to implement this payment system? Like, information needed from each party, steps to take to confirm payment, etc.
- You ought to have a system that uniquely identifies the survey and assigned it some string of characters. This can be just a simple number, or something more complex.
- You need to use that unique id to request a Bitcoin address form bitcoind with a unique account name derived from that id. I would also advise hashing the account name, so in case your wallet gets compromised your customers' information won't get leaked.
- You will present that Bitcoin address to the survey owner to send their Bitcoins to.
- You should periodically check bitcoind for new transactions. In order to avoid double-spends, you should wait until you get at least 1 confirmation (preferably 6) on the transaction before letting the survey go live.
Survey is live:
- You need to have a system that uniquely identifies the users filling out the survey, so they won't do the same survey twice.
- Each user will need to provide their withdraw address (and you should check whether it is okay)
- You should track who fills out a particular survey and keep a log of their addresses. This way you would be able to make a single payment to all of them at the end of the day, rather than make an individual payment to each person. This would save you money on transaction fees.
- You can either make payments from the account unique to the survey, or move all the money into a single payout account and send payments from there. The latter would make the user receive only one payment, rather than be spammed with many. And again, this would lower your transaction fees.
- You need to keep track of how much money is left for each survey and when to switch it off. You can either do that internally, or through appropriate balances in bitcoind (moving money from the account each time someone completes the survey).
These should be the basics. As always, keep your wallet secure, password protected and backed up. In case you have any more questions, you can always ask them on this StackExchange. If you need consulting, you can contact me (ThePiachu-gmail-com).
I used on client website open source Bitcoin Payment Libriary (php/mysql) -