Skip to main content

A Django app to organize accepting bitcoin, litecoin, novacoin and other cryptocoins.

Project description

Django-cryptocoin is a Django app to organize accepting bitcoin, litecoin, novacoin and other cryptocoins, which support JSON-RPC commands getnewaddress and getreceivedbyaddress.

Quick Start

  1. Install using pip pip install django-cryptocoin

  2. Add ‘django-cryptocoin’, to INSTALLED_APPS in your settings.py

  3. Run python manage.py migrate

  4. Set settings similarly as https://github.com/quantum13/django-crypto-paid-chat/blob/master/cryptochat/settings_local.py-example

  5. Add command python manage.py check_incomings to cron with interval 1 minute

  6. Add relation to CryptoOrder to your order model:

    crypto_order = models.OneToOneField(CryptoOrder, related_name='order')
  7. Add handler to payment end signal (delivery digital content, sending email, etc):

    @receiver(after_pay_confirmation)
    def after_pay(sender, **kwargs):
        pass
  8. After sending form with order we need create instance of CryptoOrder and redirect to process view. Example:

    if form.is_valid():
        crypto_order = CryptoOrder(
            currency='btc',
            amount=0.1,#price
            date=timezone.now(),#time of invoice
            redirect_to=reverse('home')#view to redirect after payment
        )
        crypto_order.save()
        form.instance.crypto_order = crypto_order
        form.save()
        return redirect('cryptocoin-order-process', addr=crypto_order.addr)

After confirmation of transaction sended signal after_pay_confirmation which handler described above.

Example

https://github.com/quantum13/django-crypto-paid-chat

Tested cryptocoins

  • Bitcoin

  • Litecoin

  • Novacoin

  • Emercoin

Options

CRYPTO_COINS

Dict with supported crypto currencies. Default:

{
    'btc': 'Bitcoin',
    'ltc': 'Litecoin',
    'nvc': 'Novacoin',
}

CONNECTION_STRING

Connection strings for JSON-RPC commands to coin clients. Default:

{
    'btc': 'your_bitcoin_addr_to_send_btc',
    'ltc': 'your_litecoin_addr_to_send_ltc',
    'nvc': 'your_novacoin_addr_to_send_nvc',
}

CONFIRMATIONS

Network confirmations count for each crypto currency. Default:

{
    'btc': 1,
    'ltc': 1,
    'nvc': 1,
}

PROCESS_TEMPLATE

Template for process view. You can use own site template for this page. For example if you have base template base.html with block content you can create process.html in your template folder and paste this code:

{% extends 'base.html' %}

{% block content %}
    {% include 'django_cryptocoin/process.html' %}
{% endblock %}

INVOICE_TIME

How many seconds app will wait for payment. If you set big value, exchange rate to USD can change significantly. Default 900 seconds/

GENERATED_ADDRESSES_ACCOUNT

Account for generated addresses in your wallet. Default django_cryptocoin.

CURRENCY_PAIRS

Currency pairs for which will retrieved exchange rates from btc-e.com. To retrieve this rates run command python manage.py get_exchange_rates. Than you can get this rates with function ExchangeRate.get_exchange_rate(from_currency, to_currency). Default:

['btc_usd', 'btc_rur', 'btc_eur', 'ltc_usd', 'ltc_rur', 'nvc_usd']

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-cryptocoin-0.1.1.zip (16.3 kB view details)

Uploaded Source

File details

Details for the file django-cryptocoin-0.1.1.zip.

File metadata

File hashes

Hashes for django-cryptocoin-0.1.1.zip
Algorithm Hash digest
SHA256 a26f92785d6e6daa3d2b05b8e36daf3878fcd34c75a32c1cdb595a9881f01c54
MD5 25f92fc5cbe7e2fe9427bc6613e6f272
BLAKE2b-256 7f6e4bbcd2d2b0f15242527a59052b183f48491f463188eee7f5d8d06099b818

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page