cryptapi支付网关的django实现
django-cryptapi的Python项目详细描述
cryptapi的django库
django对cryptapi支付网关的实现
要求:
Python >= 3.0
Django >= 2.0
Requests >= 2.20
安装
pip install django-cryptapi
添加到已安装的应用程序:
INSTALLED_APPS = (
'cryptapi',
...
)
运行迁移:
python3 manage.py migrate cryptapi
将cryptapi的url添加到项目的url.py文件:
urlpatterns = [
path('cryptapi/', include('cryptapi.urls')),
...
]
配置
安装完成后,您需要为希望接受的每个硬币设置提供程序。
您需要进入您的django管理员,为每个硬币创建一个新的cryptapi Provider
,并在其中转发资金的冷钱包地址。
用法
创建发票
在订单创建视图中,假设user_order
是订单对象:
from cryptapi import Invoice
...
def order_creation_view(request):
...
invoice = Invoice(
request=request,
order_id=user_order.id,
coin='btc',
value=user_order.value
)
payment_address = invoice.address()
if payment_address is not None:
# Show the payment address to the user
...
else:
# Handle request error, check RequestLogs on Admin
其中:
request
是django的view httprequest对象order_id
只是您的订单idcoin
是您想要使用的硬币,可以是:['btc', 'eth', 'bch', 'ltc', 'xmr', 'iota']
之一,您需要为该硬币设置一个Provider
。value
是您的订单值的整数,可以是satoshi、litoshi、wei、piconero或iota
当用户付款时收到通知
from django.dispatch import receiver
from cryptapi.signals import payment_complete
@receiver(payment_complete)
def payment_received(order_id, payment, value):
# Implement your logic to mark the order as paid and release the goods to the user
...
其中:
order_id
是您先前提供的订单的id,用于获取您的订单payment
是一个cryptapi.models.Payment
对象,具有付款详细信息,如txid、确认数等。value
是用户支付的价值,以satoshi、litoshi、wei或iota表示
助手
此库有几个帮助程序可帮助您入门
cryptapi.valid_providers()
是一个返回活动提供程序元组列表的方法,您只需将其输入到form.ChoiceField
选项中即可。
cryptapi.get_order_invoices(order_id)
返回您的订单的cryptapi.models.Request
对象列表(如果用户错误地使用另一枚硬币开始付款,则可以为同一订单拥有多个对象)
还有一些模板标记可以导入,以帮助您进行转换和协议。
您只需在模板上加载cryptapi_helper
,并使用以下标记/筛选器:
{% convert_value coin value %}
其中硬币是['btc', 'eth', 'bch', 'ltc', 'xmr', 'iota']
中的一个,值是satoshi、litoshi、wei或iota中的值,将转换为主要硬币面额。
{{ coin|coin_name }}
将输出格式正确的加密货币名称
帮助
需要帮助吗?
联系我们@https://cryptapi.io/contact/