cryptapi支付网关的django实现

django-cryptapi的Python项目详细描述


cryptapi的django库

django对cryptapi支付网关的实现

要求:

Python >= 3.0
Django >= 2.0
Requests >= 2.20

安装

pip install django-cryptapi

on pypion GitHub

添加到已安装的应用程序:

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只是您的订单id
coin是您想要使用的硬币,可以是:['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/

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何将cassandra中的行数据转换为与列相关的嵌套json   java如何使用jcr XPath在jcr:content/@jcr:data中搜索?   java在使用openCV进行安卓开发时如何利用手机的广角镜头   java解析扩展了接口,结束了一个潜在的无限循环   位置服务的@Override方法中存在java Android应用程序错误   java本地线程的用途和需求是什么   具有左右子访问的java节点树遍历   java验证JsonWebToken签名   JUL日志处理程序中的java日志记录   嵌入式Java读取给定时间段的串行数据。   java有没有办法从多个URL获取多个图像?   java线程通过等待intent阻止自己发送intent   java Spring MVC解析多部分内容请求   java JPA/Hibernate静态元模型属性未填充NullPointerException   java格式错误的字符(需要引号,得到I)~正在处理   java为什么PrintWriter对象抛出FileNotFoundException?   java Neo4j未正确保存标签   java IE不加载图像