Simple and flexible pluggable cryptocurrency payment app for django
Project description
Simple and flexible pluggable cryptocurrency payment app for django. Coins are spendable and reflect on HD wallet like Electrum
Documentation
The full documentation is at https://django-cryptocurrency-payment.readthedocs.io.
Quickstart
Install Django Cryptocurrency Payment:
pip install django-cryptocurrency-payment
Add it to your INSTALLED_APPS:
INSTALLED_APPS = (
...
'cryptocurrency_payment.apps.CryptocurrencyPaymentConfig',
...
)
CRYPTOCURRENCY_PAYMENT = {
"BITCOIN": {
"CODE": "btc",
"BACKEND": "merchant_wallet.backends.btc.BitcoinBackend",
"FEE": 0.00,
"REFRESH_PRICE_AFTER_MINUTE": 15,
"REUSE_ADDRESS": False,
"ACTIVE": True,
"MASTER_PUBLIC_KEY": 'PUT_YOUR_WALLET_MASTER_PUBLIC_KEY',
"CANCEL_UNPAID_PAYMENT_HRS": 24,
"CREATE_NEW_UNDERPAID_PAYMENT": True,
"IGNORE_UNDERPAYMENT_AMOUNT": 10,
"IGNORE_CONFIRMED_BALANCE_WITHOUT_SAVED_HASH_MINS": 20,
"BALANCE_CONFIRMATION_NUM": 1,
"ALLOW_ANONYMOUS_PAYMENT": True,
"DERIVATION_PATH": "m/0", #please use deriavation path from your wallet
"ADDRESS_TYPE": "p2wpkh" #specify address type you want to generate p2pkh p2sh p2wpkh p2wsh p2wpkh_in_p2sh
},
"LITECOIN": {
"CODE": "LTC",
..
..
..
..
}
}
Add Django Cryptocurrency Payment’s URL patterns:
from cryptocurrency_payment import urls as cryptocurrency_payment_urls
urlpatterns = [
...
url(r'^', include(cryptocurrency_payment_urls)), #/payment/{pk}/
...
]
Create payment with method
from cryptocurrency_payment.models import create_new_payment
payment = create_new_payment(
crypto='BITCOIN', #Cryptocurrency from your settings
fiat_amount=10, #Amount of item in fiat
fiat_currency='USD', #Fiat currency used to convert to crypto amount
payment_title=None, #Title associated with payment
payment_description=None, #Description associated with payment
related_object=None, #Generic linked object for this payment -> crypto_payments = GenericRelation(CryptoCurrencyPayment)
user=None, #User of this payment for non-anonymous payment
parent_payment=None, #Associate with previous payment
address_index=None,# Use an address generated from a particular index for this payment e.g same address can always be used for a particular user
reuse_address=None), #Used previously paid address for this payment
Tasks
Run these tasks periodically based on your preferred time using your favorite django task manager
cryptocurrency_payment.tasks.update_payment_status
cryptocurrency_payment.tasks.cancel_unpaid_payment
cryptocurrency_payment.tasks.refresh_payment_prices
Features
Flexible payment creation that can be linked to other django object
Automatically update payment status from blockchain
Auto update payment prices if payment is not paid
Auto create child payment if payment is underpaid
Cancel unpaid payment after a period of time
Allow Anonymous payment
Pluggable backend to support more cryptocurrency
Running Tests
Does the code actually work?
source <YOURVIRTUALENV>/bin/activate (myenv) $ pip install tox (myenv) $ tox
Credits
Tools used in rendering this package:
History
0.1.0 (2020-03-21)
First release on PyPI.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for django-cryptocurrency-payment-0.1.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 19050e728a2d4803facd9be469399b47e2b627b1859db4819d729ae15187c75b |
|
MD5 | fa636dc2cedfff6c43a98e18a0fc16d4 |
|
BLAKE2b-256 | 67c2bc75b9eb9bf9da7e3b2364c0c178842992302a117c16df6d66dea1abb0fa |