Django-cryptocoin is a Django app to organize accepting bitcoin, litecoin, novacoin and other cryptocoins, which support JSON-RPC commands getnewaddress and getreceivedbyaddress.
- Python 3.4-3.6 for Django 2.0 or higher
Install using pip pip install git+https://github.com/valentinolaru/django-cryptocoin.git
Add 'django_cryptocoin', to INSTALLED_APPS in your settings.py
Run python manage.py migrate
Set settings similarly as https://github.com/quantum13/django-crypto-paid-chat/blob/master/cryptochat/settings_local.py-example
Add command python manage.py check_incomings to cron with interval 1 minute
Add relation to CryptoOrder to your order model:
crypto_order = models.OneToOneField(CryptoOrder, blank=True, null=True, default=None, on_delete=models.SET_NULL, related_name='order')
Add handler to payment end signal (delivery digital content, sending email, etc):
@receiver(after_pay_confirmation) def after_pay(sender, **kwargs): pass
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 send signal after_pay_confirmation which handler described above.
https://github.com/quantum13/django-crypto-paid-chat
- Bitcoin
- Litecoin
- Novacoin
- Emercoin
List with supported crypto currencies. Default:
( ('btc', 'Bitcoin'), ('ltc', 'Litecoin'), ('nvc', 'Novacoin') )
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', }
Network confirmations count for each crypto currency. Default:
{ 'btc': 1, 'ltc': 1, 'nvc': 1, }
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 %}
How many seconds app will wait for payment. If you set big value, exchange rate to USD can change significantly. Default 900 seconds/
Account for generated addresses in your wallet. Default django_cryptocoin.
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']
BTC: 1JrV8GW9HWRHWvJNQ14fExAkfgxawAY4oq LTC: LiHkeymborDtpqUh3ExYT9CXJkyucDH4Cc NVC: 4U5F4GQin6QkTpbd5k9si3f4iSkn2o3v9x