Django为Fatterwave Rave卡支付和订阅提供集成

djangorave的Python项目详细描述


django rave

项目说明

这个项目为Flutterwaverave卡支付和订阅提供了django集成。

当前功能:

  • 允许用户付款(一次性付款和订阅)
  • 创建启动Rave支付模式的支付按钮
  • 维护链接到用户的事务历史记录

要求

  • python=3.6
  • django>;=2.0

安装

pip install djangorave

设置

"djangorave"添加到INSTALLED_APPS

运行django迁移:

manage.pymigrate

在您的settings.py中添加以下内容:

RAVE_PRODUCTION_PUBLIC_KEY="your key"RAVE_PRODUCTION_SECRET_KEY="your key"RAVE_SANDBOX_PUBLIC_KEY="your key"RAVE_SANDBOX_SECRET_KEY="your key"RAVE_SANDBOX=True

上面的配置将确保djangorave使用rave沙箱。一旦你是 准备上线,设置RAVE_SANDBOX = False

djangorave添加到urls.py

path("djangorave/",include("djangorave.urls",namespace="djangorave"))

在rave仪表板中添加以下url作为webhook。这将由 向您的网站发起POST付款交易:

http://yoursite.com/djangorave/transaction/

Note:在开发过程中,像ngrok(或类似的)这样的工具可能被证明是有用的。

用法

djangorave提供了两种模型,即:

  • PaymentTypeModel允许您创建once offrecurring付款类型。创建recurring付款类型时,请确保payment_plan字段 对应于ravePlan ID
  • 当rave发布到上述webhook url时,TransactionModel创建事务。这提供了所有事务(一次关闭或重复发生)的历史记录,链接到相关的PaymentTypeModeluser

付款按钮可以创建如下:

  1. 使用django管理创建一个新的PaymentType
  2. 在希望按钮出现的视图中,将上面创建的PaymentType添加到上下文中,例如:
fromdjangorave.modelsimportPaymentTypeModelclassSignUpView(TemplateView):"""Sign Up view"""template_name="my_payment_template.html"defget_context_data(self,**kwargs):"""Add payment type to context data"""kwargs=super().get_context_data(**kwargs)kwargs["pro_plan"]=PaymentTypeModel.objects.filter(description="Pro Plan").first()returnkwargs
  1. 在您的模板中,将按钮添加到您希望它出现的任何位置,如下所示:
{%include'djangorave/pay_button.html'withpayment_model=pro_plan%}

Note:只需添加多个按钮,就可以向单个模板添加多个按钮 计划上下文数据,然后用它们自己的include包括它们中的每一个 标记如上。

  1. 将以下脚本添加到Django基本模板(或模板继承权中确保在付款按钮之前加载的任何位置):
<scriptsrc="{% static 'djangorave/js/payment.js' %}"></script>

按钮样式

以下CSS类可用于设置付款按钮的样式:

  • rave-pay-btn将应用于所有按钮。
  • rave-subscription-btn将应用于重复付款类型(即:具有payment_plan的付款类型)。
  • rave-onceoff-btn将应用于一次性付款类型(即:那些没有payment_plan)。

交易详情页

用户付款后,他们将被重定向到“交易详细信息”页 位于/djangorave/<str:reference>/

默认的事务详细信息模板已经可用,但是如果需要 要覆盖它,可以在根目录中创建一个新模板 模板目录,即:/templates/djangorave/transaction.html

您将可以访问该模板中的{{ transaction }}

开发

如果你想为这个项目做贡献,有一个示例应用程序演示了 一般用法。

运行示例:

git clone https://github.com/bdelate/django-rave.git
cd django-rave
make build
make migrate
make import
make dup

django-rave/example/example/settings.py的底部有一个部分。确保相应地设置值:

RAVE_PRODUCTION_PUBLIC_KEY="your key"RAVE_PRODUCTION_SECRET_KEY="your key"RAVE_SANDBOX_PUBLIC_KEY="your key"RAVE_SANDBOX_SECRET_KEY="your key"RAVE_SANDBOX=True

Fatterwave Rave要求付款与拥有电子邮件地址的用户关联。 因此,使用新的Django用户创建和登录,或者已经使用现有的用户。 根据上述导入命令生成:

username: testuser
password: secret

导航到http://localhost:8000/

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

推荐PyPI第三方库


热门话题
java为扫描器的输入生成字符序列   hibernate中的java实体合并   如何使变量在Java文件中成为全局变量   java JVM崩溃“异常访问冲突”   向MediaMetadataRetriever中的setDataSource()发送Uri时发生java IllegalArgumentException   java没有节约协议?   用户界面java gui帮助actionlistener   java索引越界异常,即使大小小于索引?   在C++中使用java的困惑   在普通java编码中插入图像   JDBC上的java缓存数据   在Java中,在字符串的特定位置替换子字符串   java在运行elasticsearch集群时遇到Perm Gen空间问题   java Soap故障跟踪   java拆分器。固定长度(int)。拆分(字符串)   java获取jar内部包的路径