构建知识付费系统:使用Django框架和Stripe API实现支付功能
from django.http import JsonResponse
from django.views.decorators.http import require_POST
from django.views.decorators.csrf import csrf_exempt
from stripe.error import StripeError
from stripe.api_helper import stripe_api_key
from .models import UserProfile
# 设置Stripe API密钥
stripe_api_key.api_key = "你的Stripe API密钥"
@csrf_exempt
@require_POST
def checkout(request):
token = request.POST.get('token')
email = request.POST.get('email')
try:
# 使用Stripe创建一个Customer,并附上付款信息
customer = stripe.Customer.create(
email=email,
source=token
)
# 创建订阅
subscription = stripe.Subscription.create(
customer=customer.id,
items=[{
"plan": "你的Stripe计划ID",
}],
)
# 更新用户付费状态
profile = UserProfile.objects.get(user__email=email)
profile.is_premium = True
profile.save()
return JsonResponse({'status': 'success'})
except StripeError as e:
return JsonResponse({'error': e.user_message})
except Exception as e:
return JsonResponse({'error': str(e)})
这段代码示例展示了如何在Django框架中使用Stripe API处理订阅支付。它首先从请求中获取Token和Email,然后使用Stripe创建一个新的Customer并附上付款信息。接着,它创建一个新的订阅,并根据订阅结果更新用户的付费状态。代码中包含了错误处理,如StripeError,以及捕捉其他可能的异常。
评论已关闭