Django项目集成Stripe支付时服务端代码应该放在哪个位置?
Django 集成Stripe支付实现方案
你参考的是Stripe官方的Flask框架示例,需要改写为Django适配的逻辑,按你给出的项目结构,按以下步骤操作即可:
步骤1:安装Stripe依赖
先在你的Django虚拟环境中安装Stripe SDK:
pip install stripe
步骤2:配置Stripe密钥
打开你的Django项目根目录下的settings.py,在末尾添加Stripe相关配置:
# settings.py 新增内容 STRIPE_SECRET_KEY = '你的Stripe测试密钥' STRIPE_PUBLISHABLE_KEY = '你的Stripe公钥' # 前端支付页地址,和示例里的配置保持一致 YOUR_DOMAIN = 'http://localhost:3000/checkout'
步骤3:编写支付接口逻辑
找到你项目里的业务应用(就是你项目层级中带views.py的应用文件夹),打开views.py,添加Stripe支付会话创建的接口逻辑:
# views.py 新增内容 from django.conf import settings from django.shortcuts import redirect from django.http import HttpResponse import stripe stripe.api_key = settings.STRIPE_SECRET_KEY def create_checkout_session(request): if request.method == 'POST': try: checkout_session = stripe.checkout.Session.create( line_items=[ { # 替换为你实际要售卖商品的price ID 'price': '{{PRICE_ID}}', 'quantity': 1, }, ], payment_method_types=[ 'card', ], mode='payment', success_url=settings.YOUR_DOMAIN + '?success=true', cancel_url=settings.YOUR_DOMAIN + '?canceled=true', ) except Exception as e: return HttpResponse(str(e), status=400) return redirect(checkout_session.url, status=303) return HttpResponse('仅支持POST请求', status=405)
步骤4:配置接口路由
打开该业务应用下的urls.py(如果没有就手动新建一个),添加路由映射:
# urls.py 内容 from django.urls import path from . import views urlpatterns = [ # 其他原有路由保留 path('create-checkout-session', views.create_checkout_session, name='create_checkout_session'), ]
之后把该应用的urls注册到项目根目录的urls.py中,确保接口可以被前端正常访问。
步骤5:前端适配调整
你现有的React代码不需要做大改动,只需要确认form的action地址和你Django接口的实际访问地址一致即可。如果前后端存在跨域问题,可以安装django-cors-headers配置跨域规则。
内容的提问来源于stack exchange,提问作者Ruma
相关产品推荐
相关产品推荐

