Django集成Stripe支付时遇API密钥未提供错误求助
解决Django集成Stripe时的API密钥错误
问题根源
你遇到的错误直接原因是Stripe API密钥未配置,当前settings.py中STRIPE_PUBLISHABLE_KEY和STRIPE_SECRET_KEY都是空字符串,同时Django Admin加载相关模型时触发了Stripe API调用,导致未授权失败。
解决方案
1. 获取Stripe测试密钥
前往Stripe控制台获取测试环境的API密钥:
- 公钥(Publishable Key)格式为
pk_test_xxxx - 私钥(Secret Key)格式为
sk_test_xxxx
2. 配置Django Settings
修改settings.py中的Stripe密钥配置,填入实际的测试密钥:
if DEBUG: STRIPE_PUBLISHABLE_KEY = 'pk_test_你的测试公钥内容' STRIPE_SECRET_KEY = 'sk_test_你的测试私钥内容' else: # 生产环境请使用正式密钥 STRIPE_PUBLISHABLE_KEY = 'pk_live_你的生产公钥内容' STRIPE_SECRET_KEY = 'sk_live_你的生产私钥内容'
3. 初始化Stripe客户端
在你的membership应用的admin.py中添加Stripe密钥初始化代码,确保Admin加载模型前已配置好密钥:
import stripe from django.conf import settings from django.contrib import admin from .models import Membership, UserMembership, Subscription # 初始化Stripe客户端 stripe.api_key = settings.STRIPE_SECRET_KEY # 注册模型到Admin admin.site.register(Membership) admin.site.register(UserMembership) admin.site.register(Subscription)
4. 重启服务验证
重启Django开发服务器,再次访问/admin/login/,错误应该会消失。
额外提示
如果后续你的模型或视图中有更多Stripe相关逻辑,确保所有调用Stripe API的代码前都已通过stripe.api_key = settings.STRIPE_SECRET_KEY完成密钥初始化。
内容的提问来源于stack exchange,提问作者Sachin
相关产品推荐
相关产品推荐

