Добрый день.
На основе статьи
http://btcsec.com/bitcoin_receive_as_payment/ набросал батарейку для django для приема криптовалют на сайте.
Теоретически поддерживаются все валюты с JSON-RPC интерфейсом, поддерживающим команды getnewaddress и getreceivedbyaddress, практически проверял с bitcoin, litecoin и novacoin
Репозиторий проекта
https://github.com/quantum13/django-cryptocoinПакет на pypi
https://pypi.python.org/pypi/django-cryptocoin Тестовое приложение - чат с оплатой за постинг сообщений
https://github.com/quantum13/django-crypto-paid-chat Краткая инструкция:
1. Устанавливаем приложение
pip install django-cryptocoin
2. Добавляем в INSTALLED_APPS 'django-cryptocoin',
3. Устанавливаем модели
4. Опции в settings.py по аналогии с
https://github.com/quantum13/django-crypto-paid-chat/blob/master/cryptochat/settings_local.py-example5.
python manage.py check_incomings
в крон с интервалом 1 минута
6. В модель заказа добавляем связь на модель CryptoOrder
crypto_order = models.OneToOneField(CryptoOrder, related_name='order')
7. Ловим сигнал об оплате. Тут делаем доставку электронного товара, отправку email и т.д.:
@receiver(after_pay_confirmation)
def after_pay(sender, **kwargs):
pass
8. При переходе к оплате делаем что-то вроде этого:
if form.is_valid():
crypto_order = CryptoOrder(
currency=form.cleaned_data['currency'],#валюта
amount=0.1,#Цена
date=timezone.now(),#время начала заявки
redirect_to=reverse('home')# куда редиректить после оплаты
)
crypto_order.save()
form.instance.crypto_order = crypto_order
form.save()
return redirect('cryptocoin-order-process', addr=crypto_order.addr)
при этом идет перенаправление на view с приемом оплаты, аналогичным с bitpay. После получения денег пойдет перенаправление на указанный адрес. После подтверждений сетью транзакции будет послан сигнал after_pay_confirmation, который отлавливается выше.
В планах:
Покрытие тестами
Более функциональный хелпер курсов валют