Author

Topic: django-cryptocoin - прием bitcoin, litecoin, novacoin и т.д. (Read 824 times)

member
Activity: 108
Merit: 250
Добрый день.
 
На основе статьи 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. Устанавливаем приложение
Code:
pip install django-cryptocoin
2. Добавляем в INSTALLED_APPS 'django-cryptocoin',
3. Устанавливаем модели
Code:
python manage.py migrate
4. Опции в settings.py по аналогии с https://github.com/quantum13/django-crypto-paid-chat/blob/master/cryptochat/settings_local.py-example
5.
Code:
python manage.py check_incomings
в крон с интервалом 1 минута
6. В модель заказа добавляем связь на модель CryptoOrder
Code:
crypto_order = models.OneToOneField(CryptoOrder, related_name='order')
7. Ловим сигнал об оплате. Тут делаем доставку электронного товара, отправку email и т.д.:
Code:
@receiver(after_pay_confirmation)
def after_pay(sender, **kwargs):
    pass
8. При переходе к оплате делаем что-то вроде этого:
Code:
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, который отлавливается выше.


В планах:
Покрытие тестами
Более функциональный хелпер курсов валют
Jump to: