Возможный дубликат:
как я могу принимать биткойны на своем сайте?
У меня есть несколько веб-сайтов, над которыми я работаю, но есть ли открытый исходный код, который я могу использовать, который позволит людям вносить биткойны на мой сайт, где у каждого пользователя будет уникальный депозитный адрес?
В прошлом я реализовал это, просто попросив стандартный биткойн-клиент сгенерировать несколько тысяч адресов, а затем веб-сайт выдал их один за другим. Генерация адресов немного медленная, но если вы запустите ее на ночь, у вас будет практически неограниченный запас.
Не забудьте сделать резервную копию кошелька сразу после этого!
Объедините предложение @David о предварительном создании большого количества адресов с помощью Bitcoin Notify , и вы сможете создать систему, которая знает, когда кто-то отправил вам биткойны (как часть процесса оформления заказа и т. д.).
Это отличный сервис именно для того, что вы ищете: http://www.bitcoinpayflow.com/
Вам понадобится биткойн-питон: https://github.com/toomanysecrets0/bitcoin-python
Вам также понадобится MySQLdb
Вот что-то, что должно работать на сервере LAMP (ython), я бы продезинфицировал входные данные, прежде чем использовать это в производстве:
#!/usr/bin/env python
import MySQLdb
import bitcoin
import cgi
DbHost = "localhost"
DbDatabase = "database name"
DbUser = "database user"
DbPassword = "database password"
def getAddress(idnumber):
db = MySQLdb.connect(host=DbHost, user=DbUser, passwd=DbPassword ,db=DbDatabase)
c=db.cursor()
c.execute("SELECT * FROM `address` WHERE idnumber=" + "'" + str(idnumber) + "'")
address = c.fetchone()
if address != None:
returnaddress = address[1]
else:
c.execute("SELECT username,idnumber FROM `address` where idnumber=" + "'" + str(idnumber) + "'")
user = c.fetchone()
if user != None:
userid = user[0]
#Generate a new bitcoin address
newaddress = generateAddress(userid)
returnaddress = newaddress
c.execute("INSERT INTO address(idnumber,receiving_address,username) VALUES(" + str(idnumber) + "," + "'" + str(newaddress) + "'" + "," + str(userid) + ")")
else:
return "Invalid userid"
return returnaddress
тысат