一个 Django 应用程序,用于集成条带和贝宝一次性付款。包括条纹订阅
项目描述
Django-Stripe-PayPal (DSP)
DSP 是一个 Django 应用程序,用于接受来自 Paypal 和(一次性和订阅)Stripe 的付款(一次性)。
快速设置
-
将“付款”添加到您的 INSTALLED_APPS 设置中,如下所示:
INSTALLED_APPS = [ ... 'payment', ]
-
在您的项目中包含支付 URLconf,
urls.py
如下所示:path('payment/', include('payment.urls')),
-
添加
settings.py
以下内容 -STRIPE = True PAYPAL = True STRIPE_PRODUCTION = False STRIPE_API_KEY = '' STRIPE_AMOUNT = 10000 STRIPE_CURRENCY = 'gbp' STRIPE_PRODUCT_NAME = '' STRIPE_WEBHOOK_SECRET = '' PAYPAL_SANDBOX = True PAYPAL_CLIENT_KEY = '' PAYPAL_SECRET_KEY = '' PAYPAL_AMOUNT = 10 PAYPAL_CURRENCY_CODE = 'gbp' SUCCESS_TEMPLATE_PATH = 'template_success.html' or 'appname/template_success.html' FAIL_TEMPLATE_PATH = 'template_fail.html' or 'appname/template_fail.html' # For users who cancelled their subscriptions and continue till their period ends DISCONTINUE_TEMPLATE_PATH = 'template_discontinue.html' or 'appname/template_discontinue.html' # For users who cancelled their subscriptions IMMEDIATELY CANCEL_TEMPLATE_PATH = 'template_cancel.html' or 'appname/template_cancel.html'
-
迁移数据库(即
python manage.py migrate
) -
使用
checkout
视图时,请确保 URL 具有模板文件上显示的字符串参数(用于简化流程并且是不可或缺的一部分) -<div> <a href="{% url 'checkout' 'Stripe' %}">Stripe Checkout</a> <a href="{% url 'checkout' 'Paypal' %}">PayPal Checkout</a> </div>
STRIPE和PAYPAL默认为True
ie 两种支付服务都在使用。根据您的需要进行更改。对于STRIPE_AMOUNT,使用货币的非十进制表示(即对于 £10,输入 1000),对于PAYPAL_AMOUNT,使用标准符号(即 £10 作为 10 或 10.00)。
SUCCESS_TEMPLATE_PATH和FAIL_TEMPLATE_PATH 分别指支付成功和失败/取消视图的模板。在此处添加您的自定义路径。
结帐和成功视图使用 用户对象来存储记录,因此请确保在处理结帐之前用户已登录(LoginRequiredMixin
已到位,但请考虑这是一个友好的提醒) - 确保您login_url
的配置正确settings.py
订阅指南
-
StripeSubscription
view 负责发起一个事务。在您的模板中,您需要提供priceid
可以从https://dashboard.stripe.com/products获取的参数-><a href="{% url 'stripe-sub' 'priceid' %}">Premium</a>
-
然后将用户重定向到 Stripe URL,并在订阅模型中创建一个对象,该对象分别在成功/失败时更新/删除。
-
StripeWebhook
view 记录了 Stripe Webhook 发出的以下事件——
'invoice.finalized',
'invoice.payment_succeeded',
'invoice.payment_action_required',
'invoice.payment_failed',
'invoice.updated',
'invoice.paid',
'payment_intent.succeeded',
'payment_intent.failed',
'payment_intent.canceled',
'payment_intent.created',
'customer.subscription.created',
'customer.subscription.deleted',
'customer.subscription.updated',
'customer.source.expiring',
'charge.succeeded',
'charge.failed',
StripeSubscriptionCancel
view 立即结束订阅并将用户的 Active 状态设置为 FalseStripeSubscriptionModify
view 在期间结束日期结束订阅。[即将更新 ACTIVE 状态码]
模板指南(无冒犯,专业人士)
Project
|
|
|___App1
|
|
|___Templates
|
|
|___App1
|___template1.html
如果按照上面的目录结构,在下settings.py
输入为 - 。SUCCESS_TEMPLATE_PATH
FAIL_TEMPLATE_PATH
App1/template1.html
对于具有templates
root 权限的用户,照常进行!
现场/制作指南
PAYPAL_SANDBOX默认为True
和在现场/生产中,将其更改为False
并将STRIPE_PRODUCTION更改为True