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 off
或recurring
付款类型。创建recurring
付款类型时,请确保payment_plan
字段 对应于ravePlan ID
。- 当rave发布到上述webhook url时,
TransactionModel
创建事务。这提供了所有事务(一次关闭或重复发生)的历史记录,链接到相关的PaymentTypeModel
和user
。
付款按钮可以创建如下:
- 使用django管理创建一个新的
PaymentType
。 - 在希望按钮出现的视图中,将上面创建的
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
- 在您的模板中,将按钮添加到您希望它出现的任何位置,如下所示:
{%include'djangorave/pay_button.html'withpayment_model=pro_plan%}
Note:
只需添加多个按钮,就可以向单个模板添加多个按钮
计划上下文数据,然后用它们自己的include
包括它们中的每一个
标记如上。
- 将以下脚本添加到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