Python全系列 教程
3567个小节阅读:5930.5k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
修改order_app\views.py
,增加支付码逻辑
xxxxxxxxxx
491from time import time
2from json import loads
3
4from rest_framework.views import APIView
5from rest_framework.response import Response
6
7from .models import Order
8from .serializers import OrdersSerializers
9from user_app.utils import verify_token
10from user_app.models import User
11from plan_app.models import ClassType
12from .alipay_tool import get_qr
13
14
15class OrdersView(APIView):
16 def post(self,request):
17 '''
18 订阅课程
19 '''
20 # 获取用户提交的数据
21 serializer = OrdersSerializers(data=request.data)
22 # 校验数据
23 if serializer.is_valid():
24 # 提取用户信息
25 data = verify_token(request.META.get('HTTP_AUTHORIZATION'))
26 # 获取用户详细信息
27 user = User.objects.filter(phone = data.get('phone')).first()
28 # 获取订阅的课程
29 ct = ClassType.objects.filter(id = serializer.validated_data.get('class_type')).first()
30 # 准备订单的数据
31 order_id = f'{user.id}{ct.id}{int(time())}'
32 # 下订单
33 Order.objects.create(
34 id = order_id,
35 amount = ct.price,
36 user = user,
37 course= ct.course,
38 class_type= ct,
39 )
40 # 获取支付二维码
41 info = f'{ct.course.name}-{ct.name}-{ct.price}'
42 content = get_qr(order_id,info,float(ct.price))
43 # 将content数据转换为字典
44 content = loads(content)
45 qr_code = content.get('qr_code')
46 # 返回结果
47 return Response({'msg':'订阅课程成功','code':200,'url':qr_code})
48 else:
49 return Response(serializer.errors)